metaclass: (Default)
[personal profile] metaclass
http://theiced.livejournal.com/238346.html
Собственно, про кобол я не знаю, на дельфи пишу уже 15 лет и никак избавится от него не могу (слишком много легаси кода), а вот про SQL я с ним не согласен.
Сам по себе SQL очень хорошо подходит для генерации отчетов. Если отчет сводится к фильтрации-сортировке-группировке множеств - идеально. С рекурсивными CTE - еще и деревья можно обрабатывать, не особо включая мозг. Всунув поверх этого минимальных размеров постобработку на какой-нибудь функциональщине, можно сделать почти любой отчет, пришедший в голову свихнувшимся на Excel выпускникам нархоза, работающим в минстате, минфине и МНС.

Но когда доходит до процедурных расширений, API между СУБД и клиентскими приложениями или каких-нибудь вещей, которые забыли вовремя добавить в стандарт - начинается полная, немыслимая жопа.
Например, проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей. Кто во что горазд - identity, генераторы, sequence, функции (в каждой СУБД названные по разному), returning, заебы на тему "вызывать в той же транзакции и сессии" и прочая и прочая. Про вариации на тему "вернуть поле, которое заполняется автоматически, но не является ключом/identity" лучше даже не думать.
Неудивительно, что люди при первой же возможности сбегают в ORM (которые являются уже второй производной от всего этого маразма и несут на себе его неизгладимый след).

Date: 2013-04-03 05:20 pm (UTC)
From: [identity profile] vp.livejournal.com
>Я обычно сначала проектирую СУБД, потом генерю по нему ORM и все

Генерите ОРМ по базе? Или как?

Date: 2013-04-03 05:24 pm (UTC)
From: [identity profile] norguhtar.livejournal.com
Да по базе. Для JPA есть отличный инструментарий в Eclipse. Открываешь соединение говоришь сгенери мне отсюда классов. Далее максимум надо сделать доводку по месту.

Date: 2013-04-03 05:32 pm (UTC)
From: [identity profile] vp.livejournal.com
И как, информации чисто из базы хватает? Все корректно отображает? То есть по базе полностью угадывается ваша "задумка" и генерируется?

Date: 2013-04-03 05:37 pm (UTC)
From: [identity profile] norguhtar.livejournal.com
Да. Обычно надо подчистить такие косяки генератора как даты и время в виде SQL типов а не в виде Calendar, если я не захватил таблицу связанную внешним ключом добавить ManyToOne или OneToMany. Но это все опять же через автодополнение делается левой ногой. Ну и ManyToMany не строит. Но большую часть угадывает. Сиквенсы тоже перед генерацией в визарде задать можно.

Date: 2013-04-03 08:20 pm (UTC)
From: [identity profile] evil-invader.livejournal.com
Можно наоборот. Набросал энтитей - оно сгенерило таблицы в базе. Но это в простом случае. А так конечно по базе оно очень чётко генерит нужные классы.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2025 03:40 am
Powered by Dreamwidth Studios