Эта статья также доступна на испанском языке здесь.
Este artículo lo tienes también disponible en español aquí.

Хорошо, вы разработчик, что, если я скажу вам, что ваша работа — это не только куча кода, но и сама форма общения?

Да, я почти уверен, о чем вы сейчас думаете:
«Чувак, ты думаешь, что открыл колесо? Я общаюсь со своим компьютером через свой код, и все это знают!»

И это точно, сам код — это то, как мы, разработчики, разговариваем с компьютерами, чтобы сказать им, что нам от них нужно, но это только верхушка айсберга!

Код — это форма общения с компьютером, с другими инструментами, с другими людьми и с самим собой (прямо сейчас, в ближайшем будущем И даже через несколько месяцев!).

Связь с моим компьютером

Мы редко (или никогда) не общаемся с нашими процессорами на их естественном языке (надеюсь, никто не пытается написать REST API только с машинным кодом…), но мы используем эти интерпретаторы для перевода нашего человеческого кода в Машинный код. Это может быть буквально «интерпретатор» для языков сценариев, которые интерпретируются во время выполнения, таких как Python или JavaScript. Или используем транслятор: компилятор как в Go или C++.

Мы разговариваем с нашими компьютерами, давая им буквальный список инструкций для ЦП.

Представьте, что вы пишете список задач, которые хотите сделать сегодня, например:

- Купите продукты.
- Если новый фильм Marvel идет в кинотеатрах, посмотрите его сегодня вечером.
- Уберитесь на кухне.

Но что, если этот список задач недостаточно ясен, неоднозначен или вообще не имеет никакого смысла?

- Купите кухню.
- Если новые продукты уже в кинотеатрах, идите посмотреть их сегодня вечером.
- Почистите новый фильм Marvel.

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

Общение с другими (включая вас!)

Ваш код — это способ общаться с другими людьми, но не для разговоров о вчерашней игре или любимом сериале прошлой недели.

Ваш код говорит с другими, которые должны читать то, что вы написали. Его читают люди, с которыми вы работаете (или сотрудничаете). Его читают люди, которые просматривают этот код. Его читает другой член команды, который позже выбирает ваш код. Ее даже читают сами, когда надо что-то починить за несколько месяцев.

Наш кодекс – общение с другими. Даже с тобой. Он также должен быть кристально чистым и недвусмысленным, если другим приходится его поддерживать.

Это очень важно!

Наш код должен быть прозрачным: раскрывать алгоритмы и раскрывать их назначение, а не делать его неясным и трудным для чтения.
Он должен позволять другим легко изменять его. Если код не раскрывает себя, четко показывая, что он делает, то его будет сложно поддерживать или изменять.

Помните, что о кодировании мы знаем только то, что единственная константа — это само изменение.

Хороший код не становится нечитаемым. Ни одна из них не является длинной, скучной и наполненной комментариями. Больше комментариев не делает код лучше, они просто делают его длиннее и создают как минимум две возможные проблемы:

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

Если вам нужно добавить комментарий для объяснения блока кода, вам следует сначала подумать о том, чтобы переписать этот блок кода.

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

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

Код читают гораздо чаще, чем пишут. Поэтому его следует оптимизировать для чтения, а не для записи.

Взаимодействие с другими инструментами

Наш код общается даже дальше, чем с процессором и людьми, с другими инструментами, которые с ним работают.

Сейчас существует множество инструментов, которые взаимодействуют с нашим кодом: генераторы документации, линтеры кода, системы контроля версий, программы для отслеживания ошибок, анализаторы кода и т. д. Даже наши редакторы кода или IDE взаимодействуют с ним.

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