Google C++ Style Guide
От: night beast СССР  
Дата: 02.07.08 09:52
Оценка: 18 (5)
Google C++ Style Guide
style
Re: Google C++ Style Guide
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 02.07.08 10:36
Оценка: +1 :)
Здравствуйте, night beast, Вы писали:

NB>Google C++ Style Guide


Exceptions
▶ We do not use C++ exceptions.


Сурово.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 10:50
Оценка: 1 (1) +1 :)
Здравствуйте, night beast, Вы писали:

NB>Google C++ Style Guide


Я не доверяю гайдам, которые пишут «const string &in».
До последнего не верил в пирамиду Лебедева.
Re[2]: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 10:52
Оценка: 1 (1) +2 -1
Здравствуйте, eao197, Вы писали:

E>

E>Exceptions
E>▶ We do not use C++ exceptions.


E>Сурово.


Они же написали внизу, почему. Они должны поддерживать существующий код, не обеспечивающий exception safety. И в этом они правы: исключения нужно использовать или везде, или нигде.
До последнего не верил в пирамиду Лебедева.
Re[2]: Google C++ Style Guide
От: night beast СССР  
Дата: 02.07.08 11:00
Оценка: :)
Здравствуйте, Roman Odaisky, Вы писали:

NB>>Google C++ Style Guide


RO>Я не доверяю гайдам, которые пишут «const string &in».


ну вот, начинается
щас кто-нибудь не согласится, и понеслась...
Re[3]: Google C++ Style Guide
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 02.07.08 11:06
Оценка: +1
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, eao197, Вы писали:


E>>

E>>Exceptions
E>>▶ We do not use C++ exceptions.


E>>Сурово.


RO>Они же написали внизу, почему. Они должны поддерживать существующий код, не обеспечивающий exception safety. И в этом они правы: исключения нужно использовать или везде, или нигде.


http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml -- ты про этот документ говоришь?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Google C++ Style Guide
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 02.07.08 11:11
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO> Они должны поддерживать существующий код, не обеспечивающий exception safety. И в этом они правы: исключения нужно использовать или везде, или нигде.


Если исключения не начать использовать, то количество существующего кода, не обеспечивающего exception safety будет расти постоянно.

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 11:12
Оценка:
Здравствуйте, night beast, Вы писали:

RO>>Я не доверяю гайдам, которые пишут «const string &in».


NB>ну вот, начинается :)

NB>щас кто-нибудь не согласится, и понеслась...

Разве ты не видишь в этом ни одной — объективной — ошибки?
До последнего не верил в пирамиду Лебедева.
Re[4]: Google C++ Style Guide
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 02.07.08 11:17
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>>>Я не доверяю гайдам, которые пишут «const string &in».


[]

RO>Разве ты не видишь в этом ни одной — объективной — ошибки?


"Объективной" -- ну, я не вижу
Re[4]: Google C++ Style Guide
От: night beast СССР  
Дата: 02.07.08 11:38
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>>>Я не доверяю гайдам, которые пишут «const string &in».


NB>>ну вот, начинается

NB>>щас кто-нибудь не согласится, и понеслась...

RO>Разве ты не видишь в этом ни одной — объективной — ошибки?


я такой стиль не применяю, но если дать компилятору эту строку, он ее скомпилирует.
значит объективных ошибок нет.
Re[5]: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 11:52
Оценка:
Здравствуйте, night beast, Вы писали:

RO>>>>Я не доверяю гайдам, которые пишут «const string &in».

NB>>>ну вот, начинается :)
NB>>>щас кто-нибудь не согласится, и понеслась...
RO>>Разве ты не видишь в этом ни одной — объективной — ошибки?

NB>я такой стиль не применяю, но если дать компилятору эту строку, он ее скомпилирует.

NB>значит объективных ошибок нет.

Не ошибок компиляции, а стилевых.
До последнего не верил в пирамиду Лебедева.
Re[6]: Google C++ Style Guide
От: night beast СССР  
Дата: 02.07.08 11:56
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, night beast, Вы писали:


RO>>>>>Я не доверяю гайдам, которые пишут «const string &in».

NB>>>>ну вот, начинается
NB>>>>щас кто-нибудь не согласится, и понеслась...
RO>>>Разве ты не видишь в этом ни одной — объективной — ошибки?

RO>Не ошибок компиляции, а стилевых.


стилевые ошибки -- понятие субъективное.
Re: Google C++ Style Guide
От: jazzer Россия Skype: enerjazzer
Дата: 02.07.08 11:58
Оценка: 1 (1) +5
Здравствуйте, night beast, Вы писали:

NB>Google C++ Style Guide


спасибо, интересно.

Главное — не забывать, что этот документ (как и все документы подобного рода) пишется, исходя из конкретной ситуации, в которой находились писавшие, поэтому слепо брать подобные документы в свой проект просто потому, что это Google/MS/whatever, нельзя, потому что в твоем проекте ситуация наверняка будет другая.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Google C++ Style Guide
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 02.07.08 11:59
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Не ошибок компиляции, а стилевых.


