metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-02-07 10:33 am

человеческий злоязык

Проектирую базу данных для опердени. Документация, описывающая базу, получается сильно больше, чем скрипт генерации базы.
Когда же у нас будут системы типов, которые позволят генерировать из одного исходника и базу и ее миграцию и документацию заодно?

[identity profile] nivanych.livejournal.com 2010-02-07 10:50 am (UTC)(link)
Ну, ващета они уже есть.
Да и на Template Haskell очень много можно делать.

[identity profile] metaclass.livejournal.com 2010-02-07 10:54 am (UTC)(link)
Не, у меня, в силу ограничений по времени, ограниченности используемых языков и СУБД, слабого знакомства с теорией и наличия других разработчиков, вообще не знакомых с этим трэшем - почти ничего нет, кроме того, что я могу использовать для проектирования идиомы оттуда, и даже чуть-чуть реализовывать их доступными средствами.

[identity profile] rssh.livejournal.com 2010-02-07 10:57 am (UTC)(link)
В столь нелюбимой вами Java уже лет 5 как ;)

[identity profile] metaclass.livejournal.com 2010-02-07 11:04 am (UTC)(link)
Ой, там же ад.
Т.е. это ничем по сложности, судя по тому, что я видел, не отличается от того, что я сейчас делаю - документация, код и база данных отдельно.

[identity profile] ennor.livejournal.com 2010-02-07 12:23 pm (UTC)(link)
Эмм, база проектируется на коленке, что ли? :) В том же Sybase PowerDesigner схема изумительно сочетается с ее описанием.
А еще он умеет сам генерить HTML-репорты по своим моделям, для изучения которых прога не нужна, достаточно браузера.

Глянь, рекомендую. Вкусная штука, хотя код в ней писать удовольствие сомнительное.

[identity profile] metaclass.livejournal.com 2010-02-07 12:28 pm (UTC)(link)
UML редакторы я не смог осилить.
За то время, что я там буду рисовать одну таблицу с парой подчиненных, я в чистом SQL сделаю с десяток таблиц и заодно документацию по всем в tex напишу.

[identity profile] sheep2k.livejournal.com 2010-02-07 03:08 pm (UTC)(link)
Эта вкусная штука стоит около 15 тыс. долларов. Причём у них нет всяких облегчённых версий, скажем, только для построения модели базы, к великому сожалению.
Так что для продакшена - увы, если только фирма не богатая и может себе позволить купить.

[identity profile] ennor.livejournal.com 2010-02-07 09:59 pm (UTC)(link)
Во-первых, в два раза меньше;
Во-вторых, у них много различных пакаджей, и совсем не обязательно покупать себе полный фарш. Хотя, конечно, спорить не буду, софт недешевый - ну так его много и не надо.

Насчет "фирма не богатая" - ой, оставьте. Это сильно меньше месячной зарплаты отдела IT в моей конторе, например. В вашей, скорее всего, тоже.

[identity profile] metaclass.livejournal.com 2010-02-08 04:42 am (UTC)(link)
15 штук это наверно вся прибыль на полгода вперед.

[identity profile] sheep2k.livejournal.com 2010-02-08 05:49 am (UTC)(link)
Всё равно много. У нас очень небольшая фирма. Хотя, покупать, видимо, всё же будем.

[identity profile] slonopotamus.livejournal.com 2010-02-07 02:32 pm (UTC)(link)
Эээ... ORM?

[identity profile] metaclass.livejournal.com 2010-02-07 02:38 pm (UTC)(link)
Ну, ORM мне использовать по любому придется, правда, я проектирование всегда начинаю с базы данных, так что для генерации кода он, вроде, не применим.

[identity profile] gds.livejournal.com 2010-02-07 04:16 pm (UTC)(link)
не обязательно представлять это в виде системы типов. Конечно, оно должно быть compile-time, но его предназначением должно быть не только ограничение множества значений, принимаемых "переменными" (для чего и нужна типизация), но и способ из одного полного описания сгенерировать много разных вещей. То есть, если доверять этой преобразовалке, то и типизация не нужна.

Нижеописанный подход ни в коем случае не рекомендую, но опишу его на всякий случай. Для кое-чего похожего я буду делать таким образом: имея одинаковый код (s-выражения), буду подставлять им разное окружение, в результате чего код будет вычисляться в то, что мне нужно. А нужно мне сейчас, например, 1. проверка семантики (s-выражениями можно описать всё, но не все выражения будут валидными), 2. преобразование в нужный формат (пока -- тупой хтмл).

[identity profile] mibori.livejournal.com 2010-02-07 09:54 pm (UTC)(link)
Что такое "невалидное S-выражение"?

[identity profile] gds.livejournal.com 2010-02-08 06:10 am (UTC)(link)
речь про валидность s-выражений в пределах моего языка.

[identity profile] smalgin.livejournal.com 2010-02-07 04:23 pm (UTC)(link)
мыкрософт тихенько продвигает M (Oslo/Dublin) типо entity framework.