URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 42631
[ Назад ]

Исходное сообщение
"OpenNews: Руководство по стилю оформления C++ кода, используемое внутри Google"

Отправлено opennews , 01-Июл-08 05:20 
"C++ Style Guide (http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml)" - руководство по стилю оформления C++ кода, используемое внутри Google.

URL: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
Новость: http://www.opennet.me/opennews/art.shtml?num=16730


Содержание

Сообщения в этом обсуждении
"Руководство по стилю оформления C++ кода, используемое внутри Google"
Отправлено AMDmi3 , 01-Июл-08 05:20 
Хехе, выложили таки :)

"Руководство по стилю оформления C++ кода, используемое внутри Google"
Отправлено xaka , 01-Июл-08 08:10 
Приятно написано и самое главное указаны как +, так и - того или иного выбора. Google молодцы. Кто-то должен наводить порядок в хаосе :)

"Руководство по стилю оформления C++ кода, используемое внутри Google"
Отправлено Аноним , 01-Июл-08 08:58 
Исключения запрещены к использованию, соответственно нельзя делать инициализацию в конструкторах - в топку такой style guide!

"Руководство по стилю оформления C++ кода, используемое внутр..."
Отправлено Анонимно , 01-Июл-08 10:37 
>Исключения запрещены к использованию, соответственно нельзя делать инициализацию в конструкторах - в
>топку такой style guide!

Вообще-то new тоже исключение кидает, если память выделить не может :-) Так что без базовой обработки исключений не обойтись, тогда придется запрещать какими бы то ни было стандартными функциями пользоваться.

Я так понимаю - тут просто написано, что использование собственных обработок построенных на throw-catch использовать нельзя.


"Руководство по стилю оформления C++ кода, используемое внутр..."
Отправлено Андрей , 01-Июл-08 11:52 
Запрещено использование exception, в топку однозначно.

"Руководство по стилю оформления C++ кода, используемое внутр..."
Отправлено Анонимно , 02-Июл-08 06:10 
>Запрещено использование exception, в топку однозначно.

А я только за запрет использования. Код вообще неперевариваймых с этими exception'ами.

Особенно меня в свое время выбило - когда я нашел что boost::thread внутри себя использует молчаливый catch(...) и поток тупо закрывается. Вот и получалось, что какая то ерундистика кидала этот самый exception - а он перехватывался в boost::thread и поток завершался. В результате получалась несуразица - процесс работает, но часть функционнальности как будто заблокировалась.

Вот вам и throw-catch. Один гемор с ними.


"OpenNews: Руководство по стилю оформления C++ кода, использу..."
Отправлено csdoc , 01-Июл-08 13:02 
тут кто-то возмущается, что exceptions в style guide запрещены -
но это так не только в Google, аналогичные правила и в Mozilla:

http://developer.mozilla.org/en/docs/C++_Portability_Guide#D...

а если так хочется exceptions - используйте Windows, Internet Explorer и www.live.com


"OpenNews: Руководство по стилю оформления C++ кода, использу..."
Отправлено vitek , 01-Июл-08 13:09 
не знаю..
думаю на прикладном уровне их использование вполне возможно.
а вот для google.. представьте, если их сервисы упадут из-за утечки памяти хотя бы на 5 минут.. вот радости для livesearch будет!

"OpenNews: Руководство по стилю оформления C++ кода, использу..."
Отправлено csdoc , 01-Июл-08 13:26 
> а вот для google.. представьте, если их сервисы упадут из-за утечки памяти
> хотя бы на 5 минут.. вот радости для livesearch будет!

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


"OpenNews: Руководство по стилю оформления C++ кода, использу..."
Отправлено vitek , 01-Июл-08 13:36 
ну и представь, что на других датацентрах стоит тотже код, с теми же глюками!
помнишь веерное отключение электроэнергии в Москве? :-)
какие уж шутки!
по этому лучше уж административно запретить exception.

"OpenNews: Руководство по стилю оформления C++ кода, использу..."
Отправлено Андрей , 01-Июл-08 16:03 
Не знаю как с exception в Windows, но в gcc все нормально. Да ретрограды сидят и в Mozilla, там общее правило вообще ничего не использовать из c++ если возможно. И утечки памяти и прочии ошибки от исключений не зависят совершенно. Подобные правила только гемора программистам добавляют.

"Руководство по стилю оформления C++ кода, используемое внутри Google"
Отправлено Аноним , 01-Июл-08 18:48 
Ну они ж там ясно все сказали:

Given that Google's existing code is not exception-tolerant, the costs of using exceptions are somewhat greater than the costs in in a new project. The conversion process would be slow and error-prone. We don't believe that the available alternatives to exceptions, such as error codes and assertions, introduce a significant burden.

Our advice against using exceptions is not predicated on philosophical or moral grounds, but practical ones. Because we'd like to use our open-source projects at Google and it's difficult to do so if those projects use exceptions, we need to advise against exceptions in Google open-source projects as well. Things would probably be different if we had to do it all over again from scratch.

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