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