Инкапсулируйте различные источники данных в приложении

У меня есть сайт электронной коммерции. Это основано на Kohana php. Мой бизнес сталкивается с новыми проблемами, и я пытаюсь разбить свою монолитную архитектуру на маленькие части.

Прямо сейчас у меня есть база данных mysql в качестве единственного источника данных и доступ к ней в моем приложении через запросы ORM или DB:

$product = ORM::factory('Product', $id_product);
$products = ORM::factory('Product')->where()->find_all()
$products = DB::query(Database::SELECT, "{my complex query}"->as_object('Product')->execute();

Проблема возникает, когда я решаю перейти на другой источник данных: API, Mongodb и т. Д. Я вынужден переписать много строк моего кода.

У меня есть пробелы в моих знаниях по разработке программного обеспечения, и мне нужны некоторые советы, лучшие рекомендации по инкапсуляции различных источников данных в приложении.

1 ответ

Инкапсулируйте взаимодействия с источником данных, используя шаблоны адаптера и фабричного метода. Убедитесь, что у вас есть фиктивные реализации адаптеров, чтобы вы могли тестировать взаимодействия при отсутствии реальной базы данных.

Другие вопросы по тегам