C
C
Crunchor2020-03-23 21:03:53
Java
Crunchor, 2020-03-23 21:03:53

How to adapt the program to numerous changes?

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

Prompt some best practices in this matter.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
E
Evgeny Mamonov, 2020-03-23
@EvgenyMamonov

Если я верно понял задачу, то у вас база в одном формате, а данные приходят в разных.
Если это так, тогда вам нужно просто сделать 3 класса:
1 - преобразовывает данные в формате 1 во внутреннюю структуру (пригодную для сохранения в базу)
2 - преобразовывает данные в формате Х во внутреннюю структуру
3 - сохраняет данные из внутренней структуры в базу
Это стандартная практика для подобных задач.
Если вам будет нужно сохранять данные не в базу, а куда то еще, например в облако - вы просто добавите еще один класс, который умеет сохранять данные в нужном формате/на облако.

N
nApoBo3, 2020-03-23
@nApoBo3

Версионость api. Обеспечивается может разными методами. Если старое api будет поддерживаться не ограниченное время, а анализ должен быть сквозным, то данные на слое ниже нужно сводить в один формат.

S
Sergey Shvyrev, 2020-03-24
@CellycoMobiles

Worked, as that on one fat client. There was a similar situation. Even harder. The strategy pattern defined the type of application being instantiated.
There were a lot of features and some degraded periodically. We chose the workflow - GitFlow. He met our goals.
Recommend. But I do not impose.
You have already decided on storing versions in the git. It remains to choose workflow. I suggest reading the comparison from Atlassian : link
Choose what is more suitable for your purposes.
Thank you.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question