Я твердо верю в философию YAGNI («Вам это не понадобится»), когда дело касается разработки программного обеспечения (и жизни, зачем чесать, пока не зачесалось). Очень похоже на то, как меня учили использовать шаблоны проектирования GOF для решения проблем, когда вы их видите, вместо того, чтобы начинать с шаблона проектирования. Появление J2EE/Spring создало Java-программистов, которые начинали с фабричного шаблона, создающего только одну вещь. Обоснованием этого было то, что завтра мы создадим больше вещей. Теперь эти замечательные программисты переходят на Scala/FP и привносят свою философию: «Нам это понадобится послезавтра». После поиска технической библии, stack overflow.com, они глубоко погружаются в MTL (Библиотека преобразования монад), Free Monads и т. д., прежде чем столкнуться, скажем, с проблемой лестницы карт и плоских карт или с проблемами безопасности стека. Вы можете увидеть такое же поведение и с инфраструктурой. Multi AZ, автоматическое масштабирование и т. д. являются обязательными, даже если нет клиентов, использующих это дерьмо.

Итак, чтобы объяснить YAGNI, я придумал аналогию, вот она; «Вам не понадобится виагра, если у вас нет партнера или денег, чтобы нанять его». Я предполагаю, что это говорит само за себя, но позвольте мне выделить это (я не сексист, но для простоты предположу, что мы говорим о мужчинах).

Необходимость виагры возникает, когда последовательно происходит следующее;

  1. Вы пытаетесь заняться сексом.
  2. Вы испытываете эректильную дисфункцию (ЭД)
  3. Одной точки данных недостаточно, но если вы паникуете, обратитесь к врачу. Не гуглите, как вы это делаете при программировании.
  4. Если он пропишет виагру, тогда принимайте ее, когда у вас будет возможность заняться сексом.

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