Недавно пришлось залезть в код, который мне оставили в наследство. По словам автора, он пытался писать хороший код. По итогу, получилось не очень.
Интересно, что код внешне напоминает хороший. Выделены классы с разной ответственностью, есть интерфейсы, миксины, юнит-тесты и т.д. Но факт в том, что править этот код очень тяжело — логика размазана по классам неочевидным образом, одна и та же процедура вызывается из разных мест с сильно различающимися параметрами и нужно учитывать все эти кейсы. Короче, по факту поддерживать код тяжело и производительность тоже страдает.
Меня теребит эта внешняя похожесть. Что-то сделано, но бесцельно. Мне кажется, что это идет из того, что в книгах по программированию нет нормальных примеров. Все пишут заповеди сразу, интерпретируй как хочешь. А на результат смотреть не обязательно — будь хорошим и может быть чудо произойдет.
Я тут тоже конечно молодец бываю. Например, обжариваю чеснок в масле когда готовлю, хотя разницы на конечный результат не замечаю. Но не трачу на это недели жизни хотя бы.
Вообще, кажется, у людей есть какая-то склонность к этому. Заменять сложные практики простыми правилами, а потом сложные практики забывать. Надо только самому об этом не забывать.