Как выполнять повторяющиеся запросы к базе данных и соблюдать ООП и SOLID? ⇐ Php
Как выполнять повторяющиеся запросы к базе данных и соблюдать ООП и SOLID?
У нас есть функция, которая состоит из нескольких этапов (проверка, оценка данных, анализ, подготовка ответа и т. д.). Многие из этих шагов обращаются к базе данных сами по себе. Я говорю о помощниках, выполняющих некоторую обработку и иногда запрашивающих базу данных для получения очень похожего или того же набора результатов, например «выбрать электронное письмо из xxx, где id='xxx'» или «выбрать электронное письмо из xxx, где id='xxx'» или «выбрать * из xxx, где id='xxx'".
В конечном итоге функция вызывает 7 раз один и тот же запрос и 3 раза другой. Все запросы выполняются разными объектами, разными помощниками, иногда одним и тем же помощником, но в разных связанных потоках, каждый запрос запроса выполняется изолированными функциями, которые полностью инкапсулированы, без знания предыдущих вызовов и т. д., пытаясь соблюдать SOLID. Что мы можем сделать? мой начальник расстроен этим, и я согласен, но не знаю, как это исправить.
Идеи такие: (мы не используем никакой orm, а используем старые добрые запросы к базе данных - я знаю, короче говоря: код представляет собой Zend framework 1, основанный на 2014 году, и пока нет критической необходимости его улучшать ) кэширует результаты во время запроса, поэтому об этом позаботится обработчик базы данных/dbal/orm.
Другой вариант — изменить код так, чтобы все происходило с помощью одного большого толстого метода... мой босс не особо разбирается в ООП, он любит процедурные методы...
Другой вариант — изменить все методы, подобные getUserInfoByEmail(), для самостоятельной обработки кеша...
Другой вариант — изменить код, чтобы методы, подобные getUserInfoByEmail(), имели собственный кеш...
Последний шаг — создать одноэлементную сущность User, которая будет загружаться сама по себе (обязательно по запросу) и предоставлять все необходимые данные.
Не уверен, какой из них будет чище. Буду признателен за вашу помощь, кстати, это PHP.
У нас есть функция, которая состоит из нескольких этапов (проверка, оценка данных, анализ, подготовка ответа и т. д.). Многие из этих шагов обращаются к базе данных сами по себе. Я говорю о помощниках, выполняющих некоторую обработку и иногда запрашивающих базу данных для получения очень похожего или того же набора результатов, например «выбрать электронное письмо из xxx, где id='xxx'» или «выбрать электронное письмо из xxx, где id='xxx'» или «выбрать * из xxx, где id='xxx'".
В конечном итоге функция вызывает 7 раз один и тот же запрос и 3 раза другой. Все запросы выполняются разными объектами, разными помощниками, иногда одним и тем же помощником, но в разных связанных потоках, каждый запрос запроса выполняется изолированными функциями, которые полностью инкапсулированы, без знания предыдущих вызовов и т. д., пытаясь соблюдать SOLID. Что мы можем сделать? мой начальник расстроен этим, и я согласен, но не знаю, как это исправить.
Идеи такие: (мы не используем никакой orm, а используем старые добрые запросы к базе данных - я знаю, короче говоря: код представляет собой Zend framework 1, основанный на 2014 году, и пока нет критической необходимости его улучшать ) кэширует результаты во время запроса, поэтому об этом позаботится обработчик базы данных/dbal/orm.
Другой вариант — изменить код так, чтобы все происходило с помощью одного большого толстого метода... мой босс не особо разбирается в ООП, он любит процедурные методы...
Другой вариант — изменить все методы, подобные getUserInfoByEmail(), для самостоятельной обработки кеша...
Другой вариант — изменить код, чтобы методы, подобные getUserInfoByEmail(), имели собственный кеш...
Последний шаг — создать одноэлементную сущность User, которая будет загружаться сама по себе (обязательно по запросу) и предоставлять все необходимые данные.
Не уверен, какой из них будет чище. Буду признателен за вашу помощь, кстати, это PHP.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение