@Prepod21

Как правильно писать код, уменьшая зависимости в коде?

Как правильно уменьшать зависимости в коде?
Представим программу которая должна принимать пользовательский ввод и записывать строку в базу данных. Предполагается, что программа будет активно развиваться и нужно построить масштабируемое и тестируемое решение.
Вариант 1: создаем функцию, которая будет принимать ввод и явно писать в базу данных.
Вариант 2: создаем функцию application, которая вызывает функцию get_user_input() и потом функцию write_to_db
Вариант 3: создаем класс Application, который вызывает функцию run, которая вызывает метод класса User. Метод класса User в свою очередь вызывает метод класса DbManager.writeUserString
Вариант 4: аналогичен варианту 3, но DbManager.writeUserString вызывается вне класса User

Какой вариант предпочтительнее с точки зрения написания тестов, уменьшения зависимостей и улучшения масштабируемости архитектуры ?

Каковы общие принцыпы?
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@bacon
А может он и не будет развиваться и не надо масштабироваться. В самом начале можно собрать хоть что-то работающее из говна и палок, чуток причесать и получим MVP,. А если это пошло, то выделяйте use cases, контракты и прочее из DDD. Пример как надо двигаться https://habr.com/ru/company/oleg-bunin/blog/488010/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Здесь два манипулятора:
1. Получение данных с устр. ввода.
2. Запись в БД.

Считаем все объекты:
1. Внешние данные
2. Получатель данных с клавиатуры
3. БД

Порядок действий:
1. Получаем
2. Проверяем
3. Пишем

Итого: три функции:
1. Фильтруй всё из того,...
2. Что только что ввёл пользователь и сразу же..
3. Пиши в БД.

Кратко, так:
if(filter(input->val)) db->insert(input->val)
Ответ написан
Ваш ответ на вопрос

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

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