Чи слід змінювати ім’я автора у файлі класу, якщо я вносив більше 80% змін?


18

Я переробляю існуючий набір тестових класів java для автоматизованих тестів на інтерфейс користувача. Часом я закінчую внесення масових змін у файл класу або повністю оновлення його. Це змушує мене думати, що коли я переписую весь клас, то чи слід змінювати ім’я автора в розділі коментарів на моє?

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


17
Ви використовуєте контроль версій? Я вважаю, що журнали фіксації є більш надійним механізмом відстеження авторства (якщо коли-небудь законна потреба це буде з'ясувати ...)
rwong

5
Ім'я повинно бути там, якщо воно має якесь значення коду. Тобто контактна особа. Відповідальність тощо. І якщо такий випадок, наклейте його на кінцеву дату та нову назву.
Незалежний

15
Яка мета мати ім’я автора у файлах класу?
BЈович

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

1
що не так у тому, щоб залишити їх ім’я як автора та додати рядок нижче, в якому сказано "переписана / перероблена дата імені"
Ryathal

Відповіді:


15

Це дійсно залежить ...

Якщо ви думаєте, що є невеликий шанс, що хтось інший пізніше може зацікавитись у запитанні оригінального автора, вкажіть його ім’я в коді. Якщо ви думаєте, що комусь може бути цікаво запитати вас особисто, вкажіть своє ім’я. І якщо ви думаєте, що може бути можливим і те, і інше, дайте обидва імені (або коментар на кшталт "на основі роботи ...").

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

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


13

Я щойно наштовхнувся на інший пост, де ОП запитував, чи має ім’я автора навіть у заголовку файлу, і здається, що принаймні 2/3 людей, які відповіли, сказали, що це ім’я навіть не повинно бути перелічене та що ви повинні використовувати контроль версій, щоб просто слідкуйте за тим, хто змінив файл. Не знаю, що сталося з цією посадою, але зараз я не можу її знайти. <- (звідси анонімний "ОП")

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

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

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

Тож, зважаючи на мій погляд на заголовки файлів, я б сказав, що якщо ви змінили 80% файлу, і ви відчуваєте, що зараз ви - хлопець з будь-яких питань (і ви, мабуть, повинні відчувати це так), так, переходьте заздалегідь та оновіть заголовок файлу, щоб мати своє ім’я. Якщо ви погано відчуваєте видалення попередньої людини, ви можете залишити їх ім’я там, принаймні, поки що. Ви завжди можете запитати оригінального автора, і я впевнений, що вони не заперечуватимуть один біт про те, що ви змінили ім'я, оскільки я припускаю, що немає жодних важких відчуттів щодо зміни 80% самого файлу.

ОНОВЛЕННЯ: Знайдено цю публікацію . Поняття не маю, як мені вдалося щось тягнути назад із серпня. Щойно я закінчив читати «Прагматичного програміста», і в останньому розділі автори розповідають про підписання роботи та підзвітності (в іншому дописі це було зазначено, тому я і подивився). Книга має ідеальний сенс, і тепер, коли я думаю про це, можливо, ми повинні запровадити командну політику, щоб той, хто вказаний як автор, повинен бути включений до всіх оглядів коду відповідного файлу. Неважливо, хто останній або найбільше змінив файл у SVN, автор є власником і зберігачем.


1
Я бачу ваші моменти, але хто "ОП"?
Тарун

Тут може бути сторінка проекту або внутрішня вікі, де можна буде розмістити контактну інформацію для всіх. Складність із введенням цих даних (документації та контактних осіб) у контроль джерел виникає ... під час розгалуження та об'єднання.
rwong

@Tarun: OP = "оригінальний плакат" (тобто особа, яка задає питання). Це вираз, який використовується на форумах для обговорення в Інтернеті.
sleske

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

1
@rwong: Чому виникає проблема під час розгалуження та об'єднання? Зазвичай особа, яка об'єднує зміну, повинна її розуміти (інакше, чому вони її об'єднують?). Тож людина, що знаходиться в журналі, - це запитання.
sleske

5

Ім’я автора не вважаю надзвичайно корисним. Як показує це запитання, часто немає жодного автора, тому назвати «автора» неможливо.

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

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

Редагувати

Відповідь передбачає проект, використовуючи контроль версій. Якщо ви (послідовно) не використовуєте VC, то введення автора (списку) і, можливо, деяка історія змін у файлі може бути життєздатним вирішенням. Тим не менш, ви, ймовірно, повинні почати використовувати VC якомога швидше, і в цьому випадку див. Вище :-).


so what's the point?Проекти, які не входять в vcs, проекти, які в якийсь момент перейшли на різні vcs (на жаль, не всі схеми міграції допускають міграцію історії), і проекти, які використовують більше одного vcs одночасно - деякі проекти FLOSS приймають це підхід, щоб людям було простіше робити внесок, не обмежуючи їх одним vcs (svn люди вважають git тяжким, git люди вважають svn непридатним, а ми hg люди сміються з обох)
yannis

1
@YannisRizos: Гаразд, це правда. Я неявно припускав, що будь-який програмний проект буде використовувати контроль версій. Відредагував мою відповідь.
sleske

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

2

Якщо файл істотно модифікований, слід прийнятно додати своє ім’я у файл, як хтось, хто щось знає про нього.


1

Творець вихідного файлу повинен / повинен завжди (IMHO) згадуватись у вихідному файлі. Це, з гарним коментуванням заголовка, повинно показати, чому автор розробив джерело і яке його мислення було для написання коду. Що стосується сервера, що підтримує код, то для відстеження керування джерелом вирішальне значення має додавання імені утримувача.

Ім’я автора, IMHO знову, повинно включати вихідну версію коду, поза системою контролю версій, першу дату, коли відбулася зміна, а також номер запиту на зміну. Причина полягає в тому, що якщо рішення про зміну VCS виникає, є історія версії коду, ким був автор, а також номер запиту на зміну, на який можуть посилатися розробники (якщо їм потрібно знати, чому саме сервіс робив те, що він / вона зробила). Таким чином, в нашій організації наш формат такий:

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"якщо рішення про зміну VCS виникне, є історія версії коду" Я сподіваюся, що жодна розумна організація навіть не розглядає можливість міграції VCS без міграції історії (принаймні, недавньої історії). Це, зрештою, сенс використання VCS.
sleske

1
Повністю не згоден. Таку інформацію слід відслідковувати за допомогою контролю версій. Інакше насправді немає можливості дізнатися, хто вніс зміни в рядки (якщо припустити, що над файлом працювало більше однієї людини). Поміщення його у файл - це просто дублікат даних із низькою точністю інформації, доступних у інших місцях.
Брайан Оуклі

1
@Bryan Oakley, я зовсім не знімаю контроль версій, я заявляю, що розпізнавання коду - це спосіб дізнатися, хто працював над джерелом, не потребуючи необхідного пошуку через контроль версій. Крім того, існують деякі коди, які доступні поза системами контролю версій, чи слід виключати ім'я автора?
Buhake Sindi

1

Мені подобається бачити ім'я оригіналу автора, якщо тільки знайти когось, щоб розпочати мої пошуки відповідей про код. (У автора зазвичай немає спогаду, але це принаймні кадр!)

Я рекомендую просто додати своє ім’я нижче оригіналу автора.

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


+1 для третього абзацу, оскільки оригінальний автор може знати іншу людину, яка щось зробила в коді, але не поставила його ім'я.
Coyote21

1

Моя політика щодо коментарів @author:

  1. Якщо це абсолютно новий файл, я ставлю себе як @author.
  2. Якщо це вже наявний файл, я залишаю @author у спокої, незалежно від того, що я роблю для файлу.

Якщо у вас є питання щодо чогось, не має значення, хто такий автор @author - це важливо, хто @author, яку частину файлу ви редагуєте. Ось для чого [git/svn/whatever] blame.

IMO, @author потрібно піти.


З одного боку, ви переглядаєте себе як автора у новому файлі. З іншого боку, ви хочете, щоб автор пішов?
Ентоні Пеграм

1
Стандарти кодування компанії вимагають наявності тегу @author. Інакше я б взагалі не користувався цим (бо хочу, щоб він пройшов :)).
Майкл Муса
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.