Это будет плохая идея, чтобы периодически запускать форматеры кода в репозитории?

Я'м мышления создать задание cron, который проверяет код, выполняется форматеры кода на нем, и если что-то изменилось, фиксирует изменения и выталкивает их обратно.

Большинство проектов, использующих autoformatters положить их в крюк мерзавца, но делать это автоматически каждые несколько часов бы снять нагрузку для каждого разработчика, чтобы установить крюк мерзавца.

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

Комментарии к вопросу (19)
Решение

Звучит красиво, но я предпочел бы, чтобы люди, ответственные за совершение изменения кода, а не боты.

Кроме того, вы хотите быть абсолютно уверены, что эти изменения ничего не сломать. Например, у нас есть правило, что свойства ордена и методов по алфавиту. Это может повлиять на функциональные возможности, например с заказом данных и методов в WSDL-файлы из контрактов WCF.

Комментарии (10)

Я бы вместо того, чтобы попробовать, чтобы сделать его действительно легко для всех в команде, чтобы применять автоматическое форматирование кода в соответствии с вашим коллективом's стандарт непосредственно внутри редактора или IDE, в текущий исходный код файла (или выбранной его части). Это дает членам вашей команды больше контроля о том, как и когда форматирование происходит, давайте их проверить код, прежде чем оно было совершено в окончательной форме, а также проверить его после форматирования прошло, не раньше.

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

Комментарии (5)

Это'ы плохая идея, не только потому, что она отбивает у людей желание писать приличный код, но и потому, что переформатирование будет отображаться как код изменяется в СКВ (вы используете один, надеюсь), маскировка исторического потока кода's разработка. Еще хуже, каждый код операции форматирования (на самом деле любое изменение кода) имеет возможность привести к ошибкам, будь то'ы вручную или автоматически. Так что ваш форматирования теперь можно ввести ошибки в коде, которые арен'т придется пройти через проверки кода, модульное тестирование, интеграционное тестирование и т. д. пока, возможно, месяцев.

Комментарии (4)

Я склонен верить, что это хорошая идея (для автоматического запуска форматирования кода), но это только мое мнение.

Я выиграл'т запустить их периодически, но, если возможно, до контроля версий совершает.

С ГИТ, а пре-коммит Хук делаешь, что бы быть полезным. Во многих языках C и C++ проекты, построенные с некоторым файл Makefile, я добавляю некоторые абзац цели (которые выполняются соответственно код форматирования как отступ или astyle) и ждем участников для запуска сделать отступ регулярно. Кстати, вы даже можете добавить некоторые сделать правил, чтобы убедиться, что крючки ЖКТ были установлены (или их установить).

Но на самом деле, это скорее социальный вопрос чем технические одна. Вы хотите, чтобы ваша команда, чтобы совершить чистый и красиво отформатированный код, и это социальная норма вашего проекта. (Не всегда есть техническое решение всех социальных проблем).

Система контроля версий-это в основном какой-то инструмент, чтобы помочь коммуникации между разработчиками человека (в том числе ваших собственных нескольких месяцев). Ваше программное обеспечение не't нуждаются в ВК или форматирования, но ваша команда делает.

Кстати, различных общин и различных языков программирования имеют разные взгляды на форматирование кода. Например, перейти имеет только один стиль форматирования кода, но c или c++ их много.

Комментарии (4)

Я думаю, это'ы плохая идея. Многие ответы уже рассмотрели, что он пачкает истории, что делает его трудно придавить, кто реально добавлена строка и что она стимулирует людей просто зафиксировать, что и формат-бот справится.

Лучшим подходом могло бы стать включение шашку формате на ваш инструмент. (В Java есть Checkstyle) тогда, только люди, чтобы объединить свои ветви на ветвь, если сборка проходит (включая форматирование).

Если вам позволяют людям совершать прямо в основную ветку (как в Subversion, например), то вы все равно должны убедиться, что каждый человек имеет дисциплину, чтобы совершить только отформатированный код (или сервер только принимает коммиты после некоторых проверок было запущено).

Комментарии (3)

В общем, я думаю, что это плохая идея. В принципе это'ы здравая идея, но это может быть проблематично в реальности. Имея код форматирования кода-это реальная возможность, и это займет всего один форматирование запустить чтобы ваши разработчики отвечают (видимо обосновано) враждебность (например, то"свой паршивый код форматирования нарушил строить, выключи это сейчас!&я;).

В том же ключе, как @BasileStarynkevitch's рекомендации, мы используем серверные ЖКТ после приема крючки для отправки на "консультативные письма" и о стиле Кода.

Если я нажимаю коммит, который содержит нарушений стиль, git-сервер будет отправлять мне по электронной почте, которая сообщает мне, что я нарушил правила стиля и рекомендует что я могу исправить мой код. Это не, однако, осуществить это, потому что могут быть уважительные причины для нарушения стиля (длинные строки, превышающие предел длины линии, например).

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

Чтобы добавить в "проблема социального и" аспект вещей, это может быть, стоит поощрять людей, чтобы исправить косметические и стилистические дефекты, как они находят их. У нас есть стандартное сообщение "и косметической." и для стиля кода исправления, что и другие разработчики знают, не содержат критические изменения.

