Много лет назад, будучи студентом первого курса института я учился программировать. У чился в основном сам, так как институтский курс в тот момент не мог мне дать ничего нового, чего я бы в тот момент уже не знал о программировании. Я пробовал писать на ассемблере, делать графический интерфейс на паскале и даже изучал Пролог. Доступа к интернету у меня тогда небыло а книг по программированию было мало, что давало мне повод думать, что есть где-то тайное знанние о том как правильно писать программы, просто мне не попалась нужная книга.
В какой-то момент времени такая книга мне попалась, это было «Объективно-ориентированное проектирование» Гради Буча. Казалась в этой книге есть ответ, описана меотдика разработки которая возможно не гарантирует, но по крайней мере дает способ используя который можно разрабатывать хорошие программы. Окаалось этого недостаточно. И только через много лет я понял в чем было дело, ООП не является универсальным и он не всегда уместен.
В общем поиски мои продолжались и не увенчались успехом пока я сам для себя не выработал метод разработки приводящий к успешной реализации проектов. И после этого оказалось, как часто случается, что я не первый это изобрел и есть очень похожий подход у Роберта Мартина: Clean Architecture.
Итого, на данный момент, секретное знание, позволяющее достичь успеха в реализации 99% программных проектов выглядит так — чистая архитектура, DDD и микросервисы. Конено, если вынести за скобки человеческий фактор ).