На хабре промелькнул очередной холиварный пост про хранимые процедуры и бизнес-логику.
А вот в старом добром ABAP сложилось так, что для этого холивара нет места. Просто внутренняя жизнь устроена совсем иначе:
- Нет размазывания кода между системами – различие между доступом к БД и бизнес-логикой выражается в процедурном разграничении кода, но в рамках одной инфраструктуры
- Не предлагается никаких инструментов для доступа к БД со стороны разработчиков, доступ к БД – только у администраторов
- OpenSQL является неотъемлемой частью среды разработки без использования видимых промежуточных объектов (типа DBConnection, DBQuery)
- Использовать NativeSQL не рекомендуется, хотя в реальной жизни это используется, но при этом всегда редко и точечно (например для интеграции)
- В ABAP нет постоянной практики динамического склеивания запросов и использования всяческих плейсхолдеров
- Проблема SQL-инъекций выражена или слабо, или вообще никак
- Мультиплатформенность есть, но существующие внедрения не мигрируют на другую платформу БД
- Обычно считается, что сервер БД и сервер приложений находится на одном хосте (или в очень быстрой связке)
- В ABAP нет никакого толстого клиента
Вот такая жизнь. Сложно назвать это достижением или ограниченностью.