Как @DocBrown говорит, другой вариант-применить стиль кода внутри вашей IDE. Мы используем CodeMaid с помощью Visual Studio, чтобы исправить типичные ошибки в стиле. Он будет работать после сохранения файлов с кодом, это означает, что плохой стиль кода никогда не должны даже сделать ее в РЕПО... в теории :-).

Комментарии (1)

Да, я думаю, что это'ы плохая идея. Дон'т поймите меня неправильно, причина, чтобы сделать это звучит здорово, но результат может быть ужасным.

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

Я не'т хотите, чтобы проверить его прямо сейчас на работе, но вы должны попробовать это сами.

На самом деле вы можете просто проверить последние фиксации. Сделать новую ветку, совершить что-то мелкое, сливки или слияния с автофиксации.

Затем запустите ваш скрипт, тянуть и если ваш результат-это ужасное слияние бардак, то вы должны определенно не делать этого, на рассвете.

Вместо этого вы могли бы потенциально положить его в ночные сборки или еженедельной сборки.

Но даже ночью может быть плохой идеей.

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

В противном случае запустить его 1-2 раза в год на сезон отпусков, когда конфликты слияния не произойдет.

Но решение может зависеть от ваших приоритетов стиль кода.

Я думаю, что делает установочный скрипт, который автоматически создает Git репозиторий и наборы крючков для проекта будет лучше.

Или вы могли бы включать крюк скрипт установки в папке для разработчиков в рамках проекта и просто проверить его в самого git.

Комментарии (0)

Это ужасная идея.

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

Если вы хотите делать это на регулярной основе, это просто ужасно.

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

И тогда возникает социальная проблема. Есть люди, которые хотят заставить всех использовать свой стиль кода, и есть более гибкие люди. Что-то вроде этого, вероятно, будет предложил на "Граммер-наци-то" (орфография намеренная) тип разработчиков, которые хотят заставить их стиль на все остальные. Ожидать обратную реакцию, и ожидать, что гибкие, как правило, легко собирается разработчиков, чтобы положить их ноги вниз.

Комментарии (0)

Что-то я не'т видели упомянул тот факт, что иногда бывают уважительные причины, чтобы не отформатировать что-нибудь в соответствии с набором правил. Иногда ясность кода улучшен с учетом основного положения, что в 99% случаев не имеет смысла. Люди должны принять этот вызов. В тех случаях, автоматическое форматирование кода будет ветер делает вещи менее читабельным.

Комментарии (1)

Вы Don'т говоря уже о виртуальных каналов вы используете, но в зависимости от того, что другим вариантом является, чтобы иметь серверных крючок. В VCS типа git поддерживает. Вы можете установить на серверной стороне крюка, на котором работает форматер на версию толкают, и затем сравнивает файл с версией, что толкают. Если они отличаются застройщик не использовать правильное форматирование и сервер может отклонить толчок. Это заставит ваш плохой только нажать кода с нужным форматированием, таким образом, побуждая их писать чистый код с самого начала, это сделало бы разработчики ответственны за то, что проверили правильно отформатированный код и освободить разработчиков от необходимости вручную устанавливать клиент на стороне крюка.

Комментарии (1)

Это'ы компромисс между уборщицей формат кода, а точнее и проще понять историю в Git. Зависит от характера вашего проекта, и как часто вы погружаетесь в историю в Git или виноват, чтобы понять, что's идя дальше. Если вы'вновь что-то новое и Дон'т иметь, чтобы сохранить обратную совместимость, история, как правило, не'т играть важную роль.

Комментарии (0)

Эта идея похожа на некоторые другие ответы, но я не могу прокомментировать мои предложения.

Один из вариантов-установить псевдоним (или крюк, или как там) с функцией фиксации, что выполняет код форматирования На будет совершено кода до его совершения.

Он может иметь 2 (или более) результаты:

  1. показать пользователю предложенные изменения и попросить их одобрения, чтобы применить и сохранить изменения.

  2. игнорировать предложенные изменения и фиксации исходного кода.

Вы также можете добавить более гибко эти параметры, как возможность редактирования изменения, предложенные в варианте 1. Еще одна идея (в зависимости от того, как трудно вы хотите, чтобы подтолкнуть эти стандарты кодирования) - это система посылает вам отчет какой-то, когда выбран вариант 2.

Это может быть хороший баланс автоматически проверять весь код, как вы хотите, в то же время обеспечивает гибкость для разработчиков, чтобы удовлетворить их потребности. Он также дает возможность не 'авто отклонить' код с форматированием различия, как уже упоминалось в других ответов. С 'я проверил и одобряю автоматического исправления форматирования; фиксации' опцион, он до сих пор хранит личной ответственности для каждого разработчики работают и не'т возиться с VCS.

Комментарии (0)

Я выиграл'т сделать это в репозитории, но я сделаю это во время сохранения, если инструмент поддерживает его. Eclipse-это одна и кроме того, я хотел сделать код очистки, включая сортировку.

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

В качестве дополнительного бонуса сливает значительно бы упростилась, поскольку вещи не будут скакать вокруг.

Отзывы о кодекс предотвратить любой странствующий из них.

В другом месте я хотел бы сделать, это иметь его построения. В моем случае он у меня такой, что Maven сборки будут переформатировать XML и убирать пом файлы и переформатировать код.

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

Комментарии (0)