@Crunkor

Как приспособить программу к многочисленным изменениям?

Представьте ситуацию, что программа работает правильно и всех она устраивает. В программу поступают каждый день данные и они успешно сохраняются в БД.
В один прекрасный день появляется указание о том, что методы, которые отвечают за обработку и загрузку данных в БД нужно переделать. Программа успешно переделывается. Но теперь возникает необходимость загрузки данных по старому формату. Как быть в такой ситуации? Таких изменений может быть много.
Я вижу тут следующие варианты решения задачи...
1. Хранить отдельную ветку на гитхабе со старым методом. В таком случае в этой старой ветке не будет новых фич.
2. Создавать несколько методов с условными названиями "Загрузка Январь", "Загрузка Март", "Текущая загрузка".

Подскажите какие-нибудь best practices в этом вопросе.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 3
EvgenyMamonov
@EvgenyMamonov
Senior software developer, system architect
Если я верно понял задачу, то у вас база в одном формате, а данные приходят в разных.
Если это так, тогда вам нужно просто сделать 3 класса:
1 - преобразовывает данные в формате 1 во внутреннюю структуру (пригодную для сохранения в базу)
2 - преобразовывает данные в формате Х во внутреннюю структуру
3 - сохраняет данные из внутренней структуры в базу
Это стандартная практика для подобных задач.
Если вам будет нужно сохранять данные не в базу, а куда то еще, например в облако - вы просто добавите еще один класс, который умеет сохранять данные в нужном формате/на облако.
Ответ написан
@nApoBo3
Версионость api. Обеспечивается может разными методами. Если старое api будет поддерживаться не ограниченное время, а анализ должен быть сквозным, то данные на слое ниже нужно сводить в один формат.
Ответ написан
Комментировать
CellycoMobiles
@CellycoMobiles
indi developer @CellycoMobiles
Работал, как то на одном жирном клиенте. Была подобная ситуация. Даже сложнее. Паттерн стратегия определял тип инстанцируемого приложения.
Фич было очень много и некоторые деградировали периодически. Выбрали ворклоу - GitFlow. С нашими целями справлялся.

Рекомендую. Но не навязываю.

Вы уже определились хранением версий в гите. Осталось выбрать workflow. Предлагаю прочитать сравнение от Atlassian : link
Выберете, что более подходит для ваших целей.

Спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
10 мая 2024, в 14:59
2000 руб./за проект
10 мая 2024, в 14:56
2000 руб./за проект
10 мая 2024, в 14:55
2000 руб./за проект