В Советской Белоруссии SQL разжигает айседа
http://theiced.livejournal.com/238346.html
Собственно, про кобол я не знаю, на дельфи пишу уже 15 лет и никак избавится от него не могу (слишком много легаси кода), а вот про SQL я с ним не согласен.
Сам по себе SQL очень хорошо подходит для генерации отчетов. Если отчет сводится к фильтрации-сортировке-группировке множеств - идеально. С рекурсивными CTE - еще и деревья можно обрабатывать, не особо включая мозг. Всунув поверх этого минимальных размеров постобработку на какой-нибудь функциональщине, можно сделать почти любой отчет, пришедший в голову свихнувшимся на Excel выпускникам нархоза, работающим в минстате, минфине и МНС.
Но когда доходит до процедурных расширений, API между СУБД и клиентскими приложениями или каких-нибудь вещей, которые забыли вовремя добавить в стандарт - начинается полная, немыслимая жопа.
Например, проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей. Кто во что горазд - identity, генераторы, sequence, функции (в каждой СУБД названные по разному), returning, заебы на тему "вызывать в той же транзакции и сессии" и прочая и прочая. Про вариации на тему "вернуть поле, которое заполняется автоматически, но не является ключом/identity" лучше даже не думать.
Неудивительно, что люди при первой же возможности сбегают в ORM (которые являются уже второй производной от всего этого маразма и несут на себе его неизгладимый след).
Собственно, про кобол я не знаю, на дельфи пишу уже 15 лет и никак избавится от него не могу (слишком много легаси кода), а вот про SQL я с ним не согласен.
Сам по себе SQL очень хорошо подходит для генерации отчетов. Если отчет сводится к фильтрации-сортировке-группировке множеств - идеально. С рекурсивными CTE - еще и деревья можно обрабатывать, не особо включая мозг. Всунув поверх этого минимальных размеров постобработку на какой-нибудь функциональщине, можно сделать почти любой отчет, пришедший в голову свихнувшимся на Excel выпускникам нархоза, работающим в минстате, минфине и МНС.
Но когда доходит до процедурных расширений, API между СУБД и клиентскими приложениями или каких-нибудь вещей, которые забыли вовремя добавить в стандарт - начинается полная, немыслимая жопа.
Например, проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей. Кто во что горазд - identity, генераторы, sequence, функции (в каждой СУБД названные по разному), returning, заебы на тему "вызывать в той же транзакции и сессии" и прочая и прочая. Про вариации на тему "вернуть поле, которое заполняется автоматически, но не является ключом/identity" лучше даже не думать.
Неудивительно, что люди при первой же возможности сбегают в ORM (которые являются уже второй производной от всего этого маразма и несут на себе его неизгладимый след).
no subject
no subject
no subject
Нет никакой панацеи. Ни кложурь, ни ОРМ ни SQL ни чего-бы то ни было.
Есть конкретные решения в конкретных случаях, какие-то инструменты для конкретной задачи подходят лучше, какие-то хуже. Но под каждую подзадачу брать отдельный инструмент - значит разводить зоопарк и повышать требования к разработчику, что созвучно его незаменимости.
no subject
Нет никакой панацеи. Ни кложурь, ни ОРМ ни SQL ни чего-бы то ни было.
А я где-то говорил что ORM панацея?
Есть конкретные решения в конкретных случаях, какие-то инструменты для конкретной задачи подходят лучше, какие-то хуже. Но под каждую подзадачу брать отдельный инструмент - значит разводить зоопарк и повышать требования к разработчику, что созвучно его незаменимости.
Вы конкретное решение предложите ага? Сказали ORM, говно теперь расскажите что и где лучше использовать и почему ORM это больший закат солнца в ручную. А такую пространную хрень и я могу написать.
no subject
Ответ зависит от задачи, от решающего эту задачу. У разных решающих могут быть разные решения с одинаковым результатом.
no subject
no subject
http://metaclass.livejournal.com/800013.html?thread=17305101#t17305101