Было несколько замечаний о пустом пространстве, уже обсуждаемых в размещении фигурных скобок.
Я сам склоняюсь разбрасывать свой код пустыми строками, пытаясь отделить вещи, которые объединяются в «логические» группы, и, надеюсь, облегчить для следующего человека чтение кода, который я только что создал.
На самом деле, я бы сказал, что я структурирую свой код так, как я пишу: я делаю абзацы не длиннее нескольких строк (определенно короче 10) и пытаюсь сделать каждый абзац автономным.
Например:
- в классе я сгруппирую методы, которые идут вместе, отделяя их пустой строкой от следующей группы.
- если мне нужно написать комментарий, я обычно ставлю пустую строку перед комментарием
- в методе я делаю один абзац за шаг процесса
В целом, у меня редко бывает более 4/5 строк, сгруппированных вместе, что означает очень разреженный код.
Я не считаю все это пустым пространством пустой тратой, потому что я на самом деле использую его для структурирования кода (так как на самом деле я использую отступы), и поэтому я чувствую, что это стоит того экрана, который он занимает.
Например:
for (int i = 0; i < 10; ++i)
{
if (i % 3 == 0) continue;
array[i] += 2;
}
Я считаю, что эти два заявления имеют четко определенные цели и поэтому заслуживают разделения, чтобы сделать это очевидным.
Итак, как вы на самом деле используете (или нет) пустые строки в коде?
источник
if (i % 3 != 0) { <newline here> array[i] += 2; <newline here> }
Но я понимаю вашу точку зрения :)for (int i = 0; i < 10; i += 3) { <newline here> array[i] += 2; <newline here> }
но я вижу вашу точку зрения :)Ответы:
Всегда
Пробелы имеют решающее значение для очистки читаемого кода. Пустая строка (или две) помогают визуально выделить логические блоки кода.
Например, из главы « Сложный код» Стива Макконнелла, второе издание, посвященной макету и стилю:
источник
Да для наглядности.
Так же, как я сделал в этом ответе.
источник
Я делаю, но я удостоверяюсь, что документирую это
(This line intentionally left blank.)
на линии
источник
Да, но я не злоупотребляю этим.
Я видел код, в котором каждая строка кода внутри метода разделена пустой строкой, а две пустые строки используются там, где происходит логическое разделение. Это просто делает его еще менее читабельным, на мой взгляд. Я также видел пробелы, используемые для создания сумасшедших выравниваний, например:
То же самое неправильное использование горизонтальных пробелов может быть применено к вертикальным пробелам. Как и любой инструмент, используйте его с умом.
источник
Меня много критикуют за то, что я так пишу свой код. Я не понимаю, почему никто не сделал бы это так.
Читаемость очень важна, когда вы возвращаетесь в проект после длительного периода времени, и я слышал поговорку: «Всегда пишите код, если следующий парень, который читает его, это психопат, который знает ваше местоположение».
источник
undo
несколько раз выполнить работу (войны форматирования не Это не приведет к повышению производительности, поэтому я бы не стал полностью удалять комментарии и пробелы, но я предпочел бы против них по большей части).Я не всегда пишу программное обеспечение, но когда я делаю, я использую пустые строки для ясности.
источник
Я все за то, чтобы сделать код как можно более понятным, и пробелы часто являются полезным инструментом в этом деле. Но давайте не будем забывать рефакторинг:
Поскольку у вас есть несколько связанных членов, они являются кандидатами в новый класс.
Всякий раз, когда код недостаточно ясен, чтобы получить комментарий, я спрашиваю, могу ли я сделать рефакторинг, чтобы сделать код достаточно ясным, чтобы комментарий не требовался.
Почему бы не сделать один метод для каждого «абзаца»?
Если у вас в классе есть куча методов, см. Мою заметку выше о извлечении нового класса.
источник
Да. Это облегчает визуальное сканирование файла. Помимо всего прочего, он проясняет, с какой строкой идет комментарий.
источник
Я использую пустые строки экономно и последовательно, и постоянно важнее, чем экономно. Тем не мение:
Большая часть этого не страшно спорным; что может последовать Я отмечаю, что обозначение K & R с открытыми скобками в конце строки удручающе часто сопровождается пустой строкой. Мне лично не нравятся фигурные скобки в конце строки, и смешивание их с пустой строкой после фигурной скобки делает бессмысленной нотацию (IMNSHO). Поставьте открытую скобку на следующей строке, и вы получите в основном пустую строку (и, IMNSHO, более читаемый код). Если вы должны использовать скобу K & R в конце строки, не тратьте вертикальное пространство, экономя на посторонних пустых строках.
источник
Напишите то, что наиболее разборчиво и наименее удивительно.
Эта функция не требует 12 строк комментариев к документу.
На самом деле, это не нуждается в комментариях.
Или пустые строки.
Они отвлекли бы от его сути.
источник
Внутри функции? Редко
Если у меня есть четкий другой блок, это рефакторинг для новой функции. Если несколько случаев не стоят этого.
Для меня пустые строки внутри функции - одна из самых неправильных «лучших практик».
источник
Часто
Используйте его для логических блоков кода, которые обрабатываются аналогично. Как только вы добавите комментарий, чтобы показать, что вы делаете другой шаг - пришло время извлечь метод.
Хорошие пробелы
Плохой пробел
против
против
источник
connection.close()
дляcloseConnection(connection)
item1
иitem2
глобальные переменные, через которые методы обмениваются данными? Ик!Я не только использую пробелы, я использую скобки для ясности.
Брекеты, которые я использую, чтобы сказать, что они могут быть функциями.
источник
Одно время я свободно разбрасывал пустые строки по всему коду. В настоящее время я склонен быть более щадящим. Я думаю , что это часть того , что Стив Yegge говорил здесь :
Я принципиально с ним согласен. Гораздо лучше сжать код, чтобы вы могли получить как можно больше его на одном экране, чем размещать его слишком много. Это не значит, что вы никогда не должны использовать пустые строки. Просто я думаю, что если группа, которую вы пытаетесь создать, не увеличивает читабельность, она приносит больше вреда, чем пользы.
источник
Заслуженный профессор дал два великих совета
источник
Мои эмпирические правила таковы:
Если у меня возникли проблемы с чтением кода, который я написал вчера, мне, вероятно, нужно извлечь метод или три.
Если мое определение класса слишком длинное, чтобы его было легко прочитать, мне, вероятно, нужно извлечь модуль / интерфейс / объект.
Определение метода: добавить строку
Определения модуля / класса: добавить две строки
источник
Мне нравится думать о пробелах так же, как параграф. Вы группируете линии, которые вносят вклад в одну идею.
Если вы начинаете новую идею или новый аспект той же идеи, вы начинаете новый абзац - вот так.
В императивном коде я группирую задачи, которые выполняют одну связную задачу; в декларативном коде я группирую код, который описывает одно связное утверждение идеи.
У вас явно нет проблем с этим на английском языке (некоторые люди ужасно разбираются с абзацами), поэтому с небольшой практикой применение того же навыка к коду не должно быть слишком сложным.
источник
Пустые строки являются обязательными, на мой взгляд. Я использую их для разделения различных логических блоков кода. Делает код читабельным. Читаемый код - это хороший код;)
Моим идеальным фрагментом кода был бы каждый логический блок, разделенный пустой строкой и комментарием сверху каждого блока, который имеет основную логику.
Конечно, если люди делают это, добавляя несколько пустых строк везде, я нахожу это очень раздражающим :(
источник
Я использую только пробелы внутри функции / метода для разделения объявлений и кода.
Если вы чувствуете необходимость иметь несколько строк для разделения подблоков кода, реализующих некоторую логику, то они должны быть только в другом методе / приватном методе. Это зависит от вашего компилятора, чтобы не делать это слишком большими накладными расходами.
как правило, в peusdo-коде:
Если я вижу бесполезные пробелы, я обычно съеживаюсь.
источник
Пустое пространство чрезвычайно ценно.
Вот в чем дело ... ботаники, которые пишут сложный код вроде E = MC 2 , отлично демонстрируют свои навыки программирования.
Теперь давайте прыгнем вперед на шесть месяцев, и сейчас 2 часа ночи, и система, на которую не смотрели шесть месяцев, сломалась на самой линии E = MC 2 . Это почти невозможно отладить ... все волнуются.
Предположим, что код был похож на это ...
Если это 2:00 утра и код не работает. Быстрый взгляд покажет, что третья строка должна была быть
Проблема решена.
Итог ... используйте пробел.
источник
Как уже говорили многие, пустые строки облегчают чтение кода. Тем не менее, есть некоторые языки, которые применяют этот стандарт. Один из тех, что я могу придумать, но не столько о пустых строках, сколько о правильном отступе) - это Python.
источник
Я согласен, я использую пробелы таким же образом. Однако, если я обнаружу, что использую пробел, чтобы разбить метод на слишком много частей, это признак того, что мне может понадобиться реорганизовать этот код в несколько методов. Слишком много логических разделов в методе может указывать на то, что метод будет сложнее тестировать.
источник
Я использую их для разделения кода на логические единицы. Я видел очень мало примеров кода, в которых не использовались пустые строки, конечно, запутывание исключено.
источник
Ответ психопата - лучший, но я бы заменил его предположением, что следующий человек - идиот, и что они будут считать, что вы, и вы захотите доказать, что они неправы.
Так же важно для удобочитаемости использование комментариев. Я открываю каждую функцию или подпрограмму с блоком комментариев, объясняя открытым текстом, что это такое, что делает, каковы аргументы и каковы ожидаемые результаты (включая список условий ошибок). Тогда не возникает вопроса о том, для чего он предназначен и / или предназначен. То, чего он добивается, может отличаться, но это еще не все.
Я думаю, что слишком много кодировщиков либо предполагают, что они сами будут «ремонтировать» код, либо просто не заботятся об этом.
источник
Пустые строки важны. Однако тратить целую пустую строку на открывающей скобке уменьшает количество кода, который вы можете увидеть на скриншоте. Должно быть:
(Не заставляй меня начинать ставить скобку '{' в той же строке, что и 'for' ... это мешугха).
источник
Да. Для удобства чтения. Иногда я даже вставляю пустые строки в код, который не написал. Мне легче понять код, когда они имеют логическую группировку через пустые строки - как вы можете «быстро читать» через него.
источник
Мы должны использовать пустые строки между кодовыми блоками, как мы делаем, когда пишем письмо.
Например, между функциями или внутри функции, когда мы заканчиваем цикл ...
Люди будут благодарить вас за чистый код, если им нужно будет поддерживать его;)
источник
Мы используем пробелы, рекомендованные Microsoft StyleCop. Помимо читабельности и согласованности, я обнаружил, что (вместе с небольшими размерами классов) правильно выстроенный код значительно облегчает управление слияниями, когда разные люди в команде работают над одними и теми же областями.
Я не уверен, что это только мое воображение, но инструменты сравнения лучше распознают, где начинается и заканчивается эквивалентный код при объединении, когда он аккуратно разложен. Хорошо выложенный код - радость слияния. Хорошо, это была ложь - но, по крайней мере, боль держится на приемлемом уровне.
источник
Никогда не пустая строка, не во всем файле. Это не значит, что в коде нет разрывов:
Пустые строки предназначены для открытия разделов кода для работы, в вашем редакторе есть пара горячих клавиш для перехода к предыдущей / следующей пустой строке.
источник