nastya97core
@nastya97core
Начинающий программист

Как можно оптимизировать конструкцию?

Здравствуйте. Сразу оговорюсь: мне нужен не код, а помощь в построении верной логики приложения.
Суть такая:
Я храню у себя данные в БД. Через бота я проверяю на стороннем сервисе эти же данные. Если они меняются - я записываю их себе в БД. Вне зависимости от изменений, на каждый запрос я отправляю себе результат запроса в телегу. Данных много, поэтому в телеге у меня они отображаются в виде слайдера (вперёд и назад). В свойствах кнопки хранится ID записи в БД, текущее положение и действие (вперёд или назад)

Порядок операций:
Делаю запрос на чужой сервер.
В результате мне придёт либо массив данных, либо null
Если есть массив данных, то
1. я преобразовываю массив в строку
2. Сообщаю, что данные есть
3. сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД
4. отправляю оповещение в телеграм, где указываю в параметрах кнопки переключателя слайдера id той записи, которую я только что внесла в БД

Иначе если null, то
- Сообщаю, что данных нет.
- сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД

spoiler
60fe1d2a5254a980624403.png

Мне не нравится повторение действия: сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД. Мне нужно вносить в БД даже в случае отсутствия данных потому что потом это используется для получения хронологии изменения.

По сути, пока я не внесла данные в БД я не могу вывести оповещение в телегу, потому что мне нужно знать ID записи. Но я не могу знать ID записи, пока я преобразую массив в строку.

Как можно оптимизировать код кроме как выноса этого действия в функцию?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы