Я бы сказал, что для большинства целей @author
- это нежелательный шум. Пользователь вашего API не должен - и, вероятно, не заботится или не хочет знать, кто написал какие части.
И, как вы уже сказали, SVN уже содержит эту информацию гораздо более авторитетным способом, чем код. Поэтому, если бы я был одной из команд, я всегда предпочел бы журнал SVN и проигнорировал бы @author
. Готов поспорить, что код будет несовместим с реальностью, независимо от принятой вами политики. Следуя принципу «Не повторяй себя», зачем хранить эту информацию в двух местах?
Если, однако, существует какая-то бюрократическая или политическая причина, согласно которой эта информация ДОЛЖНА быть включена в код, рассмотрели ли вы автоматическое обновление тега @author
в коде при регистрации? Вы могли бы , вероятно, достичь этого с помощью SVN-крючка. Например, вы можете перечислить всех разработчиков, которые изменили данный файл в том порядке, в котором они его изменили; или кто его больше всего изменил; или что-то еще. Или, если @author
указан в (исходном) коде, который вы выпустите во внешний мир, вы можете рассмотреть возможность добавления @author
автоматически как часть сборки релиза (я подозреваю, что вы можете получить эту информацию из SVN каким-то образом).
Что касается добавления более одного уровня @author
тега (или другого комментария), я бы сказал, что вы накапливаете много бесполезного шума. (Опять же, у вас есть SVN.)
По моему опыту гораздо полезнее идентифицировать историческое изменение (скажем, изменение строки кода или метод), а затем определить, какое изменение устанавливает это (и какой билет трека). Затем у вас есть полный контекст для изменения: у вас есть билет, набор изменений, вы можете найти другие смены изменений в одном и том же билете или примерно в то же время, вы можете найти связанные билеты, и вы можете увидеть ВСЕ изменения, которые сформировали эту единицу работы. Вы никогда не получите это от комментариев или комментариев в коде.
SVN в этом контексте означает? – inetphantom
@inetphantom SVN (Subversion) - пример системы управления версиями. См. Https://subversion.apache.org/ для получения дополнительной информации –