Каждый разработчик начинает свой путь с набора «золотых правил». Чтобы упростить жизнь новичкам, я сам часто упаковываю эти правила в простые визуальные форматы — например, в такие карточки. Они отлично справляются со своей задачей: дают быструю и понятную выжимку основ. Это — «уровень 1» понимания. Знать, что означают эти аббревиатуры. Но дьявол, как всегда, в деталях. «Уровень 2» — это понимание того, что в реальном мире эти принципы постоянно конфликтуют друг с другом. Искусство хорошего программиста заключается не в том, чтобы слепо следовать каждому из них, а в том, чтобы мастерски дирижировать этим хаосом и находить правильный баланс. Сегодня мы перейдем на «уровень 2» и посмотрим, как красивая теория с этих карточек разбивается о суровую реальность. Карточка говорит: «Не повторяйся» (DRY).
Реальность говорит: Благородное желание избавиться от дублирования кода часто приводит к созданию настолько сложных и универсальных конструкций, что они напрочь убивают простоту (KISS). Предст