Горизонтальные линии в комментариях - PullRequest
0 голосов
/ 27 августа 2009

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

Я постоянно делю исходный код на логические группы (через «комментарии») в одном файле. Например:


//----------------------------------------------------------------------------
#include "..."
//----------------------------------------------------------------------------
#include <...>
//----------------------------------------------------------------------------
#include <boost/...>
//----------------------------------------------------------------------------
#include <os-specific/...>
//----------------------------------------------------------------------------
namespace
{
    void Foo()
    {
    }
}
//----------------------------------------------------------------------------
namespace
{
    void Bar()
    {
    }
}
//----------------------------------------------------------------------------
namespace
{
    void Baz()
    {
    }
}
//----------------------------------------------------------------------------
int main()
{
}
//----------------------------------------------------------------------------
//This file ends with a new-line.

Или:

//----------------------------------------------------------------------------
#ifndef FOO_HEADER_INCLUDED
#define FOO_HEADER_INCLUDED
//----------------------------------------------------------------------------
#include "..."
//----------------------------------------------------------------------------
namespace Foo
{
    void Bar();
}
//----------------------------------------------------------------------------
#endif
//----------------------------------------------------------------------------
//This file ends with a new-line.

В последнее время я читал какой-то инопланетный источник и заметил, что практически никто не делает этого.

Единственный аргумент, который я мог бы выдвинуть против такого рода «деления», - это когда вы физически печатаете исходный код в портретном режиме, где ваши делители (если длиннее ~ 80 символов) будут перенесены в строку. Однако это не проблема в ландшафтном режиме.

Если честно, я даже не знаю, почему или когда я начал это делать. Есть ли другие минусы к этому моему ОКР?

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

Ответы [ 5 ]

4 голосов
/ 27 августа 2009

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

Есть несколько причин, по которым я перестал это делать:

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

  2. Некоторые вещи бросили вызов легкой классификации. Предположим, вы хотите вложить небольшой класс в функцию. Вы действительно собираетесь добавить такую ​​строку в середине вашей функции?

  3. Более умные редакторы облегчали навигацию по коду. Первоначально, они были своего рода хорошими ориентирами при прокрутке файлов вверх и вниз, чтобы найти вещи. Но в Emacs я много пропускаю с пошаговым поиском и тегами файлов. И в тех случаях, когда я использую IDE, он показывает мне части файла сбоку и позволяет мне прыгать на них одним щелчком мыши.

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

  5. Я перешел на постоянное использование комментариев в стиле Javadoc / Doxygen. Это более наглядные, чем случайные горизонтальные линии, и я также обнаружил, что в коде они выглядят намного лучше.

1 голос
/ 27 августа 2009

Регионы - намного лучший способ разделить код. У компании, в которой я сейчас нахожусь, есть политика против "цветочного бокса" (то есть, окружающие вещи комментариями / ***** и **** /), и я уверен, что это также применимо к горизонтальным столбцам.

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

0 голосов
/ 28 августа 2009

В исходных файлах C у меня есть шаблон, который разбивает файлы на такие разделы, как #defines, typedefs, определения статических переменных (file-scope) и прототипы функций, открытые функции и статические функции и т. Д. файлы заголовков). Они ограничены линией '='.

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

У меня также есть строка '-' между каждой функцией и иногда между логическими группировками в других разделах по мере необходимости.

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

0 голосов
/ 27 августа 2009

Некоторые из нас используют их, хотя, возможно, не так широко, как вы. Смотрите мой ответ на этот вопрос .

0 голосов
/ 27 августа 2009

Мне кажется, вы не используете хорошую IDE. Например, вы можете использовать #regions в VS для группировки вашего кода. И это намного проще, чем ваши методы.

...