Я понимаю, что это в значительной степени зависит от личных предпочтений, но мне любопытно, есть ли какие-то явные недостатки в следующем:
Я постоянно делю исходный код на логические группы (через «комментарии») в одном файле. Например:
//----------------------------------------------------------------------------
#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 символов) будут перенесены в строку. Однако это не проблема в ландшафтном режиме.
Если честно, я даже не знаю, почему или когда я начал это делать. Есть ли другие минусы к этому моему ОКР?
Кроме того, для меня такое поведение не зависит от языка; На днях я писал сценарий оболочки и заметил точно такую же модель поведения.