Инкапсулируйте различные источники данных в приложении
У меня есть сайт электронной коммерции. Это основано на 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 ответ
Инкапсулируйте взаимодействия с источником данных, используя шаблоны адаптера и фабричного метода. Убедитесь, что у вас есть фиктивные реализации адаптеров, чтобы вы могли тестировать взаимодействия при отсутствии реальной базы данных.