Как писать SQL-совместимый код?

zerkms

TDD infected
Команда форума
Lightning
потому что невозможно проверить все тестовые сценарии. можно покрыть все методы тестами, но это не значит, что покрытие будет 100%.
 

Fortop

Новичок
fixxxer
На производительность придется положить сразу и полностью :D универсальность - неэффективна.

Lightning
А код самих процедур менять?
Естественно. А какие еще варианты?

Lightning
Кроме того, при таком подходе возникают проблемы с контролем версий и диплойментом.
Никаких проблем. SQL-скрипты для миграций вполне себе могут лежать в SVN или где-то еще.
Деплойментом и разработкой БД занимается DBA.
Вы полагаете, что напишете SQL запрос лучше профессионального DBA?
А где ему удобнее держать код и работать с ним? Вшитый в Ваше приложение и размазанный по моделям?
Или в БД, которую он знает как свои пять пальцев?

Про "переписывать больше кода" - спасибо посмеялся :D

В текущей постановке вопроса, что мой совет бессмысленнен, что предложения воспользоваться ORM, SQL-билдерами и т.д.
Это инструменты для конкретных задач.
 

fixxxer

К.О.
Партнер клуба
Рассуждать очень много можно, но я на практике встречался с такой необходимостью ровно ноль раз.

И если бы пришлось, просто продублировал бы SQL-запросы (которые я всегда выношу в отдельные статические переменные классов моделей) там, где это необходимо. Это на самом деле более простая работа, чем городить уровни абстракции от неизвестности =)
 

Lightning

Трудоголик
Fortop
Бизнес-логику тоже пускай DBA пишет?
Да что уж мелочиться, пускай DBA все приложение пишет средствами СУБД.
Зачем прогеры, если есть DBA?
:)

P.S. Кстати, в данном вопросе вроде не идет речь о DBA?
 

Fortop

Новичок
Lightning
Бизнес-логику тоже пускай DBA пишет?
Он это сделает лучше? Если сделает лучше - пусть пишет. Скажете ему, что я разрешил :D

Lightning
P.S. Кстати, в данном вопросе вроде не идет речь о DBA?
Fortop
В текущей постановке вопроса, что мой совет бессмысленнен, что предложения воспользоваться ORM, SQL-билдерами и т.д.
Это инструменты для конкретных задач.
 
Сверху