好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

『Google C++ Style Guide』を見てて思ったことを垂れ流し

日本語訳がありがたすぎます。日本語訳で疑問に思った箇所だけは英語版で補完‥‥できているかは私の絶望的な英語力ではかなり怪しいorz

やはり、一番目をひく所は例外禁止ですか?

個人的には C++ の例外処理はあんまり好きじゃなくて、C言語チックに解決してしまうこと*1が多いので、C++で例外を使わない理由のひとつとして、「Googleもそうだから」とか言えるのは非常に助かる。Google衣を借りるヌルプログラマ(苦笑)。C++の例外処理からの復帰とメモリ管理のややこしさは異常。

このスタイルガイドを読むときの前提として、Google がどんな時に C++ を使っているのかを念頭に置くか置かないかで、だいぶ見方が変わるような気はする。

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

Googleを支える技術によると、C++ は基盤システムやらインデックスサーバーやらの速度が求められる部分に使われる事が多いらしい。

で、そういうものを作るときって、指定されているもの以外の Boost ライブラリ使用禁止とか、ストリームはログとるときだけとか、実行時型情報(RTTI)禁止とかって、ほとんど困らないような気がするんだよなー。

一般ユーザー向け or 自分が手を抜いて作りたいソフトウェアを作るときなんかは、Boost 使用禁止は泣けるかもしれないけど、Google での C++ の使用用途を考えると「別に問題なくね?」と思うんだがどうか。というか、私自身、メインの仕事は C++ だけど、ここ2年ぐらい Boost ほとんど使ってないんだよなー。私のマシンの Boost は未だに 1.3.3 だ!(爆) Boost をバリバリ使わないといけないようなものって、そもそも C++ じゃなくて Java とか Ruby とかで組みたいよね(元も子もない)。


あと反感買いそうなのはデフォルト引数禁止ぐらい? これも理由を読むと「あるあるw」とは思うんだけど、便利だから使っちゃうなよなー。今のプロジェクトが終わったら自重してみよう。


好みの問題でしかないんだけど、定数の命名規則だけには激しく拒否反応。

Use a k followed by mixed case: kDaysInAWeek.

ハンガリアンは否定しているのに、定数の頭には"k"を付けてるのが、なんか納得いかねー。


アクセサと、その他の関数で命名規則が分かれてるのは、ちょっと面白いかもと思ったんだけど、

You may also use lowercase letters for other very short inlined functions. For example if a function were so cheap you would not cache the value if you were calling it in a loop, then lowercase naming would be acceptable.

Function Names

インライン関数は小文字許容? アクセサ以外のインライン関数を Regular Functions と違う命名規則にする意味がわからん‥‥。

おまけ

XSLTってもう廃れたかと思っていたら、こんなところで見ることになろうとは*2Ajaxが流行った現状での XSLT の立場ってどうなってるのん?

*1:エラーコード返してごにょごにょ

*2:はてブでもXSLTであることが気になった人がいるようだ