#language-agnostic #coding-style
#не зависит от языка #стиль кодирования
Вопрос:
Я не уверен, куда мне следует добавить новые пустые строки в моем исходном коде. Я хотел бы написать красивый код, который легко читать и понимать.
Это основано только на объекте или на концепции? Ответы с примерами были бы для меня наиболее полезными.
Комментарии:
1. Я предпочитаю / практикую всякий раз, когда что-то логически завершается или начинается отдельно с пустой строки. Я никогда не отделяю
if
отelse
.2. В конечном счете, это решение суда, но помните, что слишком много пробелов никому не повредит. Не так с too little.
3. @CodyGray На самом деле, Code Complete 2 цитирует исследование, в котором говорится, что более 16% пустых строк значительно увеличивают время отладки.
4. Количество ответов без примеров кода чертовски велико!
Ответ №1:
Лично я не использую много вертикальных пробелов — другие люди порекомендуют больше, чем я описываю ниже. Пока существует какое-то визуальное разделение между отдельными элементами, я хочу смотреть на код, а не на пустые строки. Я склонен помещать:
- Единственная пустая строка между функциями, не являющимися членами (и, в C , между функциями-членами, определенными вне класса)
- Одна пустая строка между классами.
- Одна пустая строка до и после комментариев, которые относятся к нескольким последующим функциям / классам, т. Е. которые определяют «разделы» в коде: «вспомогательные функции для обработки XML», такого рода комментарии.
- Нет пустой строки между функциями-членами в классе
- Обычно внутри функции нет пустых строк. Если функция выполняется в несколько этапов, я мог бы поместить пустые строки между ними или просто комментарий между ними, объясняющий этапы. Таким образом, очень длинные функции с большей вероятностью будут разделены пробелами, не то чтобы я считал очень длинные функции особенно хорошей вещью. Если функция-член имеет внутренние пустые строки, я обычно отделяю ее от других функций-членов в классе, которые также содержат пустые строки.
Две последовательные пустые строки кажутся мне немного подозрительными, и я редко когда делаю это сам. Three просто тратит впустую отличное место на моем мониторе — любой, кто хочет, чтобы отдельные вещи, должен IMO поместить их в разные файлы.
Блоки комментариев для автоматической документации (Javadoc, Doxygen, Pydoc и т.п.) Также обеспечивают визуальное разделение — в большей степени, чем несколько строк пробелов, и более продуктивно, чем любое количество пробелов.
Когда вы работаете в команде, скопируйте стиль любого файла, который вы изменяете. Не переформатируйте его в соответствии с вашими собственными предпочтениями, не добавляйте новый код с вашим предпочтительным форматированием. Либо соглашайтесь со стилем house, либо просто живите с ним.
Комментарии:
1. Должен ли я угадать, какой стиль оформления вы предпочитаете? K amp; R
Ответ №2:
Я думаю, что это вопрос личных предпочтений или, возможно, стандарта компании, но здесь, в офисе, даже если у нас есть некоторые рекомендации, у каждого свой способ написания кода, и пробелы — одно из различий.
Я предпочитаю использовать много пустых строк. Каждый раз, когда контекст моего кода меняется, я отделяю эту часть от предыдущей и следующей и комментирую весь предыдущий блок.
Ответ №3:
Это зависит от ваших собственных предпочтений или рекомендаций вашей компании, где вы должны создавать возвраты каретки. Фактически, такая направляющая линия также будет определять, где вы размещаете пробелы, табуляции и как вы дышите. Ну, может быть, не последнее.
Если вы предоставлены сами себе и хотите быть краткими в своей манере кодирования, вы всегда можете рассмотреть возможность внедрения Microsoft StyleCop. Это позволяет контролировать ваши привычки к кодированию, и вы можете настроить его таким образом, чтобы он был настолько строгим, насколько вам нравится.
Ответ №4:
Как и все указывали, у каждого человека свой подход. В моем случае есть несколько вещей, которые я хотел бы делать последовательно.
Пустые строки до и после комментариев, которые состоят более чем из одной строки.
Каждый класс получает по крайней мере две пустые строки до и после.
Функции разделяются одной строкой.
Другие пустые строки необязательны. Дело в том, что мне нравится, когда комментарии и классы выделяются. Обычно правильное отступление позаботится о большинстве других потребностей. Хитрость здесь в том, чтобы никогда не тратить пространство по вертикали без необходимости.
Если вам приходится работать с кодом других пользователей, я думаю, вы были бы рады, если бы они следовали тому же графику заполнения пробелов. Заблудиться в определениях функций или классов может быть большой проблемой.
Ответ №5:
Вероятно, это вопрос предпочтений или стиля работы.
Я включаю пустые строки между функциями и между логическими блоками при вызовах больших функций.
Ответ №6:
стандарты кода для меня — это:
- После окончания каждого оператора 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
Ответ №7:
Ознакомьтесь с макетом исходного кода в StyleCop:http://stylecop.codeplex.com /.
Я бы также рекомендовал FxCop или ReSharper.
Кроме того, Control K the D макетирует документ, но не сортирует пустые строки?
Ответ №8:
Если функция настолько сложна, что мы думаем добавить пустые строки, чтобы сделать ее более понятной, вероятно, требуется некоторый рефакторинг, больше, чем пустые строки.
то есть рассмотрим этот упрощенный фрагмент php:
function doStuff(){
$a = new A();
$result = $a->foo();
$b = new B();
$result = $b->bar();
return $resu<
}
Было бы лучше, на мой взгляд, поскольку:
function doStuff(){
$result = $this->processA();
$result = $this->processB();
return $resu<
}
Таким образом, вы по-прежнему улучшаете читаемость, не тратя место в своих файлах.
Я часто работаю со своим ноутбуком, и необходимость много прокручивать файлы внутри довольно раздражает. Если код может быть чистым и избегать ненужных пустых строк, его быстрее разрабатывать и понимать.