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

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

Date: 2012-02-10 10:59 am (UTC)
From: [identity profile] alexeyk77.livejournal.com
Только ХП, ни в коем случае не отдавать БД на прямое растерзание приложению.
Вернее есть случай, когда ХП не очень катят, если это аналитическая прилада, где запросы генерятся на лету, но я так понимаю это не ваш случай.
И еще, лично я воспринимаю SQL как язык манипулирования а не язык программирования. Вот здесь и должен быть водораздел между двумя крайностями "вся логика в ХП" и "вся логика на клиенте".
Да и зачем уходить от более совершенной декларативной пардигмы в каменный век императивного программирования? Неее....

Date: 2012-02-10 11:12 am (UTC)
From: [identity profile] metaclass.livejournal.com
Императивное сразу в лес. Речь идет о "всунуть функциональщину с метапрограммированием между сервером и клиентом и чтобы за это ничего не было".

Date: 2012-02-10 11:24 am (UTC)
From: [identity profile] alexeyk77.livejournal.com
функциональщина это тоже откат вниз, хотя и не в такой низ как все другое. Так что не согласен.
Думаю, имеет смысл обсуждать конкретную проблему/задачу и как ее лучше решить. Многие из отписавшихся идею отказа от ХП не поддержали.
Помимо удобства программирования есть жеи другие факторы:
Безопасность БД. С ХП ее можно обеспечить в сложных оперденях. Далее ее можно так-же и контроллировать. В больших организациях обложенных всякими требованиям по управлению IT/безопасностью это очень важно. Лично я как безопасник запорю любое решение, которое дает с базой работать напрямую.

И еще есть такой фактор, что разработчики конечных приложений (гуй/ввод-вывод) все более примитивизируются, посему надеяться на их вменяемость сложно. Поэтому идея разделения сложной системы на слои, которые взаимодейсвуют между собой только через оговоренные API-интерфесы - проверенный временм путь. В операционках ядро пишут одни люди, а блокнот и рисовалку - другие. И уровень у ни разный. Аналогично во всем остальном, даже идея инкапсуляции в ООП - тоже самое.

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 Dec. 3rd, 2025 01:00 pm
Powered by Dreamwidth Studios