Это одна из проблем Marmite. Если вы в первую очередь программист баз данных, вы подумаете, что хранимые процедуры следует использовать широко. Если вы программист приложений - скажем, программист на Java или .Net - скорее всего, вы скажете, что их следует полностью избегать.
Это не означает, что прикладные программисты хотят писать свои собственные операторы SQL. Нет, в наши дни они, как правило, хотят абстрагироваться от всего, что скрывается за запутанными услугами ORM. Их не легче понять, чем хранимые процедуры, но они доступны в одной среде IDE, поэтому для них требуется меньше переключения контекста.
Есть два важных момента в пользу хранимых процедур. Во-первых, люди, которые знают PL / SQL, вероятно, знакомы с базами данных Oracle (T-SQL, SQL Server и т. Д.), И поэтому будут стремиться писать лучшие программы для этой базы данных (определяемые как программы, которые используют преимущества платформы функции и соответствуют его функциональности), чем люди, которые этого не делают.
Во-вторых, данные сохраняются. Разработчики приложений любят говорить о «независимости базы данных», но что действительно важно, так это независимость приложения. Внешние интерфейсы приходят и уходят, но модель данных существует вечно. За последние десять лет Java-приложения были написаны в виде апплетов, сервлетов, JSP, плиток и граней с надстройками на JavaScript, Groovy, AJAX и JSON, подключающимися к базе данных через вручную свернутый JDBC, EJB (v1,2, 3), TopLink, Hibernate и IBatis ... простите, если я пропустил несколько. Приложения, пользовательский интерфейс которых представляет собой оболочку над слоем хранимых процедур, легче обновить до последней и лучшей версии, чем приложения, в которых бизнес-логику приходится каждый раз переписывать. И они тоже будут работать лучше.
Однако в долгосрочной перспективе приложения, которые напрямую взаимодействуют с базой данных, вероятно, исчезнут. Все будет общаться со служебной шиной, и она решит, откуда брать данные. Конечно, магазинам, где база данных предоставляется через хорошо продуманный API хранимых процедур, может оказаться легче перейти в этот дивный новый мир, чем тем местам, которым придется извлекать все из своей логики ORM.
person
Community
schedule
06.04.2010