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

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

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

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

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

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

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

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

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

Ответы [ 22 ]

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

Ваш учитель, вероятно, был наполовину прав в том, что в реальном мире у вас не будет межстрочного интервала. Конечно, на базах кода Big Ball of Mud я сталкиваюсь с тем, что вам повезло, если вы получили пробел, не говоря уже о комментариях к объяснениям.

Как 73-летний программист, который написал большую часть этого Big Ball of Mud, все еще работает там, и его объяснение состоит в том, что двоичные файлы должны быть как можно меньше, я не удосужился проверить, являются ли компиляторы 20-30 лет назад они были настолько неэффективны, что не могли убрать пробелы, но я несколько скептически отношусь.

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

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

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

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

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

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

Я думаю, что ваш код сталкивается с такой проблемой.

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

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

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

1) Я согласен с вами относительно межстрочного интервала

2) В моем офисе не хватает межстрочного интервала, потому что «таким образом вы увидите больше кода на одной странице». Они также помещают несколько операторов в одну строку и используют (ИМХО)?: ... Я ненавижу это.

3) Я не согласен с фразой «Вот почему он учитель». Как (бывший) учитель, я должен сказать, что я бы понизил рейтинг людей за то, что они НЕ ставили пробел между разделами, прежде чем снимать баллы за расстановку пробелов. Я не думаю, что я тоже. Моя точка зрения в том, что то, что он осел, ортогонально тому, что он учитель. (РЕДАКТИРОВАТЬ: этот раздел был отредактирован с оригинала, но я оставляю его здесь, чтобы сохранить правило 3 ...)

Не зли учителей!

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

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

/* This section preps the widgets for display */
block 
of some 
code

/* This section passes the widgets to the display handler */
and 
so 
on

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

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

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

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

Я только что работал над кодом, который идет в обратном направлении; каждое утверждение отделено от следующего пустой строкой. Авторам также понравилось использовать четыре строки комментария, выровненные по правому краю в столбце 60 вместо однострочного комментария с отступом на уровне кода. Это трудно читать и утомительно исправлять. Другая особенность кода (код C), разрыв с предыдущим регистром «привязан» к регистру следующего, но после регистра есть пустая строка, отделяющая его от кода. Ик!

Пустые строки вокруг блоков кода хороши. Не иметь слишком много блоков кода в одной функции - это хорошо. Пустые строки вокруг каждой строки кода неприятны. Слишком много или слишком мало хорошего - это плохо.

1 голос
/ 15 сентября 2011

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

Вот что такое абзацы. Как и в письменной форме, строки - это быстрый визуальный способ разделения концепций. Это не означает, что каждый параграф выше должен быть разбит на отдельный ответ; это не означает, что каждый «абзац» кода должен быть разбит на отдельный метод.

Это глупая жалоба. Если бы еще можно было поговорить с этим профессором, я бы объяснил, что означает «стена текста».

1 голос
/ 12 марта 2009

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

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

Я не собираюсь предлагать какие-либо подробности. Здесь и в других местах есть множество хороших предложений.

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

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

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