LINUX.ORG.RU
ФорумTalks

Советы по кодстайлу с++

 ,


2

1

http://habrahabr.ru/post/172091/ Для Ъ:

Петросянские и не очень советы по код-стайлу на С++

Самый петросянский совет:

58. Следует избегать использования break и continue в циклах.

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

★★★★★

Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от gh0stwizard

Мы используем классы. Предполагаем наследование. О каком «дороже» идёт речь? Если мы считаем байты, надо писать вообще совсем иначе.
Кроме того, современные компиляторы достаточно умны чтобы развернуть такой код.

Xellos ★★★★★
()
Ответ на: комментарий от zJes

Константа - это pi. А максимальный размер пакета является константой только здесь и сейчас. Завтра он может быть совсем другим, и может даже вообще не целым.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

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

zJes ★★
()
Ответ на: комментарий от x0r

Имхо глупо выделять метод, даже инлайн для подобного. Опять же это следование ооп стилю, но ни фига не практично. Если переопределить метод все можно поломать. Ладно, чувак думает, что он профи, пусть думает и дальше :-D

gh0stwizard ★★★★★
()
8. Следует называть имена типов в шаблонах одной заглавной буквой.

template<class T> ...
template<class C, class D> ...

он упоролся.

invy ★★★★★
()
Ответ на: комментарий от gh0stwizard

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

x0r ★★★★★
()
Ответ на: комментарий от zJes

Константа не в коде, а в задаче. И в задаче она может быть константой всегда, как pi, а может не всегда, а только здесь и сейчас.

советуют это оформить как не инлайн и не константный метод

Советую оформить это как метод. inline-не inline это дело десятое уже. Кстати, как ведёт себя объявление inline при наследовании? Я на сях и на плюсах писал давно, всех тонкостей не помню.

Xellos ★★★★★
()
Ответ на: комментарий от gh0stwizard

Если переопределить метод все можно поломать

WUT???

Xellos ★★★★★
()
Ответ на: комментарий от gh0stwizard

Почему глупо ? У чувака выработался определённый стиль, фик знает под влиянием чего. Может он константу завёл, потом она не константой оказалась и его пинали всем майкрософтом.

ilovewindows ★★★★★
()
Ответ на: комментарий от Stil

Это для склеротиков пункт, если переменную проинициализировать и сразу использовать,то есть шансы, что никто не вклинится и переменную не затрет. А если между этими действами пара страниц кода,то всегда найдётся некто ,кому эта переменная приглянется и он её попользует.Фигня короче.

ilovewindows ★★★★★
()
if (value != 0.0) // НЕ РЕКОМЕНДУЕТСЯ: if (value)

Одно лучше другого :)

KennyMinigun ★★★★★
()
Ответ на: комментарий от ilovewindows

Если не писать портянки

Если не писать, то конечно, так ведь пишут же.

no-such-file ★★★★★
()
Ответ на: комментарий от drBatty

в _любом_ случае? или только в случае вложенных в цикл switch'ей?

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

no-such-file ★★★★★
()
Ответ на: комментарий от CYB3R

Всё настолько плохо? Константы вне закона?

Функция лучше ибо инкапсуляция. Сегодня константа, а завтра захотим ее вычислять и что, перелопачивать весь код?

no-such-file ★★★★★
()
Ответ на: комментарий от grondek

Вообще ++i оптимальнее.

Для stl-итераторов да. Поскольку постинкремент делается через преинкремент. В случае встроенных типов разницы в скорости преинкремента и постинкремента нет. Тут уже по логике нужно выбирать нужное.

andreyu ★★★★★
()

Ну почему сразу «петросянские»? Очень хороший краткий гайд для начинающих.

segfault ★★★★★
()

Нагло выдранная из контекста 68-го совета фраза:

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

Квинтэссенция всех подобных гайдов. Не пишите на C++, поскольку это может смутить программистов, не знакомых с ним! Ну и про другие языки та же фигня :(

const86 ★★★★★
()
Ответ на: комментарий от no-such-file

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

зерно есть, но до гайдлайнов ещё как до китая.

drBatty ★★
()
Ответ на: комментарий от drBatty

но до гайдлайнов ещё как до китая

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

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Я считаю, почитать не бесполезно

интересно - кому это надо? тем кто кодит меньше года - лучше не надо, а остальным - бесполезно. ИМХО

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.