Як визначити, чи є корисний видалений код у контролі джерела?


9

Тому я читав це запитання, чи слід видалити невпорядкований код?

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

Як ви впорядковуєте цей видалений код, щоб пізніше його (чи якийсь інший програміст) пізніше його змогли знайти? Ви робите окрему гілку чи якось позначаєте її в контролі джерела?

Я ніколи не відроджував видалений код з-під контролю джерела, я здебільшого просто використовував його для відстеження змін у коді, який досі живе. Я раніше посилався на гілки, коли вони містили чужу експериментальну роботу, тож, можливо, це хороший спосіб позначити цікаві розділи коду, які видаляються в магістралі?


які ви запитуєте avout? звучить як svn
gnat

svn - це те, що я маю на увазі, але я можу застосувати до будь-якого джерела управління, я думаю?
Пітер Сміт

Ви говорите: "Що я більше маю на увазі, це скасовуються або відкладаються проекти" у відповідь на відповідь. Я думаю, ви повинні відредагувати своє запитання, оскільки це сильно відрізняється від "нереференційного коду".
Пітер Б

Відповіді:


6

Якщо ви не експериментуєте у гілці та ще не впевнені, яке рішення в кінцевому підсумку буде реінтегровано, зазвичай ви не посилаєтесь на видалений код.

Ви можете, в дуже рідкісних випадках, явно викопати видалений код, який ви смутно нагадуєте, щоб вирішити проблему, яку ви зараз маєте . Але більш типова причина, коли ви побачите видалений код, - це коли ви переглядаєте відставання, щоб зрозуміти щось про поточний код програми чи поведінку щодо його історичного коду чи поведінки.

Зокрема, ви можете бути ...

  • робити загальний огляд коду / розуміння рефактора
  • шукаючи комітку, яка ввела помилку X
  • задовольняючи вашу цікавість / шукаючи прихильність, яка вирішила помилку
  • повторна реалізація функції або подібної функції
  • розуміння коду або даних, схоже, що це працює в поєднанні з кодом, який не існує

... і т.д.

І в цих випадках ти, як правило, не відроджує старий код. Ви просто розумієте те, що зараз бачите, використовуючи видалений код для контексту чи настанови.


4

Я думаю, відповідь така: переважна більшість програмістів не переймається посиланням на видалений код. З кількох причин. Деякі причини, які мені спадають на думку:

  • Напевно, найголовніше, чистий лінь ...

  • Більшість ніколи не відчували необхідності воскрешати якийсь код, тому у них немає досвіду, який мотивує їх полегшити коди для відродження.

  • Більшість видалених кодів видаляється з причини. Зазвичай його замінюють на якийсь інший, кращий, функціонально еквівалентний або більш потужний код. Чому хтось хоче воскресити нижчий код?

    Зауважте, що це ще раз психологічне питання: Більшість програмістів досить пишаються результатами своєї роботи. Як міг коли-небудь прийти до тями, що все-таки є якась цінність у тому, що вони замінили?

  • Оскільки більшість кодів не є виключно видаленими, а заміненими, інтерфейси, які були змінені під час переходу, надають достатньо інформації, якщо вам дійсно потрібно відстежувати видалений код через деякі регресії, введені новим кодом.

Але, незалежно від того, наскільки більш-менш поважні причини ви можете поставити за цим зневагою до мертвого коду, я думаю, що це дійсно просто "байдуже" з боку програмістів. І навіть якщо ви намагаєтесь відзначити видалені речі тим чи іншим способом, будьте готові до того, щоб ретельно проігнорувати ці зусилля ...


Я думаю, я спробую відповісти, чому. Якщо його замінено кодом, це має сенс через короткий проміжок часу, видалений код більше не потрібен. Що я більше маю на увазі, це скасовані або відкладені проекти. Особливо ті, де була розроблена або змінена деяка велика кількість функціональних можливостей, але в кінцевому рахунку не повністю завершена і не використовується в поточному виробництві.
Пітер Сміт

1
@PeterSmith: Ви повинні створити окремі гілки для такого коду. Тоді не потрібно видаляти код, оскільки він все одно не існує в робочій гілці.
ЖакБ

Додавши до сказаного @JacquesB, якщо у вас є код, який взагалі не використовується, він, як правило, застаріває досить швидко. Ви зможете відродити мертву гілку через рік, через п’ять років вам доведеться перезапустити з нуля. Мертва гілка все ще може бути корисною як джерело ідей, але сам код, швидше за все, не буде корисним.
cmaster - відновити моніку

1

Це питання, ймовірно, відпадає від "Як зберегти простежуваність ваших чеків VCS щодо бази даних про помилки та ваших системних вимог?"

Часи, коли люди йдуть на воскресіння коду з Контролю над джерелами, як правило, - це ті часи, коли ви дізнаєтесь, що щось ненавмисно зламається і його потрібно повернути назад.

Найважливішим у цьому сценарії для того, хто шукає певний біт видаленого коду, є те, що вони можуть легко простежити його, переглянувши базу даних вимог та інструмент відстеження помилок; оскільки вони, ймовірно, шукають конкретну вимогу або слова, що описують функціональність. Вони навряд чи знають ім'я вихідного файлу або клас / функцію, яку було видалено.

Якщо ви хочете відслідковувати цікавий / експериментальний код, який потрібно вийняти перед випуском, ви можете просто простежити його за допомогою декількох квитків "помилки" в рядках "Видалити невикористаний код для ..." . Або, можливо, ввести новий тип квитка в систему для функції прототипу .

Тож, щоб відповісти на питання безпосередньо - не використовуйте гілки / теги у системі VCS для відстеження видаленого коду - використовуйте інструмент відстеження змін.


0

Порада призначена для людей, які зберігають застарілий код у кодовій базі «про всяк випадок». Оскільки код все ще буде існувати в контролі джерела, не слід побоюватися його видалення. Ви дійсно не організовуєте видалений код як такий, оскільки вся справа в тому, що він більше не потрібен. Ви просто додаєте повідомлення про фіксацію, яке вказує, що було змінено та видалено в комітеті. Найбільш релевантним повідомленням фіксації для видаленого коду є повідомлення під час первинного додавання коду, а не повідомлення, коли воно було видалено знову.

"Експериментальна робота" - це справді інше питання. У вас повинна бути окрема гілка для цього.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.