

ехать по этой дороге. Иногда следующим несчастным водителем будет ты через несколько лет!
Комментарии не обязательно увеличивают скорость разработки
В 1985 году я учился в университете (да, я старый парень), и один из моих профессоров представил документ (который я не смог найти) исследования, проведенного в 1970-х годах. В ходе исследования была взята программа, введены дефекты, а затем несколько команд попросили найти как можно больше дефектов. Интересной частью исследования было то, что 50% команд полностью удалили комментарии из исходного кода. В результате команды без комментариев не только обнаружили больше дефектов, но и нашли их за меньшее время .

Плохие комментарии
Плохой комментарий — это тот, который тратит впустую ваше время и не помогает вам ускорить разработку. Давайте рассмотрим категории действительно плохих комментариев:
- Слишком много комментариев
- Чрезмерные исторические комментарии
- Эмоциональные и юмористические комментарии
Слишком много комментариев — явный случай, когда меньше — больше. Есть программы с таким количеством комментариев, что это затеняет код. Некоторые из нас работали над программами, в которых было так много комментариев, что вы едва могли найти код!
Комментарии к истории могут иметь некоторый смысл, но опять же, разве не для этого нужен комментарий управления версиями? Комментарии к истории сомнительны, когда вам приходится несколько раз пролистывать страницу, чтобы перейти к началу исходного кода. Во всяком случае, комментарии к истории должны быть перемещены в конец файла, чтобы Ctrl-End фактически переместил вас в конец истории изменений.
Мы все сталкиваемся с комментариями, которые не имеют отношения. Некоторые комментарии касаются исключительно эмоционального и интеллектуального состояния разработчика, некоторые о том, насколько они умны, а некоторые — просто попытки юмора (не бросайте свою повседневную работу!). Проверьте некоторые из этих драгоценных камней (больше может быть найдено здесь ):
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// I am not sure if we need this, but too scared to delete.//When I wrote this, only God and I understood what I was doing//Now, God only knows// I am not responsible of this code.// They made me write it, against my will.// I have to find a better jobtry {... } catch (SQLException ex) { // Basically, without saying too much, you're screwed. Royally and totally. } catch(Exception ex) { //If you thought you were screwed before, boy have I news for you!!! }// Catching exceptions is for communists// If you're reading this, that means you have been put in charge of my previous project.// I am so, so sorry for you. God speed.// if i ever see this again i'm going to start bringing guns to work//You are not expected to understand this |
Самодокументированный код вместо комментариев
Мы практики компьютерной науки, а не компьютерного искусства . Мы применяем науку к программному обеспечению, сверяя желаемую функциональность (модель требований) с поведением программы (модель машинного кода). Когда наблюдения окончательной программы не согласуются с моделью требований, у нас возникает дефект, который приводит к изменению модели машинного кода. Конечно, мы не изменяем модель машинного кода напрямую (по крайней мере, большинство из нас); мы обновляем исходный код, который является последней легко модифицируемой моделью. Поскольку комментарии не скомпилированы в машинный код, есть некоторая логика, чтобы убедиться, что модель исходного кода является самодокументируемой. Это единственная модель, которая действительно имеет значение!

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

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

Реальность такова, что прокомментированный код может сильно отвлекать. Когда вы оставляете закомментированный код в своем исходном коде, вы оставляете наземную шахту для следующего разработчика, который проходит через нее. Когда давление устраняется, разработчики будут раскомментировать ранее прокомментированный код, чтобы увидеть, решит ли он проблему. Ничто не заменит понимание кода, над которым вы работаете, — вам может повезти, если вы восстановите закомментированный код; по всей вероятности, он взорвется вам в лицо.
Решения
Если ваши разработчики не уделяют (или не дают) достаточно времени, чтобы добавить хорошие комментарии, им не следует писать НИКАКИЕ комментарии. Вы получите больше производительности, потому что они не будут тратить время на плохие комментарии, которые замедляют всех остальных. Время, потраченное на написание самодокументируемого кода, поможет вам и вашим преемникам сократить жизненные циклы разработки. Абсолютно неверно полагать, что у вас нет времени на написание самодокументируемого кода. Если вы собираетесь взять на себя риски написания комментариев, то они должны быть рецензированы, чтобы убедиться, что другие разработчики понимают код. Если рецензент (ы) кода не понимает все комментарии, код не должен проходить проверку.

Не заблуждайтесь, я самый большой «неудачник» из всех. Я считаю, что я сделал каждую ошибку в книге хотя бы один раз 🙂





