Предыдущие исследования показали, что включение отрицательных слов, таких как «не», в середину предложения, может сбить нас с толку и усложнить понимание.
Как программист, я заметил, что исключение отрицательных операторов в коде приводит к более продуктивной базе кода. В своих обзорах кода я призывал свои команды писать в позитивном ключе, чтобы их было легче понять и с ними работать. Это может идти вразрез с естественной тенденцией написания, но окупается, особенно по мере роста кодовой базы. Написание позитивного кода дает много преимуществ. В этой статье я объясняю, почему мы должны стараться по возможности избегать негативного кода.
Человеческий разум изо всех сил пытается понять негативные слова в высказываниях.
Отрицательные слова требуют больше мыслительного процесса. Мы можем думать о мыслях как о стрелах, у которых есть направление. Отрицания перевернут логику мысли.
Не кормить животных
Известным знаком в зоопарках или парках может быть «Не кормите животных». Многие знаки должны подчеркивать слово «нельзя», чтобы помочь люди помнят эту часть утверждения. Вы заметили, что они редко используют составной глагол + отрицание «Не делайте», например «Не кормите животных»? Выделив отрицательную часть, легче подчеркнуть. В любом случае разум должен перевернуть мысль.
Более простой способ понять может быть
Избегайте кормления животных
Знак остановки - отличный пример
Стоп передает простую и понятную идею. Стоп. Что, если этот знак будет переписан на «Не уходи»? Это как бы отбрасывает отрицательную часть.
Хороший
"Стоп"
Плохой
«Не иди»
Позитивные утверждения легче понять
Выровняйте логику в утверждении, чтобы его было легче читать. По возможности избегайте отрицаний, поскольку это переворачивает логику. Человеческий разум должен больше работать, чтобы понять логику переворота.
Положительная мысль:
- легче читать
- легче рецензировать
- подталкивает писателя к улучшению восприятия читателя
Например, сравните следующие два утверждения:
Хороший
«Если я получу деньги, я заплачу вам». (OK)
Плохой
«Если я не получу денег, я не заплачу тебе» (так… ты платишь мне или нет ??)
Первое утверждение легче понять. Простота требует меньше мыслительной способности. Преимущество - более быстрое общение и меньше недоразумений.
Отрицательный код сложно понять
В языках программирования, как и в математике, есть логические операторы. Многие из самых популярных языков программирования используют ==
для равенства и !=
для отрицания. В математике это будет = и ≠.
В следующем примере кода мы хотим написать алгоритм. Программа заглянет в продуктовый магазин. Инструкция - покупать бананы, если они есть в наличии. В противном случае поищите в другом магазине.
Хороший
if (bananasQuantityAvailable == 0) { goToAnotherStore() } else { buy(bananas) }
Плохой
if (bananasQuantityAvailable != 0) { buy(bananas) } else { goToAnotherStore() }
Пример с троичными выражениями
Хороший
var itemState = itemsCount == 0 ? "Empty" : "Available"
Плохой
var itemState = itemsCount != 0 ? "Available" : "Empty"
Легче испортить, когда складывается отрицательный код
Вы можете подумать, что при написании кода проще просто вставить отрицательный оператор. Вскоре это становится привычкой, и вы внезапно начинаете писать отрицательные операторы повсюду. Это может привести к очень запутанному беспорядку.
Допустим, мы хотим написать программу, которая распознает автомобиль Tesla.
В этом примере я буду использовать логические операторы &&
для И и ||
для ИЛИ.
Хорошо
if (isCar && isElectric && isFast && isAwesome) { isTesla = true else { isTesla = false }
Переводит на:
Это Tesla, если это быстрый и потрясающий электромобиль.
Плохой
if (!isCar || !isElectric || !isFast || !isAwesome) { isTesla = false else { isTesla = true }
Переводит на:
Это не Tesla, если это не электромобиль, и он не быстрый и не крутой.
Наш язык может быть виноват
Лера Бододицки представила в своем TedTalk, что языки формируют наш образ мышления.
Один из ее примеров - о том, как люди будут описывать мосты. И в испанском, и в немецком языках существительные относятся к родам. По-испански мост будет мужского рода «el puente». Немецкий язык также присваивает существительным роды, в результате чего «die Brücke» женский род. Следовательно, испаноязычные люди часто будут ссылаться на мосты с помощью стереотипных мужских прилагательных, таких как «сильный» и «длинный», в то время как немцы могут описывать мосты с женскими стереотипами, такими как «красивый» и «элегантный».
Отрицательные слова являются частью большинства языков. Фразы также имеют их встроенные. «Если они у нас есть, почему не использовать их?». Мы привыкли добавлять отрицания в наши предложения, как мы привыкли включать их в свои мысли. Тогда кажется очевидным, что мы будем использовать в нашем коде отрицательные операторы.
Когда использовать отрицательные операторы?
Бывают случаи, когда имеет смысл использовать отрицательный оператор. Такой случай будет, когда отрицание все еще будет легко читать, нужно только иметь дело с отрицательным случаем, и для выражения потребуется меньше кода.
Заключительные мысли
Каждый раз, когда я исправляю логическое утверждение, я становлюсь свидетелем силы положительного кода. Упрощение кодовой базы - отличный опыт разработчиков, который может принести пользу всей команде. Его легче просматривать и поддерживать. С другой стороны, давайте не будем принимать этот принцип как догму. Отрицания - это инструмент, который мы можем использовать всякий раз, когда они имеют смысл.
Спасибо, что прочитали, и дайте мне знать, если у вас есть какие-либо комментарии по поводу этого принципа.
Вы можете подписаться на меня там, поскольку я продолжаю открывать для себя новые идеи.