Т.е. правильный вариант такой:
std::string const & in

?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Google C++ Style Guide
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 02.07.08 12:01
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>>>Разве ты не видишь в этом ни одной — объективной — ошибки?


NB>>я такой стиль не применяю, но если дать компилятору эту строку, он ее скомпилирует.

NB>>значит объективных ошибок нет.

RO>Не ошибок компиляции, а стилевых.


Как стилевая ошибка может претендовать на объективность?!
Re[2]: Google C++ Style Guide
От: Erop Россия  
Дата: 02.07.08 12:08
Оценка:
Здравствуйте, eao197, Вы писали:

E>

E>Exceptions
E>▶ We do not use C++ exceptions.


E>Сурово.

+1
Интересно, а как они с RAII при этом рабоьают? Неудобно же.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 12:10
Оценка: +3 -3 :))
Здравствуйте, Alxndr, Вы писали:

RO>>>>Я не доверяю гайдам, которые пишут «const string &in».

A>[]
RO>>Разве ты не видишь в этом ни одной — объективной — ошибки?
A>"Объективной" -- ну, я не вижу :???:

Если хорошо подумать, то единственный правильный способ написать это — «std::string const& in».

Потому что:
1. «std::» — надеюсь, понятно.
2. const справа позволяет избежать непонимания в случае «const T @ @ something», где «@» — «*» или «&». Сам видел «const T* &something». Что хотели написать и что получилось? То ли дело «T const* & something» или «T * const& something».
3. Приклеивать «*» и «&» к имени — глупо. Ясно, что с обоими пунктуаторами нужно поступать одинаково, но, в то время как «X *x» еще имеет смысл («*x имеет тип X»), запись «X &x» его лишена. Так что «X* x» и «X& x». Пробелы с обеих сторон, как правильно заметили, придают объявлению вид выражения:
template <class Archive>
void serialize(Archive& archive, unsigned const version)
{
    archive & m_something; // это что?
    Archive & oops;        // а вот это?
}

Пробелы разве что полезны тогда, когда объявление многоуровневое, вроде X * const* * * const* * x. (А typedef еще полезнее. :-)

Так что «std::string const& in». Оно и читается удобнее, когда самое важное находится по краям строки, но это уже субъективно. Вроде такого:
ns::foo s = getSomeFoo();
ns::bar t;
ns2::quux u;
const ns::foo v = getSomeFoo()
const ns2::bar w = getSomeBar()
ns::quux x = getSomeQuux();
ns2::quuux y;
ns2::quuuux z = getSomeQuuuux();
Здесь, по-моему, const только отвлекают внимание.

ns::foo s = getSomeFoo();
ns::bar t;
ns2::quux u;
ns::foo const v = getSomeFoo()
ns2::bar const w = getSomeBar()
ns::quux x = getSomeQuux();
ns2::quuux y;
ns2::quuuux z = getSomeQuuuux();
А вот так куда лучше.
До последнего не верил в пирамиду Лебедева.
Re[7]: Google C++ Style Guide
От: jazzer Россия Skype: enerjazzer
Дата: 02.07.08 12:15
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Как стилевая ошибка может претендовать на объективность?!


Легко. Если есть несколько стилевых решений, и в среднем (по ситуациям/программистам) одно ведет к большему количеству ошибок читающего/исправляющего код, чем другие, то оно является объективной стилевой ошибкой.

Обычно этот критерий можно свести к количественному такому: "О скольких закоулках синтаксиса должен помнить человек, чтобы без ошибок понимать данный код?" Этот критерий проще, но исключает факторы типа визуального шума и графической похожести, которые могут замазать ошибку/опечатку (например, f(1) всегда должно быть вызовом с аргументом единица, а не с переменной l-маленькое).

Похожий критерий: "сколькими способами можно трактовать данный код?" Тот код, который дает меньший простор воображению, также является стилистически лучшим.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Google C++ Style Guide
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 02.07.08 12:15
Оценка:
Здравствуйте, Erop, Вы писали:

E>Интересно, а как они с RAII при этом рабоьают? Неудобно же.


Надо полагать, что они практикуют двух-фазную инициализацию объектов. Простой конструктор + все действия в методе Init(), который уже возвращает код ошибки.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Google C++ Style Guide
От: Roman Odaisky Украина  
Дата: 02.07.08 12:15
Оценка:
Здравствуйте, Alxndr, Вы писали:

RO>>>>Разве ты не видишь в этом ни одной — объективной — ошибки?

NB>>>я такой стиль не применяю, но если дать компилятору эту строку, он ее скомпилирует.
NB>>>значит объективных ошибок нет.
RO>>Не ошибок компиляции, а стилевых.

A>Как стилевая ошибка может претендовать на объективность?!


void ramkrishnamahadevmaamabeganeshmaheshwarishardayanamahajaishreeramgaganpateynamahaomhrimshrimchammundiyavicheenamaha(const string* &s);

здесь проблемы только субъективные?
До последнего не верил в пирамиду Лебедева.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.