Важность форматирования кода с учетом интервалов

StackOverflow https://stackoverflow.com/questions/870578

  •  22-08-2019
  •  | 
  •  

Вопрос

Насколько важно для читабельности, чтобы код был в таком виде:

public void DoStuff()
{
    var v = new Object();
    v.PropertyID = "abc";
    v.Type = "abc";
    v.Style = "abc";
    v.SetMode(Mode.Abc);
    v.Draw();
}

против.

public void DoStuff()
  {
    var v = new Object();
        v.PropertyID = "abc";
        v.Type = "abc";
      v.Style = "abc";
       v.SetMode(Mode.Abc);
   v.Draw();
    }

Мне больше всего нравится первый стиль, он облегчает чтение. Как бы вы мягко направляли людей к первому и от второго?Или нет?

Это было полезно?

Решение

Действительно ли люди пишут код, похожий на последний?Это кошмар ремонтопригодности.

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

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

Другие советы

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

Если бы это был мой код, я бы сделал это так:

public void DoStuff()
{
    var v = new Object();

    v.PropertyID = "abc";
    v.Type       = "abc";
    v.Style      = "abc";

    v.SetMode(Mode.Abc);
    v.Draw();
}

Таким образом, становится ясно, какие строки являются назначениями свойств, а какие — вызовами методов.

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

Во втором примере ваши фигурные скобки имеют разный отступ.

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

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

Если вы хотите быть добрыми, дайте им прочитать Code Complete.Если вы хотите быть злым, добавьте в их код такие тонкие ошибки, как эта:

if (x==y);
   DoSomething(); else
DoSomethingElse();
while(Whatever)
SomeFunction();

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

Я предпочитаю ваш интервал, хотя я бы сделал это немного по-другому.Я считаю, что ваш самый важный вопрос — как убедить кого-то, что ваш подход лучше всего:Форматирование кода может быть очень субъективным.Некоторые люди возражают, потому что на то, чтобы все сделать правильно, уходит слишком много времени.Другие возражают, потому что у команды нет стандартов кодирования.Некоторые возражают, потому что чувствуют, что им на шее втиснуто.

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

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

Вот некоторые из моих ответов на StackOverflow

Как уже говорили другие, первый пример является нормой;второй отличается от него.

Кроме того, убедитесь, что все, кто работает с одним и тем же набором файлов, имеют одинаковое представление о том, что такое «вкладка».Лучше всего определить это как количество пробелов и убедиться, что все текстовые редакторы и IDE согласны.

Это раздражает, когда три или четыре человека работают в одном репозитории SVN и редактируют каждый файл с разными правилами интервалов.

Второй способ не очень хорошо работает.Избегай это.

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

public void DoStuff()
  {
    var v                = new Object();
        v.PropertyID     = "abc";
        v.Type           = "abc";
        v.Style          = "abc";
        v.SetMode        (Mode.Abc);
        v.Draw           ();
  }

Это становится довольно глупо и с этим довольно сложно работать.

Если люди пишут таким образом, поставьте под сомнение их способности к рассуждению и программированию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top