В настоящее время я работаю в месте, которое может заставить разработчиков использовать автоматизированный форматировщик кода при регистрации контроля версий. Я ищу мнения разработчиков о преимуществах и недостатках этого ... как вы думаете, это поможет или помешает разработчикам. Мой конкретный случай касается Java / JSP, но я думаю, что вопрос может относиться к любому языку.
java
formatting
coding-standards
Nerdfest
источник
источник
Ответы:
Я думаю, что это очень важно сделать. Вот почему:
Если вы сделаете это, я бы порекомендовал всем проверить весь код, затем один человек выполняет переформатирование всей базы кода, а затем проверяет все обратно, чтобы был один «гигантский» набор изменений для форматирования (который каждый может игнорировать), но после этого все различия являются реальными кодами.
Если вы сделаете это постепенно, вы будете смешивать реальные изменения кода с изменениями форматирования, и все будет беспорядочно.
источник
Я собираюсь бросить свой собственный ответ здесь, поскольку люди только, кажется, добавляют преимущества. Что я вижу в качестве недостатков:
Проще говоря, неавтоматизированный набор соглашений устанавливает минимальные требования к стилю / удобочитаемости, тогда как автоматизированные соглашения устанавливают минимум и максимум.
Я помню, как смотрел на VB (возможно, версии 5) и обнаружил, что одна из самых раздражающих вещей в нем заключалась в том, что он принудительно переформатировал мой код и удалил вещи, выходящие за рамки его базового форматирования.
источник
Я считаю, что принудительное форматирование кода отлично. Это позволяет разработчику обходить весь код, не отрывая глаз от глаз. Также наличие этого стандарта помогает начинающим разработчикам избавиться от вредных привычек.
источник
Основным недостатком является потеря пользовательского форматирования там, где это действительно важно.
Представьте себе типичную проверку работоспособности if (), которая завершится неудачей, если какое-либо из определенных условий присутствует, но не выполнено ...
Это читается благодаря разумному отступу, соответствующему логической структуре условий.
Теперь ваш автоматизированный инструмент не имеет понятия о логическом разделении различных условий на связанные строки. Он не видит причин, по которым каждое слияние 3-4 условий в одной строке делит следующее условие пополам. Или это разделит это, одно выражение сравнения на строку. Это может даже выглядеть красивее на экране, но логика будет потеряна.
источник
Я добавил ответ с недостатками и добавлю то, что считаю большим преимуществом.
Когда вы используете автоматическое переформатирование кода при фиксации, это фактически открывает возможность изменения личных предпочтений без обычного эффекта, когда ваши предпочтения навязываются другим. Вы можете иметь свой код формата IDE в соответствии с общим стандартом при фиксации, но отображать его для вас в предпочитаемом формате, не затрагивая других.
Для меня это почти Священный Грааль кодирования, основанного на соглашениях ... вы получаете преимущества общего формата кода, но все же позволяете поддерживать личные предпочтения без конфликтов.
источник
Это зависит от ваших потребностей, но некоторые ограничения весьма полезны, например, после каждого if () должны следовать фигурные скобки, так как это довольно легко получить, если вы ошибаетесь, если вы выполняете рефакторинг.
Рассмотрим этот случай:
Если вы сейчас хотите добавить запись в регистр if, вы можете написать случайно:
И вдруг ваш метод всегда возвращается
foo
.Редактировать: это не автоматическое форматирование, а проверка стиля. Извините, если этот ответ был также не по теме. :)
источник
Это очень помогает унифицировать код в компании, и благодаря этому вы обычно создаете более понятную и более легкую в обслуживании структуру для своего продукта.
источник
Ну, преимущества такие же, как у любого средства форматирования кода, такие как стандартизация кода, семантика между разработчиками и т. Д. Единственные возможные недостатки, которые я вижу, это отсутствие человеческого глаза после форматирования, чтобы добавить некоторые исключения и т. Д.
Итак, я думаю, лучше рассмотреть форматировщик IDE вместо форматера времени регистрации.
источник
По моему опыту, это хорошо. Без этого при сравнении кода часто появляется беспорядок форматирования пробелов, и он может скрывать фактические изменения кода. По моему опыту, возиться с чьим-то форматированием - это не тот грех, которым он обречен, особенно с потенциальными преимуществами согласованности в команде.
источник