Когда мы должны вставлять пустые строки в исходный код? - PullRequest
11 голосов
/ 14 апреля 2011

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

Это только на объектной основе или на концептуальной основе? Ответы с примерами были бы наиболее полезны для меня.

Ответы [ 8 ]

5 голосов
/ 14 апреля 2011

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

  • Одна пустая строка между функциями, не являющимися членами (и, в C ++, между функциями-членами, определенными вне класса)
  • Одна пустая строка между классами.
  • Одна пустая строка до и после комментариев, которые относятся к нескольким следующим функциям / классам, т. Е. Определяют «разделы» в коде: «вспомогательные функции для обработки XML», такого рода комментарии.
  • Нет пустой строки между функциями-членами в классе
  • Обычно внутри функции нет пустых строк. Если функция проходит несколько этапов, я мог бы поставить между ними пустые строки или просто комментарий между ними, объясняющий этапы. Очень длинные функции с большей вероятностью будут разбиты пробелами, но я не считаю, что очень длинные функции особенно полезны. Если у функции-члена есть внутренние пустые строки, я бы обычно отделял ее от других функций-членов класса с помощью пустых строк.

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

Блоки комментариев для автоматического документирования (Javadoc, Doxygen, Pydoc и т. П.) Также обеспечивают визуальное разделение - больше, чем несколько строк пробела, и более продуктивно, чем любое количество пробелов.

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

3 голосов
/ 14 апреля 2011

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

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

1 голос
/ 14 апреля 2011

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

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

0 голосов
/ 17 декабря 2018

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

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

То есть рассмотрим этот упрощенный фрагмент php:

function doStuff(){
    $a = new A();
    $result = $a->foo();

    $b = new B();
    $result += $b->bar();

    return $result;
}

Было бы лучше, на мой взгляд, как:

function doStuff(){
    $result = $this->processA();
    $result += $this->processB();
    return $result;
}

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

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

0 голосов
/ 14 апреля 2011

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

Пустые строки до и после комментариев, содержащие более одной строки.

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

Функции разделены одной строкой.

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

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

0 голосов
/ 14 апреля 2011

код стандартов для меня:

  • После каждого конца оператора if / else (Последний })
  • После каждого метода
  • После каждого свойствасостоит из нескольких строк
  • После набора полей

пример:

    string a = "Note: ", b= "This", c= "A", d= "String", e= "Test";
    int f=1, h=1;

    string A { Get; Set; }
    string B { Get; Set; }
    string C { Get; Set; }

    string D 
    { 
        Get 
        {
            Return this.d; 
        }
        Set 
        { 
            if (value == "Foo")
            {
               // DoSomething
            } 

            this.d=value; 
        }
    }
    //empty line
0 голосов
/ 14 апреля 2011

Это, вероятно, вопрос предпочтения или стиля дома.

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

0 голосов
/ 14 апреля 2011

Проверьте StyleCop для макета исходного кода: http://stylecop.codeplex.com/.
Я бы также рекомендовал FxCop или ReSharper.
Кроме того, Control K the D размещает документ, но не сортирует пустые строки?

...