リーダブルコードより
フォーマット規約一例
GoogleのC++フォーマット規約
クラス名 | CamelCase |
---|---|
ローカル変数 | lower_separated |
定数 | kConstantName(CONSTANT_NAMEでなく) |
クラスのメンバ変数 | offset_(最後にアンダースコア) |
『JavaScript; The Good Parts』
- コンストラクタは大文字、通常の関数は小文字で始める
var x = new DataPicker(); var y = pageHeight();
- jQueryのライブラリ関数を呼び出した時は変数名の頭に$をつける
var $all_images = $("img"); var height = 250;
誤解を招く名前を避ける
- filter()→選択するならselect()*1、除外するならexclude()
- Clip(text, length)→最後からlength文字削除する(remove)か、最大length文字まで切り詰める(truncate)か
- →Truncate(text, max_chars) lengthをやめ名前に単位を付ける
- 範囲はfirst-last(firstからlast以下)、包含/排他的範囲はbegin-end(beginからend未満)
- ブール値
コメント
TODO | 後で手を付ける |
---|---|
FIXME | 既知の不具合がある |
HACK | あまり綺麗じゃない解決策 |
XXX | 危険!大きな問題がある |
todo(小文字) | 小さな問題 |
maybe-later | 小さな問題 後で直す |
変数・メソッド
- 変数のスコープを縮める メンバ変数 str_ → ローカル変数 str
//条件式でinfoを定義することにより、infoのスコープをif文に限定 if (PaymentInfo* info = database.ReadPaymentInfo()) { cont << "User paid: " << info->amount() << endl; }
//外側の無名関数が内側の関数を返すことにより、submittedを内側の関数だけがアクセス可にする //『JavaScript: The Good Parts―「良いパーツ」によるベストプラクティス』 var submit_form = (function () { var submitted = false; //※以下の関数からしかアクセスされない return function (form_name) { if (submitted) { return; //(二重投稿禁止) } ... submitted = true; }; }());
-
- 内でJavaScriptではvarを付けていない変数はグローバルスコープに入るので注意
- 変数に書き込むのは一度限りにする。あるいはconst finalを使って変更不可にして変動し続ける変数を排除する
- メソッドを出来るだけstaticにする(メンバ変数と関係なくなる)
*1:extract(抽出する)というのもありかも