Copy/paste и закомментированный код.

Две мысли в голове. Одна моя, другая позаимствованная.

С бейсбольной битой в руках разыскивается тот человек который первый в IDE добавил возможность copy/paste. Блин, жили бы, горя не знали, если бы не эта зараза.

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

13 комментариев to “Copy/paste и закомментированный код.”

  1. Это очень древняя традиция, и имеет целью не заставлять человека лазить по изменениям кода (тогда и CVS не существовало, когда это придумали).

    • Victor Ronin:

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

      • Везде надо действовать по ситуации. Если система рабочая, то чем больше в коде информации о том, почему он именно такой, тем лучше.

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

        С большими системами работать приходится? Миллион строк есть?

        • Victor Ronin:

          Сложно сказать насчет размера системы. Я работаю над несколькими продуктами, а на эту ситуацию набрел на одном ключевом модуле. Что правда приятно, что он начинался эдак с 1MB сорцов и я его без потери функциональности урезал уже до 500Kb и он стал гораздо более понятно/вменяемый.

  2. 1. Это проблема не IDE (она должна давать максимум свобод и возможностей), а конкретного программиста. Трудно посчитать, сколько раз в день я делаю copy/paste, но повторяющегося кода у меня нету.

    2. Иногда так делаю, когда фиче-реквест явно отдает глупостью. И я почти уверен, что придется восстанавливать прежнюю функциональность.

    • Victor Ronin:

      1. Согласен только на половину.

      Когда маленьких детей оставляют в комнате, даже на 3 минуты, то рекомендуют убирать все колющие, режущие, тяжелые, разбиваемые вещи.

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

      Так, что это проблема родителей (в смысле senior developer’ов), что они не могу таки выключить это меню у неопытных разработчиков.

      2. Да, я сам так бывает делаю, но именно для каких-то новых странных фич. Для багов так все таки делать не стоит.

      • 1. Но опять таки, это не проблема IDE, ни тем более ее создателей. Так же глупо обвинять авто-строителей за то, что в автомобильных авариях ежегодно гибнет больше людей, чем в авикатастрофах. Вопрос во внешних факторах. Возвращаясь к программистам 🙂 , если компания серьезно следит за качеством кода, то никакого copy-paste-а не появится

        2. Для багов (да и для разработки в целом) хорошо иметь навые раннего обнаружения «плохого запаха» в коде, и мгновенно применять рефакторинг на этот участке.

  3. Митька:

    Соглашусь с большинством ораторов по поводу первого: убивать надо не создателей IDE, а кривых безмозглых кодеров.
    А по второму я бы не был столь категоричен. Раньше тоже грешил тем, что удалял к чертям забаженный код и писал сверху свое. Но если ты 1с-ник, и твою ИС на 150 юзеров админят и дорабатывают напильниками несколько человек, то удаление даже глючного кода может иметь катастрофические последствия. Да и в простом php, сделаешь новую фичу на сайте, а она глючит и тормозит, надо вернуть как было. Хорошо если старый код закомментирован, иначе снова пол-дня убьешь. А закомментированные баги оставляю, чтобы потомкам неповадно было повторять ошибки.

    • Victor Ronin:

      И все таки, я бы все не валил на плохих кодеров. Зачастую неопытный человек пользует то, что у него под руками. Соотвественно о ни пользует copy/paste. Была бы там только функция Move code, может быть он задумался бы.

      Насчет переписывания кода. Согласен — это дело опасное. Хотя все равно, если оставляешь закомментированный старый код — это помогает не слишком. Так как, если другой человек исправляет новые внесенные ошибки, ему все равно придется первым делом найти место. А когда место найдено, всего-то нужна одна дополнительная операция (полезть в историю системы контроля версий), чтобы найти кто изменял, почему изменял и как выглядел старый код.

  4. CVS вещь — просто непомеренную кучу закоментированного кода выкосил которую раньше было жалко пофигачить

  5. Автоматизатор +1, полностью согласен