Найти в Дзене
392 подписчика

Оверинженеринг


Я решил сегодня отдохнуть от бизнеса и маркетинга и пописать код, так как практика должна быть регулярной. Мне нужно было реализовать функцию импорта компаний в одном из проектов. Выделив в отдельный сервис и подключив либу работы с экселем, я понял, что могу пойти двумя путями.

- За час реализовать частный случай импорта, который как раз нужен был для контент-менеджеров.
- Потратить полтора часа и реализовать более общий случай, который будет подходить для всех типов компаний, но не факт, что пригодится.

И пред такой дилеммой становятся многие разработчики. Потому хочу поделиться тем, как решаю это для себя. Делаем общий случай, только если на эти вопросы вы можете сказать “Да”:

1. Нужен ли точно общий случай в будущем?
2. Переделка с частного на общий займёт больше времени чем сейчас реализация общего?
3. Вы будете вставлять костыли в код, чтобы реализовать частный случай?
4. Реализация общего случая приоритетнее других задач?

Это я к тому, что в большинстве случаев подойдёт простая реализация, особенно при изменяющихся бизнес требованиях.

P.S. Да, я реализовал частный случай, так как на вопросы 2 и 3-я ответил “Нет”, а на 1 - “Не знаю”, и потому могу быстро допилить функционал при необходимости.
1 минута