
Развитие некоторых аспектов программного обеспечения, в большинстве случаев, вполне предсказуемо. Один из основных трендов — это постоянное увеличение уровня абстракции.
Для наглядности, приведу пример с системами хранения данных. Итак, все началось с файлов. В самом начале мы использовали только файлы, где и хранили все наши данные, и обращались к ним напрямую из программы. Рано или поздно это всем надоело и мы перешли к
СУБД. Количество рутинной работы уменьшилось, и мы обращались к серверу БД уже через
SQL-запросы.
Но через какое-то время это стало тоже неудобно. Мы захотели иметь возможность переходить от одной
СУБД к другой без кардинальных изменений исходного кода.
Мы разработали
DAL — абстракцию, где низкоуровневый API для доступа к каждой базе данных разносился по драйверам, которые подключались по мере необходимости. А сам пользователь общался исключительно с высокоуровневыми объектами, получающие запросы и возвращающие результат. Но спустя некоторое время и эта схема перестала давать нам нужную гибкость.
P.S. Пользуясь случаем предлагаю заглянуть в мой личный и полностью некоммерческий блог, посвященный технологиям, психологии, философии и личному опыту:
http://v673.com.