Как правильно форматировать код? - PullRequest
19 голосов
/ 12 марта 2009

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

Я считаю, что это способствует аккуратности и читабельности кода.

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

Один из моих учителей понижал одно из моих назначений, потому что я логически расставил свой код. Он сказал: «Когда вам придется читать код весь день в реальном мире, вы не будете вставлять этот межстрочный интервал и будете благодарить меня». Конечно, я никогда не читал и не буду его благодарить.

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

Это, вероятно, более распространено в языках типов VB, чем в языках типов C, но применяется та же концепция.

На ум приходят два вопроса:

  • Где вы оставите пустую строку в вашем коде?
  • Сколько межстрочного интервала слишком много?

Ответы [ 22 ]

19 голосов
/ 12 марта 2009

Я следую Руководству Microsoft по C # .

Редактировать : стандарт для C # равен Не боритесь с IDE . Если вы нажмете CTRL K+D, среда IDE автоматически вставит пустые строки между разделами кода.

Чтобы продолжить, если вы посмотрите на пример кода C # на MSDN или где-либо еще , обычно между каждой логически размещенной группой есть пустая строка. Поэтому после всех ваших переменных-членов будет пустая строка, после каждого метода - пустая строка и т. Д.

В ответ на комментарии, выражающие шок и ужас, я использую IDE для программирования на C #:


РЕАЛЬНЫЕ ПРОГРАММИСТЫ

image

11 голосов
/ 12 марта 2009

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

Код без лишних пробелов читать ужасно.

10 голосов
/ 12 марта 2009

Звучит так, будто я пробел строки кода, похожего на вас.

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

Кроме того, вы найдете такой код в «реальном мире» ... но, похоже, у вас более высокие стремления. ;-)

РЕДАКТИРОВАТЬ: ... не более высокие устремления, чем "реальный мир", но выше, чем посредственная чушь, обычная в "реальном мире". ... если у вас действительно есть более высокие стремления, чем в «реальном мире», вы, возможно, захотите увидеть профессионала. ; -)

8 голосов
/ 12 марта 2009

Мое эмпирическое правило:

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

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

6 голосов
/ 12 марта 2009

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

Я склонен группировать подобные операторы или шаги в последовательности перед интервалом (например, объявления переменных, циклы и т. Д.)

4 голосов
/ 12 марта 2009

В основном то же самое, что и все остальные. У COBOL были очень четкие правила о том, что такое предложение и параграф. Я думаю, в глубине души я следую за ними. Если у вас есть большое выражение IF, вы не ставили точку до самого конца гнезда. Аналогично, я ставлю пустую строку после моего последнего} // end, если

И да, я положил // конец, если // конец для, // конец метода вещи там. Некоторым из вокалистов, которых я знаю, это не нравится, но мне это нравится. Они говорят, что вы не должны делать ваши операторы if большими и что вы, вероятно, неправильно пишете код, если вы NEED // конец, если что-то, а я не NEED , но я считаю, что это облегчает чтение. Называй меня старомодным, ОКР, как угодно.

3 голосов
/ 12 марта 2009

Один из моих учителей, понижен одно из моих заданий, потому что у меня было Разметил мой код логически. Он сказал, «Когда вы должны читать код весь день в реальный мир, у тебя не будет этого межстрочный интервал, и вы будете благодарить я. "

Если вы не разделяете блоки с 5 или 10 строками пробела (что может свести с ума любого), вы просто инструктор - просто осел.

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

Хотя мы должны стремиться не писать методы длиной 200 строк, все наши очень короткие методы все еще очень часто содержат более одного элемента потока управления, и мы должны понимать, что вертикальный пробел столь же важен, как и горизонтальный пробел в читаемость. Вы можете удовлетворить принцип «один метод, одно назначение», даже если вы поместите пустую строку между циклом for и оператором if в одном и том же методе.


[Изменить, чтобы добавить] И еще несколько комментариев:

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

2) Во всяком случае, в то время как инструктор ОП совершенно ошибочен, полагая, что его стандарты кодирования одинаковы везде. Тем не менее, вы должны относиться к курсу программирования как к своей собственной небольшой программной лавке со своими собственными стандартами, поэтому ваш код должен быть написан так, чтобы соответствовать этим стандартам.

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

3 голосов
/ 12 марта 2009

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

3 голосов
/ 12 марта 2009

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

Звучит так, будто твой учитель в основном придурок. Как говорится, «те, кто может, делают; те, кто не может, на StackOverflow преподают». ;)

3 голосов
/ 12 марта 2009

Я считаю код статьей. Вы когда-нибудь пытались прочитать 2 страницы статьи, в которой нет абзаца или межстрочного интервала?

Я согласен с вами, отсутствие пробелов между логическими группами просто безумие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...