The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Руководство по стилю оформления C++ кода, используемое внутри Google

30.06.2008 20:58

"C++ Style Guide" - руководство по стилю оформления C++ кода, используемое внутри Google.

  1. Главная ссылка к новости (http://google-styleguide.googl...)
Лицензия: CC BY 3.0
Источник: moskalyuk.name
Короткая ссылка: https://opennet.ru/16730-gcc
Ключевые слова: gcc, cpp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (12) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, AMDmi3 (??), 05:20, 01/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хехе, выложили таки :)
     
  • 1.2, xaka (??), 08:10, 01/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Приятно написано и самое главное указаны как +, так и - того или иного выбора. Google молодцы. Кто-то должен наводить порядок в хаосе :)
     
  • 1.3, Аноним (-), 08:58, 01/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Исключения запрещены к использованию, соответственно нельзя делать инициализацию в конструкторах - в топку такой style guide!
     
     
  • 2.4, Анонимно (?), 10:37, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Исключения запрещены к использованию, соответственно нельзя делать инициализацию в конструкторах - в
    >топку такой style guide!

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

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

     
     
  • 3.5, Андрей (??), 11:52, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Запрещено использование exception, в топку однозначно.
     
     
  • 4.13, Анонимно (?), 06:10, 02/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Запрещено использование exception, в топку однозначно.

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

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

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

     

  • 1.7, csdoc (ok), 13:02, 01/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    тут кто-то возмущается, что exceptions в style guide запрещены -
    но это так не только в Google, аналогичные правила и в Mozilla:

    http://developer.mozilla.org/en/docs/C++_Portability_Guide#Don.27t_use_except

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

     
     
  • 2.8, vitek (??), 13:09, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    не знаю..
    думаю на прикладном уровне их использование вполне возможно.
    а вот для google.. представьте, если их сервисы упадут из-за утечки памяти хотя бы на 5 минут.. вот радости для livesearch будет!
     
     
  • 3.9, csdoc (ok), 13:26, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > а вот для google.. представьте, если их сервисы упадут из-за утечки памяти
    > хотя бы на 5 минут.. вот радости для livesearch будет!

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

     
     
  • 4.10, vitek (??), 13:36, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    ну и представь, что на других датацентрах стоит тотже код, с теми же глюками!
    помнишь веерное отключение электроэнергии в Москве? :-)
    какие уж шутки!
    по этому лучше уж административно запретить exception.
     
  • 2.11, Андрей (??), 16:03, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю как с exception в Windows, но в gcc все нормально. Да ретрограды сидят и в Mozilla, там общее правило вообще ничего не использовать из c++ если возможно. И утечки памяти и прочии ошибки от исключений не зависят совершенно. Подобные правила только гемора программистам добавляют.
     

  • 1.12, Аноним (12), 18:48, 01/07/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну они ж там ясно все сказали:

    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.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру