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

Что такое сопровождаемость кода?

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

Способы написания поддерживаемого кода

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

На изображении выше имя, присвоенное функции, было «fn», что само по себе не несет никакой описательности: тот, кто видит код, будет знать, что это функция, но не будет иметь представления о том, что эта функция делает, если только человек не перечитывает его снова и снова. В приведенном выше примере гораздо проще увидеть, что функция просто складывает три числа, но в гораздо более крупном проекте это будет не так просто, как этот.

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

  • Единое форматирование. Придерживайтесь единого стиля форматирования кода во всем проекте. Это улучшает читаемость и упрощает совместную работу нескольких разработчиков. Это можно сделать с помощью популярного инструмента, такого как prettier, и файла с именем «.prettierrc», которым затем можно поделиться со всеми членами одной команды, которая вносит свой вклад в определенный исходный код, чтобы каждый из них мог иметь одинаковый стиль форматирования кода.
  • Модуляризация. Это еще один способ разработки поддерживаемого кода. Это предполагает разбиение вашего кода на более мелкие автономные модули или функции. Каждый модуль или функция должны иметь конкретную цель и отвечать за четко определенную задачу, и, если это возможно, функция не должна выполнять более одной задачи.
  • Комментарии и документация: Это очень важно, и это невозможно переоценить. Пишите четкие и краткие комментарии, чтобы объяснить сложную логику, алгоритмы или процессы принятия решений. Кроме того, предоставьте подробную документацию, в которой описывается цель, использование и ожидаемое поведение вашего кода. Это не только поможет другим понять ваш код, но также поможет вам понять код, если вы вернетесь к тому же коду, например, через год.

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

  • Избегайте магических чисел и строк. Это означает, что числа или строки не следует просто записывать где угодно и везде в коде, заменяйте жестко закодированные числа и строки именованными константами или переменными, имена, присвоенные переменным, должны также быть понятным. Это улучшает читаемость кода и упрощает будущие изменения.
  • Принцип DRY (не повторяйте себя): По сути, это означает избегать дублирования кода. Как только вы увидите, что пишете несколько строк кода более одного раза для выполнения конкретной задачи, это будет индикатором того, что такая задача должна быть обернута в функцию и функцию, вызываемую всякий раз, когда вы хотите выполнить задачу, можно использовать не только функции, классы также может использоваться для переноса строк кода. Это упрощает выполнение обновлений: обновлять в одном месте намного проще, чем искать строки кода по всей базе кода.
  • Контроль версий. Используйте систему контроля версий, например Git, для отслеживания изменений и совместной работы с другими разработчиками. Вносите небольшие и логичные изменения с осмысленными сообщениями о фиксации, откатом к предыдущей версии и т. д. Существует так много преимуществ, которые можно получить от контроля версий, но моя главная из них, которая помогает с удобством сопровождения кода, заключается в том, что это помогает в качестве формы резервного копирования вашей кодовой базы на случай какой-либо аварии, которая может произойти в локальной копии, последняя версия может всегда извлекаться из удаленного репозитория.
  • Тестирование. Создавайте модульные тесты, интеграционные тесты и другие автоматические тесты, чтобы убедиться, что ваш код работает должным образом. Тесты служат подстраховкой при внесении изменений в будущем. После внесения изменений в будущем запуск теста и получение положительных результатов гарантирует, что в коде ничего не сломано.
  • Используйте шаблоны проектирования. Ознакомьтесь с распространенными шаблонами проектирования, которые решают повторяющиеся проблемы проектирования, такими как шаблон «Одиночка», шаблон «Наблюдатель», шаблон «Декоратор» и т. д. Применение этих шаблонов может привести к созданию более организованного и удобного в сопровождении кода.
  • Проверки кода. Проверяйте код вместе с коллегами. Получение отзывов от других может помочь выявить потенциальные проблемы и дать представление о том, как улучшить ремонтопригодность.
  • Сохраняйте простоту. Стремитесь к простоте своего кода. Избегайте ненужной сложности и отдавайте предпочтение читабельности, а не сообразительности.

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

Спасибо за чтение (•‿•)