О том, как разработчики постоянно стреляют себе в ногу

На эту статью меня натолкнуло то, что я прочитал на Medium. Я не буду давать ссылку на статью или называть автора. Я просто собираюсь дать вам короткую версию и обсудить, почему она нарушает две заповеди, которые я перечисляю в конце.

Статья выглядит примерно так. У нас есть какая-то древняя техника программирования. Некоторые разработчики не до конца понимают, как это работает, поэтому допускают ошибки. Из-за этого мы должны заменить эту технику новой, которая предотвратит те конкретные ошибки, которые обычно совершают люди. Эта новая техника сложнее старой, но она хороша тем, что предотвращает ряд ошибок программиста.

Первая ошибка, допущенная автором, заключается в неправильном определении первопричины. Основная причина проблемы заключалась не в самой технике. Для каждой техники всегда можно найти неквалифицированного разработчика, из-за которого она выглядит плохо. Такова жизнь. Меняем ли мы технику каждый раз, когда кто-то делает ошибку в ее применении? Конечно… мы делаем. Но мы действительно должны прекратить это делать.

То, что действительно должно было бы быть рассмотрено здесь, является неправильным применением техники. Некоторое образование, некоторое руководство, подсказка… Это помогло бы человеку вырасти и сделало бы программное обеспечение проще. Что в этом не нравится?

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

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

Если он не сломан, не чините его

Если он сломан, почините его

Каждый раз, когда вы исправляете какую-то ошибку, вам будет труднее совершать ее в будущем.