а можно немного понудить?
<нужу>
а что если шаблонным параметром будет не int и не float и даже не double, а какой-нибудь class XAxisCoord? я бы не объявлял PointEx(const Point&);, а сделал бы что-то вроде PointEx makeFromPoint(const Point &); не членом класса.
</нужу>
Сорри, просто давно ничего не проектировал, не писал - соскучился по этому делу.
httperf. строит запросы на основе лога веб-сервера (nginx или apache, к сожалению, сейчас не вспомню). наступали на эти грабли, были довольны результатами ab пока не запустили маркетинг на проекте.
ab не дает адекватных результатов, т.к. посылает одни и те же запросы, что быстро работает засчет кэширования. в таком случае и на VB можно написать сервер, который не дольше отработает эту серию.
вобщем-то согласен с вами, только вот добавлю:
> > С членами классов работать через set/get методы.
> И что в этом такого, во многих языках нет свойств. А если уж хочется, то реализуются они не очень сложно, сам юзал, но вернулся на к set/get методам
а в других ОО языках разве не надо использовать сеттеры-геттеры? утомляет писать руками — есть библиотеки. ах да, тут ведь еще макросы отлично подходят, но это рассово неверный подход. вобще их даже гуглы не стесняются пользовать (взгляните в pcrecpp.h)
> > Так, члены должны объявляться с префиксом 'm_', чтобы не было.
> Вас кто-то заставляет с плеткой это делать? Это не стандарт, язык этого не требует, я лично префиксы не использую, для подсказок есть IntelliSence, да и VisualAssist.
ну а я, например, после переменной оставляю подчеркивание. всегол лишь рекомендация.
> > Никаких goto. Лучше do { break; } while(0); От этого суть глобально меняется.
> Я бы поспорил, goto нифига визуально не хороша, а break/continue проще отследить визуально. Я сам против goto, сколько программирую, всегда обходился без него.
в одном из недавних топиков в комментах обсуждали случаи, где это уместно (http://habrahabr.ru/blogs/code_review/125120/).
>> Не должно быть больше 4 вложенных конструкций.
это рекомендация кросс-языковая, с++ тут ни при чем.
> reinterpret_cast, static_cast, const_cast. Почему нет private_to_public_in_case_exception_cast?
быть может потому что он не нужен? все касты, имхо, архитектурно обоснованы — делают проверку типов в необходимой манере. const_cast — то, что все так ругают, сделан больше для того, чтобы дать выход программистам, если архитектурно не сложилось у них…
Резюмируя, могу сказать, что автор просто поддался модному тренду — поливать грязью язык.
> Например, хочешь использовать списки? Будь добр, пойми, что такое шаблоны, область видимости
я бы сказал: «если хочешь программировать, то пойми ...»
<нужу>
а что если шаблонным параметром будет не
int
и неfloat
и даже неdouble
, а какой-нибудьclass XAxisCoord
? я бы не объявлялPointEx(const Point&);
, а сделал бы что-то вродеPointEx makeFromPoint(const Point &); не членом класса.
</нужу>
Сорри, просто давно ничего не проектировал, не писал - соскучился по этому делу.
boost::asio
> > С членами классов работать через set/get методы.
> И что в этом такого, во многих языках нет свойств. А если уж хочется, то реализуются они не очень сложно, сам юзал, но вернулся на к set/get методам
а в других ОО языках разве не надо использовать сеттеры-геттеры? утомляет писать руками — есть библиотеки. ах да, тут ведь еще макросы отлично подходят, но это рассово неверный подход. вобще их даже гуглы не стесняются пользовать (взгляните в pcrecpp.h)
> > Так, члены должны объявляться с префиксом 'm_', чтобы не было.
> Вас кто-то заставляет с плеткой это делать? Это не стандарт, язык этого не требует, я лично префиксы не использую, для подсказок есть IntelliSence, да и VisualAssist.
ну а я, например, после переменной оставляю подчеркивание. всегол лишь рекомендация.
> > Никаких goto. Лучше do { break; } while(0); От этого суть глобально меняется.
> Я бы поспорил, goto нифига визуально не хороша, а break/continue проще отследить визуально. Я сам против goto, сколько программирую, всегда обходился без него.
в одном из недавних топиков в комментах обсуждали случаи, где это уместно (http://habrahabr.ru/blogs/code_review/125120/).
>> Не должно быть больше 4 вложенных конструкций.
это рекомендация кросс-языковая, с++ тут ни при чем.
> reinterpret_cast, static_cast, const_cast. Почему нет private_to_public_in_case_exception_cast?
быть может потому что он не нужен? все касты, имхо, архитектурно обоснованы — делают проверку типов в необходимой манере. const_cast — то, что все так ругают, сделан больше для того, чтобы дать выход программистам, если архитектурно не сложилось у них…
Резюмируя, могу сказать, что автор просто поддался модному тренду — поливать грязью язык.
я бы сказал: «если хочешь программировать, то пойми ...»