3月 12

Google C++ Style Guideのバージョンが3.146から3.154に上がっていたので『Google C++スタイルガイド 日本語訳(全訳)』もアップデートしました。

主な変更は以下。

  • 使ってもよいboostライブラリにcall_traitsを追加
  • デフォルト引数のルールに例外を追加
  • マクロで##を使うことを推奨しない、など

あと読みにくいところなど、ちょこちょこと手を入れました。

Tagged with:
11月 13

Google C++ Style Guideのバージョンが3.133から3.146 に上がっていたので『Google C++スタイルガイド 日本語訳(全訳)』もアップデートしました。

ChangLogによると、変更箇所は以下の通り。

  • 有害なコンストラクタは許されない、というメッセージをより明確にした。古いコードを書き直す必要はないが、新しいコードには DISALLOW_COPY_AND_ASSIGN を使うべきである。
  • イニシャライザリストをコンストラクタイニシャライザリストに変更した。誰もがコンストラクタの一部だということをわかった上で検索しているようだが、正確な名前を忘れてしまうためだ。
  • test fixtureのデータメンバがprivateであることを許した。
  • グローバル変数に関する制約を緩和した。
  • ネストされた名前空間の書式に関して、明確なガイドラインを追加した。
  • operator&のオーバーロードの禁止について補足した。
  • ファイル名には “-” よりも “_” を推奨することを追加した。
  • 「コピーコンストラクタ」のセクションを改訂して、より簡潔に明確にした。非標準のコピー操作よりも標準の方が望ましいことを強調した。
  • 「コンストラクタでやるべきこと」の表現を弱めて、複雑な初期化にはInit()メソッドが絶対必要というわけではないことを明確にした。
  • typoや文法間違いを修正した。

あと読みにくいところなど、ちょこちょこと手を入れました。

Tagged with:
3月 30

Google C++ Style Guideのバージョンが3.127から3.133 に上がっていたので「Google C++スタイルガイド日本語訳」もアップデートしておきました。

主な変更箇所は

  • 「グローバル変数」のところが「スタティック変数とグローバル変数」になって説明がわかりやすくなった
  • enum値の命名規則に定数スタイル(kEnumName)を追加

といったところ。
あと読みにくいところなど、ちょこちょこと手を入れました。

Tagged with:
1月 14

3.124 から 3.127 にバージョンが上がっていたので「日本語訳」もアップデートしておきました。

このスタイルガイドに準拠しているかどうかをチェックするための cpplint.py がオープンソースで公開されています。

変更箇所は

  • 条件文における中括弧の使い方について説明が追加されました
  • cpplint.py の説明が追加されました
Tagged with:
1月 06

わずかにバージョンが上がっていたので日本語訳もアップデートしておきました。

変更箇所は

  • リビジョン番号を追加 (3.124)
  • google-c-style.el へのリンクを追加

Tagged with:
12月 19

Google Style Guide の SVN に、Emacs の c-mode をこのガイドに準拠させる Emacs Lisp google-c-style.el が追加されていました。

ファイルをEmacs Lispのロードパスに置いて、以下を .emacs に書いておけば使えます。

;; google-c-style
(require 'google-c-style)
(add-hook 'c-mode-common-hook 'google-set-c-style)
(add-hook 'c-mode-common-hook 'google-make-newline-indent)

Tagged with:
12月 19

わずかにバージョンが上がっていたので日本語訳もアップデートしておきました。

変更箇所は

  • unsigned を使ってもいい例に2の補数オーバーフローを追加
  • ‘{‘ と同じ行に ‘}’ を書いてもよいことを明記
Tagged with:
12月 17

Google C++ Style Guideを全訳してみました。

『Google C++スタイルガイド 日本語訳(全訳)』
更新履歴:
2010-03-12 3.154にアップデート
2009-11-13 3.146にアップデート
2009-03-30 3.133にアップデート
2009-01-14 3.127にアップデート
2009-01-06 r14にアップデート
2008-12-23 誤字など修正
2008-12-19 r13にアップデート
2008-12-17 ひとまず公開 (r8)

ライセンスはオリジナルと同じくArtistic License/GPLです。

変電工さんによるGoogle C++スタイルガイド日本語訳
この存在を知ったのですが、勉強/練習も兼ねて自分でも全訳してみました。予想以上に分量多くて大変でした。

まだおかしなところ、読みにくいところもあるかと思いますが公開します。おかしなところなどありましたらご指摘ください。

Google Objective-C スタイルガイド 日本語訳Androidコードスタイルガイド 日本語訳もご一緒にどうぞ。

Tagged with:
11月 06

Google

GoogleがC++とObjective-Cのスタイルガイドを出しています(google-styleguide
こういうのは結構好きなので読んでみました。

C++については、変電工さんによるGoogle C++スタイルガイド日本語訳が出ていますが、勉強を兼ねて自分でも訳してみています。Objective-Cの方は近々公開するつもりです。
(更新:こちらで公開しました)

読んでみたんですが、C++でもObjective-Cでも、定数名を”k”で始めるとあります。これって珍しいと思っていたのですが、割と一般的だったんですね。

以前やってたプロジェクトでは、この定数名を”k”で始めるルールを使っていました。既存のコードがそうなっていたためです。私は(このスタイルガイドでも言及されていますが)一貫性が重要だと思っていたのですぐ受け入れたんですが、周りではこれに違和感を持つ人が結構多かったです。確かに、参考書などでこのネーミングルールを使っているのは見たことないような気がします。(で、結局のところ、みんな好き勝手なスタイルになってしまいましたが…)

調べてみると、”k”というのはドイツ語の”konstant”(英語の”constant”)から来ているようです。確かに、昔習った物理学や化学では定数として”k”がよく使われていました。これまで何で”k”なんだろうと思いつつ何となく使っていたのですが、謎が解けてスッキリです。

こういったスタイルはとても重要だと思っているのですが、なかなか理解されないですね。同じひとつのプロジェクトなのに、チームごと担当者ごとにスタイルがバラバラだったり… スタイルを揃えるだけでもミスが減って開発効率アップすると思うんですけどね。

Tagged with:
preload preload preload
QLOOKアクセス解析