Подтвердить что ты не робот

Выполнение стиля кодирования

Несколько лет назад, когда я начинал небольшой проект разработки, другие разработчики и я сели и согласились на компромиссную форму и отступы. Это был не кто-то любимый, но это было то, чего никто не ненавидел. Я написал файл конфигурации .indentrc для этого стиля и имел триггер check-in, который запускал отступ во всех файлах, когда он был проверен. Это делало так, что неважно, какой стиль вы написали в своем коде, это станет групповым стандартом, прежде чем кто-нибудь еще его увидит. Это имело преимущество согласованности. Но я никогда не видел, чтобы кто-то еще делал это до или после.

Так что скажите остальным? Отличная идея или мерзость?

4b9b3361

Ответ 1

Принятие стиля нейтрального кодирования - определенно хорошая идея. Тем не менее, только соблюдение стиля кодирования при проверке источника может быть или не может быть хорошей идеей (см. Также Bill's и Elie ' ниже).

Использование крючка регистрации:

Pro: Позволяет кодировщикам писать, однако они хотят, поэтому им не нужно думать о стандарте или изменять способ написания кода. Это минимизирует устойчивость к политике и не будет отрицательно влиять на их производительность при написании кода.

Con: У ваших кодеров может быть только знакомство с нейтральным стилем, поэтому вы не получаете полной выгоды от всех, кто использует "тот же" стиль. Если ваши программисты когда-либо должны работать вместе в настройке парного программирования, они все равно будут подвергаться другому стилю программирования на экране, который будет отличаться от их собственного стиля или нейтрального стиля.

Переход на один шаг вперед, используя нейтральный стиль во время разработки:

Pro: Поощряет беглость в нейтральном стиле, каждый всегда может читать все остальные коды до и после его проверки.

Con: Вы столкнетесь с большим сопротивлением со стороны ваших разработчиков, которые это делают. В зависимости от вашей культуры это может быть больше проблем, чем того стоит.

Ответ 2

Я бы сказал, хорошая идея. Я бы сделал еще один шаг и заставил всех использовать файл конфигурации в своей среде IDE, чтобы по умолчанию они писали по согласованному стилю. Если им придется смотреть на все остальные коды в нейтральном стиле, они могут также привыкнуть к нему. Даже их собственный код должен быть в нейтральном стиле после одного цикла регистрации, поэтому зачем разрабатывать новый код в своем личном стиле?

Ответ 3

Если вы ограничили его соблюдением стиля на фигурных скобках и отступом, то я думаю, что это хорошая идея. Однако, если вы попытаетесь обеспечить соблюдение каждого стандарта форматирования, то, вероятно, этого не произойдет. На мой взгляд, бывают времена, когда имеет смысл нарушить стандарт. Например, я предпочитаю

int x = y * z;

к

int x = y*z;

потому что его легче читать. Тем не менее, я очень предпочитаю

int a = b*c + d*e;

к

int a = b * c + d * e;

поскольку интервал представляет порядок операций.

Таким образом, ваша политика обеспечения отступов и фигурных скобок звучит очень хорошо. Но если кто-то когда-либо пытался слепо применять другие правила интервала, я не думаю, что это будет хорошо работать.

Ответ 4

Это звучит неплохо. Пока стиль, в котором вы закончите, не является чем-то совершенно странным, это хороший способ убедиться, что ваши разработчики используют этот стиль. И это имеет дополнительное преимущество, которое им не нужно кодировать таким образом - оно будет переформатировано для них, когда они проведут проверку своих изменений. Было бы неплохо иметь такой инструмент, который можно использовать, чтобы вы могли подключиться к CVS (общий термин).

Ответ 5

Мы используем TFS с политикой проверки, которая запускает набор правил Stylecop. Если ваш код не проходит, вы не можете его проверить. Отлично работает. Помимо единообразного стиля и хороших комментариев во всем, он также, по-видимому, увеличил общее качество кода - возможно, потому, что разработчик вынужден описывать, что каждый метод, событие и т.д. Они вынуждены думать о коде больше перед проверкой в.

Только решение MS, но стоит, если оно доступно вам.

Ответ 6

Самая большая проблема с использованием автоматических форматировщиков кода - это когда форматор кода не может обрабатывать каждый сценарий.

Например, если у вас много SQL в вашем коде, вы, вероятно, форматируете SQL автоматически. Но если ваш SQL длиннее одной строки (как долго это строка?), Тогда вы должны отформатировать его. До сих пор я еще не видел хорошего форматирования, чем мог бы с этим справиться.

Пример:

String sql = "SELECT * FROM USERS WHERE ID = ? AND NAME = ? AND IS_DELETED = 'N'";

против

String sql = 
  "SELECT * " +
  "FROM USERS " + 
  "WHERE ID = ? " + 
  "  AND NAME = ? " +
  "  AND IS_DELETED = 'N'";

Второй формат более читабельен, когда у вас действительно длинные запросы. Большинство форматировщиков де-форматируют это в одну длинную строку до длины строки.

Однако если все, что вы делаете, поворачивает

if(x=1) print("blah"); else print("eep!");

в

if (x = 1) {
  print("blah");
} else {
  print("eep!");
}

тогда форматировщик в порядке. Мы делаем что-то подобное на работе; он не применяется инструментом CVS, а скорее IDE. Хорошо работает.

Ответ 7

Существует проект под названием EditorConfig, который может несколько решить проблему. Однако в настоящее время он разрешает проблемы с отступом.

EditorConfig содержит плагины для многих разных редакторов и стандарт формата файла. Создав файл .editorconfig в корневом каталоге вашего проекта и установив соответствующий плагин, редактор будет форматировать ваш код при его вводе.

Это общий способ (в отличие от indentrc, не ограничиваясь C/С++), но вы все равно можете взглянуть на это решение.

Ответ 8

Я полагаю, что вы уже определили свою среду разработки. Если вы используете Eclipse, вы можете включить действие сохранения источника Format в редакторе Java, который переформатирует при каждом сохранении. Главное преимущество этого заключается в том, что вероятность источника указывается в вашем исходном репозитории в то время, когда они были сделаны, а не когда источник был переформатирован позже.

Сделайте это автоматическим шагом. Вы по достоинству оцените его позже.