ЯГНИ. "СУХОЙ". "ЦЕЛОВАТЬ". Идиоматический. Удобочитаемый.
Эти термины предназначены для краткой передачи концепции, но легко становятся конфликтными клише. Избегайте их, чтобы улучшить обсуждение кода.
Например, YAGNI, DRY и KISS часто используются в качестве аргументов для упрощения излишне сложного кода. К сожалению, их также можно использовать для того, чтобы отмахнуться от существенной сложности, без необходимости понимания лежащей в основе ценности.
Точно так же термины идиоматично и удобочитаемо часто используются для обозначения общих подходов, которые легко распознаются специалистами-практиками в конкретном сообществе. Однако их также можно использовать для диктата личной эстетики без хлопот с обоснованием.
Все термины относятся к качеству, по которому трудно занять противоположную позицию. В конце концов, кому захочется создавать ненужные вещи или писать слишком сложный, нечитаемый код? В связи с этим дискуссия часто сводится к одному из двух сценариев: уступчивость или смысловой разлад. Согласие означает, что никто не улучшается, поскольку нет необходимости обучать или обсуждать компромиссы. Семантический разлад утомляет, так как это означает, что спор перестает быть о коде, а становится об определениях и спорах о первых принципах. Хотя отдельные люди могут чувствовать победу в дебатах любого типа, команда в целом проигрывает.
Что работает лучше?
Вместо того, чтобы обмениваться прописными истинами друг с другом, сфокусируйте обсуждение на компромиссах. Простой способ сделать это — использовать метод Сократа: задавать вопросы, чтобы выявить намерение и лежащие в его основе предположения.
Когда вы сталкиваетесь с излишне сложным кодом, спросите себя, зачем нужна эта сложность и какую ценность она приносит. Обсуждение может показать сложность, которая должна быть оправдана.
Предоставляя отзыв о коде, который избегает общего решения, предложите альтернативу вместе с обоснованием и спросите, почему она не будет работать в данном случае. Обсуждение может показать, как эта проблема не соответствует шаблону.
Когда мы отказываемся от банальных заявлений, мы освобождаем место для развития нашего понимания проблемы вместе с ее решением. Вооружитесь любопытством, а не банальностью.
Первоначально опубликовано на сайте soggycupcakes.com 3 августа 2016 г.