5 полезных и 5 вредных советов для поддерживаемого кода

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


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

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

5 полезных советов для написания поддерживаемого кода

Рассмотрим несколько советов, с которыми будет проще овладеть искусством "чистого кода".

Что скрывает в себе имя

Хорошее имя несет смысл – не жалейте сил на подбор и переименуйте существующие объекты. Все, кто будет читать ваш код, оценят это.

Чтобы облегчить процесс "придумывания" имени для переменной, функции или класса, запомните, что оно должно отвечать на три вопроса:

  1. Для чего существует переменная?
  2. Что она делает?
  3. Что использует?

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

Функции должны выполнять только одно действие

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

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

Допускать перемешивание этих уровней нежелательно (даже критично), т. к.:

  • это запутывает;
  • вы можете забыть, что происходит в коде;
  • со временем приводит к неуправляемому коду.

Аккуратнее с комментариями

Умеренное количество комментариев – идеальный вариант. Существует очень много примеров кода, где уровень полезности комментирования равен нулю. Не следует объяснять каждую строку кода (особенно с очевидным смыслом), не загромождайте код программы бесполезным текстом. Если оставляете документацию, то потрудитесь создать четкое, внятное, лаконичное и правдивое описание.

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

Помните, что лучше написать несколько комментариев, чем хранить между строками "роман Толстого" – не создавайте беспорядок, а посвятите время уборке.

Сначала был "try-catch"

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

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

Помните, что каждое созданное вами исключение должно работать только в том направлении, для которого оно создавалось, а также выполнять поставленную задачу. Устраняйте неиспользуемые блоки try-catch.

Форматирование в приоритете

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

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

5 вредных советов для написания поддерживаемого кода

Теперь перейдем к антисоветам.

Меньше – лучше

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

// код из jQuery
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;

Стандарты для слабаков

В привычных местах, где используются и j, применяйте другие буквы – так вы бросите вызов мейнстриму.

Называйте переменные (и не только) русскими словами в английской раскладке: var peremennaya – то, что требуется.

Чтобы совсем уничтожить читающего, нужно в коде как можно чаще вставлять похожие переменные: data и date. Если "новенький" хочет занять ваше место, пусть тренирует внимательность.

Сокрытие информации

Чтобы веселиться по полной, используйте разные переменные для одного и того же: customers, clients, people – с виду разные переменные, но весь сок в том, что через некоторое время вы сами забудете, что тут к чему, и будете сильно удивлены.

Еще более удачный вариант внесения "ясности" – применение символов "_" и "__" везде, где душе угодно. Желательно вставлять эти знаки в произвольном порядке и без особого смысла.

Внутри и снаружи

Не забывайте чаще применять одинаковые переменные:

function ninjaFunction(elem) {
  // 20 строк кода, работающего с elem

  elem = elem.cloneNode(true);

  // еще 20 строк кода, работающего с elem
}

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

Работа с функциями

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

Включайте правило "Даешь странное имя!", когда придумываете название функции: это обязательно собьет с толку потенциального конкурента.

Другие материалы по теме:

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
30 июня 2018

Шаблоны проектирования в Python: для стильного кода

Многие шаблоны проектирования встроены в Python из коробки, а другие очень ...