Всякий раз, когда я узнаю, что большую часть моего кода необходимо изменить, либо потому, что он некорректен, либо потому, что его нужно адаптировать к серьезным архитектурным изменениям, вызванным другими причинами, я обычно делаю это:
- Я закомментирую весь код, который, я подозреваю, мне придется изменить. Я рассматриваю закомментированный код как своего рода TODO-список.
- Я постепенно просматриваю закомментированный код и раскомментированные части этого кода или копирую и вставляю их в другое место, а затем редактирую их по мере необходимости или переписываю части этого кода с нуля, просматривая закомментированный код для справки. Всякий раз, когда я думаю, что я закончил с частью закомментированного кода, я удаляю его.
- Я продолжаю это, пока не вижу больше закомментированного кода.
Я должен отметить, что я в основном делаю это на личном проекте, который я разрабатываю один.
Однако мне сказали, что я должен прекратить это делать. Мне сказали, что вместо этого я должен начать использовать git, обращаясь к старым коммитам, чтобы увидеть старый код, вместо того, чтобы оставлять закомментированный код. Мне сказали:
Комментирование кода - плохая привычка, которую следует уничтожить. Вам не хватает опыта, поэтому вы не понимаете этого. Если через несколько лет вы увидите код другого человека, которому нравится комментировать код, вы сами начнете ругаться с этим человеком. Всякий раз, когда я вижу закомментированный код, я удаляю его полностью, даже не глядя на него, потому что обычно такой код совершенно бесполезен. Вы, конечно, не увидите недостатков в комментировании кода в небольших проектах с одним человеком; но если вы найдете работу и сохраните эту привычку, это будет позором.
Могу ли я спросить, каковы эти недостатки того, что я делаю, что я не вижу сейчас?
Я должен сказать, что на самом деле я не заинтересован в использовании только git для просмотра прошлого кода. Как я уже сказал, я рассматриваю комментирование кода как своего рода список задач; в то время как git покажет мне, как код выглядел раньше, он не сможет четко показать, какие части кода все еще необходимо просмотреть, а какие уже сделаны. Боюсь, я могу пропустить часть кода и внести ошибки.
Для полноты, я чувствую, что должен добавить, что человек, которого я цитирую, является опытным разработчиком и фанатом «Чистого кода» дяди Боба - и дядя Боб действительно критиковал комментирование кода в его книге.