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

Существенную часть разработки составляет проектирование и реализация обработки данных. При этом важен выбор оптимального источника данных.

CRUD - Create, Read, Update и Delete

Различные системы хранения данных имеют свой API. Для реляционных баз данных это язык запросов SQL, для RESTful приложений - HTTP команды и т.д. Объединяет их базовый функционал: CRUD. CRUD - это Create, Read, Update и Delete. Возможны варианты, например Delete - Destroy, но смысл тот же.

Я попытался реализовать этот доступ к разным источникам с помощью этого интерфейса и добавить функционал, который решит следующие задачи:

  • Запись только изменившихся данных
  • Отложенное чтение данных
  • Избежать повторного чтения одних и тех же данных
  • "Зеркалирование" данных
  • Смена хранилища данных с минимум услиий

Это своего рода "велосипед", но собранных из деталей разных "моделей" :-).

Collection - библиотека для работы с коллекциями данных

Результатом реализации этих идей стал модуль Collection. Он доступен на CPAN.

Обзору некоторых решений, которые в нем используются, посвящен мой доклад на BY_PERL.

В выступлении будет рассмотрен пример работы с классом Collection::AutoSQL.

Цитата для выступления...

Дональд Кнут:"Преждевременная оптимизация - это корень всех бед".