Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Стиль кодирования


Автор: Хоббит 23.12.2008, 11:13
Простой поиск по гуглу, дал сразу кучу вариантов, беглый просмотр которых, показал, что они сильно отличаются.
1. http://www.possibility.com/Cpp/CppCodingStandard.html
2. http://geosoft.no/development/cppstyle.html
3. http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

3 стиль компании google.

А какого стиля придерживаетесь вы? Есть ли наиболее популярный стиль?
Наиболее важные вопросы для меня, именование классов, полей, функций доступа к полям, методов, аргументов методов.

Автор: vinter 23.12.2008, 11:32
а как кто относится к http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Reference_Arguments

Автор: Alek86 23.12.2008, 11:45
как говорилось в какой-то умной книжке - неважно, какой стиль выбрать - главное его придерживаться
а программисты-неновички достаточно легко читают код, написанный в любом стиле

Автор: SABROG 23.12.2008, 11:58
Придерживаюсь стиля разработчиков Qt.

Автор: chaos 23.12.2008, 12:06
мой ближе всего к стилю гугля smile

Автор: NewDima 23.12.2008, 13:00
Цитата(vinter @ 23.12.2008,  18:32)
а как кто относится к http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Reference_Arguments

вместе с этим мне не нравится необоснованность вот http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Use_of_const

Автор: vinter 23.12.2008, 13:08
Цитата(NewDima @  23.12.2008,  14:00 Найти цитируемый пост)
вместе с этим мне не нравится необоснованность вот этого

вполне обосновано, это защита от неправильного использования переменной

Автор: NewDima 23.12.2008, 13:35
Цитата(vinter @ 23.12.2008,  20:08)
вполне обосновано, это защита от неправильного использования переменной

имхо, где попало, как фактически там написано, ставить не следует. Все-равно const не обеспечивает побитовую константность объектов

Автор: Fazil6 23.12.2008, 13:58
Цитата(NewDima @  23.12.2008,  13:35 Найти цитируемый пост)
имхо, где попало, как фактически там написано,

совсем не так там написано

Автор: UnrealMan 23.12.2008, 18:13
Чтобы выбрать стиль google, надо быть отъявленным мазохистом smile 

Цитата
Use forward declarations to minimize use of #include in .h files.

Do not use a using-directive. 

Do only trivial initialization in a constructor. If at all possible, use an Init() method for non-trivial initialization. [это вообще жесть smile]

You must define a default constructor if your class defines member variables and has no other constructors. Otherwise the compiler will do it for you, badly. 

Use the C++ keyword explicit for constructors with one argument. 

When using inheritance, make it public.

All parameters passed by reference must be labeled const.

Do not use function overloading to simulate default function parameters.

We do not allow default function parameters.

We do not use C++ exceptions. smile 

We do not use Run Time Type Information (RTTI). smile

Use C++ casts like static_cast<>(). Do not use other cast formats like int y = (int)x; or int y = int(x);. 

Use streams only for logging.

Of the built-in C++ integer types, the only one used is int. 

Enumerators should be all uppercase with underscores between words: MY_EXCITING_ENUM_VALUE. 

Preprocessor directives should not be indented

У меня б через пару недель кодирования в таком стиле развилась бы жуткая депрессия smile 

Автор: vinter 23.12.2008, 18:40
Цитата(UnrealMan @  23.12.2008,  19:13 Найти цитируемый пост)
Use C++ casts like static_cast<>(). Do not use other cast formats like int y = (int)x;


Цитата(UnrealMan @  23.12.2008,  19:13 Найти цитируемый пост)
Enumerators should be all uppercase with underscores between words: MY_EXCITING_ENUM_VALUE. 

а я вот с этим согласен

Автор: NewDima 23.12.2008, 18:42
Цитата(Fazil6 @ 23.12.2008,  20:58)
Цитата(NewDima @  23.12.2008,  13:35 Найти цитируемый пост)
имхо, где попало, как фактически там написано,

совсем не так там написано

Ок, строго рекомендуем использовать там где это надо. Ничего логичней не видел. Только это не совет вовсе

Автор: DSWK 23.12.2008, 18:51
Цитата(UnrealMan @  23.12.2008,  18:13 Найти цитируемый пост)
Чтобы выбрать стиль google, надо быть отъявленным мазохистом smile 

Не зря ведь они пишут 
Цитата
We do not use...
 smile
ИМХО, интересен стиль, предлагаемый в пункте 2 ( http://geosoft.no/development/cppstyle.html ). Сам его стараюсь придерживаться.

Автор: UnrealMan 23.12.2008, 21:37
Цитата(DSWK @  23.12.2008,  18:51 Найти цитируемый пост)
ИМХО, интересен стиль, предлагаемый в пункте 2

smile  Много лажи.

Автор: bsa 24.12.2008, 00:09
Прочитал кажется у Мейерса: правильный стиль - это единый стиль для всего проекта (ну, или хотя бы файла). В принципе, я местами согласен с гуглом и п2. Но гугл слишком ограничивает (буст нельзя, RTTI нельзя, exceptions нельзя...), а п2 вводит очень субъективные вещи - типа отступов между ключевым словом и скобкой или значением case и двоеточием.
Лично я считаю стиль, используемый в QT, наиболее оптимальным.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)