metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-02-10 08:28 am

Бизнес-логика в хранимых процедурах

Я вот думаю: следует ли избавляться от сабжевых процедур, заменяя их на закат солнца вручную в виде кода на обычных языках программирования?
У меня 99% разнообразных отчетов реализовано на Firebird или в виде sql-запросов на пару страниц или в виде selectable хранимых процедур, тоже на пару страниц.
Все бы это хорошо, но деплоймент этого дела огорчает, язык хранимых процедур - более чем полная убогость, т.е. уровня типа "турбо-паскаль интегрированный с sql".
И главное ж, хрен чем заменишь - все остальное закат солнца вручную. В обычном случае - адовы ORM типа Entity Framework и LINQ поверх них. В условно нормальном - руби и ActiveRecord, с метапрограммированием, но у него адаптер к Firebird, по моему, несуществующий. Возможно, питон еще, у него тоже метапрограммирование имеется и kinterbasedb вроде живой.
Т.е. если по хорошему - то нужно что-то вроде LINQ, но чтобы схему БД видел сам, без импорта схемы в 100500 файлов.

PS: не успел дописать: Одна из нездоровых идей - написать транслятор из гуманного DSL с функциональщиной и школьницами с Ph.D. in CS в язык хранимых процедур.

[identity profile] plumqqz.livejournal.com 2012-02-10 07:10 am (UTC)(link)
Господи! не в ярости Твоей обличай меня и не во гневе Твоем наказывай меня.
Честно говоря, совершенно не понимаю, почему вариант с данной господом нашим нам в назидание и епитимью рубой выглядит лучше, чем "турбопаскаль с sql".
Нахуа нужен такой же епитимиальный LINQ, когда есть sql (не вообще есть, а вот тут, под рукой, на, бери и пользуйся) - тоже совершенно непонятно.

[identity profile] blackyblack.livejournal.com 2012-02-10 07:40 am (UTC)(link)
Хотя Ваши комментарии - традицонно адский ад, но тем не менее, присоединяюсь.

[identity profile] metaclass.livejournal.com 2012-02-10 09:05 am (UTC)(link)
Собственно SQL запросы - ок.
Отсутствие их reuse нормального - не ок.
Версионирование хранимых процедур и прочая, особенно в Firebird - анус кромешный.

[identity profile] plumqqz.livejournal.com 2012-02-10 10:49 am (UTC)(link)
Отсутствие их reuse нормального - не ок.

Что Вы имеете в виду?

Версионирование хранимых процедур и прочая, особенно в Firebird - анус кромешный.

Ну так не имейте дела с файрбердом.

[identity profile] metaclass.livejournal.com 2012-02-10 11:10 am (UTC)(link)
А, блин, я опять все забыл, reuse уже сделали и я им пользуюсь - Common Table Expressions.

Но язык, тем не менее, застрял в 80х годах, функций высшего порядка нет, лямбд нет, типы от фонаря и прочая и прочая)

[identity profile] inv2004.livejournal.com 2012-02-10 06:02 pm (UTC)(link)
Да, язык застрял, до для "бизнес" логики самое то. Ничего хитрого, чтобы не влезло в мозг "бизнес"мена.

[identity profile] nivanych.livejournal.com 2012-02-12 12:18 pm (UTC)(link)
Монаду не написать!!

[identity profile] theiced.livejournal.com 2012-02-10 12:48 pm (UTC)(link)
sql говно и нормальному челвеку от написания его делается тошно. пидорасы конечно дрочат на сикль как твой бебианист на полиси, да.

[identity profile] plumqqz.livejournal.com 2012-02-10 05:45 pm (UTC)(link)
А про нормальных людей это Вы сами видели или, может, рассказал кто?

[identity profile] inv2004.livejournal.com 2012-02-10 06:04 pm (UTC)(link)
sql определённо говно, но лучше и без левых сущностей пока мало что есть, тем более уровня ынтерпайз.