プログラム開発基礎学習二(C++Google Style命名規則)


ルールがなければ丸くならないので、新しい職場はチームのコードルールに従う必要があります.チームはGoogleのC++コードルールを使っていて、Googleのコードルールを見て、九天翔雁が言ったように、「GoogleのC++Style Guideは伝統的なコード作成スタイルの指導だけでなく、C++の各方面に対してGoogleの解釈と使用提案を行い、各ルールが与えられた場合、このルールの良い面と悪い面を詳しく説明し、最も急進的なルールにはC++を無効にする異常もあり、Googleの規範的なInterfaceをベースにしています.クラス外では、多重継承が無効になり、ほとんどの場合、デフォルトのパラメータなどが無効になります.GoogleはC++を効率的なJAVAにして使いたいと考えています~~~~.」中国語版のGoogle C++Style Guideは5万字もあるので、今日は最もよく使われるネーミングルールをまとめてみましょう.
1、ファイル命名規則
プログラムを書くときにまずファイルを作成するため、良いファイル名の命名はこのファイルがロードする内容をはっきり見ることができ、Googleは「ファイル名はすべて小文字で、下線を含めることができます()またはハイフン(-).プロジェクトの約束に従って、例えば:cmd_save_player_info“
私自身は下線方式の命名規則が好きで、同時にみんなは命名する時標準ライブラリの中の関数名と衝突することを防止します.
2、クラス命名規則
クラスはユーザーがカスタマイズしたデータ型で、Googleは「タイプ名の単語の頭文字はすべて大文字で、下線は含まれません:ModPlayerManager」というルールを提供しています.
クラス、構造体、列挙、タイプ定義(typedef)のすべてのタイプについて、同じ規則が使用されます.
3、変数命名規則
Googleでは、「変数名はすべて小文字で、単語間は下線で接続されます.クラスのメンバー変数は、player_idなどの下線で終わります.」というルールが与えられています. 
特殊なのは、メンバー変数の後ろに下線が付いていることです.たとえば、player_name_.グローバル変数にg_を加算し、例えばg_system_time.
4、定数命名規則
定数の場合、Googleは「k後に大文字で始まる単語、例えばkPlayerName」を指定します.
5、関数命名規則
Googleは関数について、「通常の関数は大文字と小文字を混合し、値と設定関数は変数名と一致する必要がある」というルールを示しています.
通常の関数では単語の先頭が大文字になります.たとえば、CheckPlayerCookie()です.
メンバー変数の設定と取得関数は少し特殊です.次のコードを見てください.
class Player
{
public:
	void set_player_id(const int player_id){return player_id_ = player_id;}
	int get_player_id() const{return player_id_;}
private:
	int player_id_;
};

6、名前空間命名規則
名前空間の場合、Googleは「名前空間は小文字で命名され、プロジェクト名とディレクトリ構造:google_awesome_project.」というルールを与えています.
7、列挙命名規則
列挙の場合、Googleは「列挙の命名は定数またはマクロと一致しなければならない:kEnumNameまたはENUM_NAME.」というルールを与えます.
8、マクロ変数命名規則
マクロ変数について、Googleは「マクロを使うつもりはありませんよね?必ず使うなら、MY_MACRO_THAT_SCARES_SMALL_CHILDREN.」というルールを与えています.
命名規則はよく使われていますが、もちろん私はまだこのような命名規則を実践したことがありません.以前使っていたハンガリーの命名法に比べて、メリットが見えません.しかし、Googleがこのようにするのは彼らの道理がある以上、そのスタイルが好きでも、チームと統一を保つのが良いスタイルです.
参考記事:1、Google C++スタイルガイド-中国語版
2、Google C++Styleで使用可能なBoostライブラリ(1)