Как понять, что ваш код великолепен
easy

Как понять, что ваш код великолепен

8 признаков того, что вы пишете классный код

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

Его легко отлаживать

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

Вот как это можно сделать:

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

В нём есть логгер

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

Чтобы выявлять, что пошло не так, нужно регистрировать ошибки. Для этого понадобится вести лог, а это значит, что вам нужна структура логирования. Нужно настроить ведение лога таким образом, чтобы он был читабельным сам по себе или с помощью какой-то программы для чтения логов. Если не сделать этого заранее, придётся добавлять логирование к боевой версии кода, а это та ещё задача.

Код легко протестировать

Тестируемый код разбит на понятные функции, которые выполняют простые проверяемые действия. Протестированный код работает лучше и более стабильно. Если у вас есть устаревший код, в котором нет тестов, пишите их по мере изменения этого кода. 

Всё предсказуемо

Предсказуемый код — это такой код, который после многократного выполнения одной и той же операции даёт один и тот же результат. Например, если пользователь обновляет страницу товара, который уже добавлен в корзину, это не должно приводить к тому, что в корзине оказывается два заказа этого товара.

Создание такого кода обеспечивает предсказуемое поведение веб-страницы, приложения или программы. Вот как можно этого добиться:

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

Легко понять, что делает код, не запуская программу

По-настоящему классный код таков, что его может прочитать и человек, не запуская при этом сам код. Вот как этого добиться:

  • используйте комментарии. Они должны быть подробными и объяснять, что делает каждая строка кода;
  • называйте переменные и функции понятно. Используйте осмысленные имена, которые отражают их назначение;
  • разбивайте код на логические блоки. Это поможет упростить его понимание и улучшить читаемость;
  • используйте отступы и форматирование.

Есть документация

Хороший код сопровождается понятной и актуальной документацией, которая описывает все функции, методы и классы, а также их параметры и возвращаемые значения. По мере изменения кода документация к нему тоже должна обновляться.

В идеальном случае код должен самодокументироваться. Для этого можно использовать инструменты автоматического создания документации:

  • Python: Sphinx, Pydoc;
  • JavaScript: JSDoc, Dox;
  • Java: Javadoc, Doxygen;
  • C++: Doxygen, Sphinx.

Всё состоит из отдельных модулей

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

Чтобы у вас получался модульный код, попробуйте делать так:

  • Используйте принцип разделения ответственности. Каждый логический фрагмент кода должен выполнять одну конкретную функцию и не зависеть от других фрагментов.
  • Разделяйте данные и логику. Данные должны храниться в одном месте, а логика должна быть реализована в другом.
  • Используйте абстракции. Это позволит скрыть детали реализации и предоставить пользователю только необходимую информацию.
  • Тестируйте каждый логический фрагмент кода отдельно, чтобы убедиться, что все фрагменты работают корректно.
  • Проводите рефакторинг по мере необходимости — это улучшит структуру кода и сделает его более понятным.

Его можно собрать и запустить :-)

Если ваш код запускается без ошибок из готовой сборки, выложенной, например, на GitHub или в другом репозитории, то он великолепен. Если же для запуска вашего кода требуется время, то сборка требует доработки. Представьте, что в команду пришёл новый разработчик, ему выдали компьютер, и теперь ему нужно запустить ваш код у себя. Если же вам кажется, что немного повозиться со сборкой — не проблема, представьте, что это происходит во время релиза или исправлений кода. Или в пятницу вечером перед деплоем :-)

Текст:

Инна Долога

Редактор:

Михаил Полянин

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Юлия Зубарева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy