🐘
Style Guide の Style Guideを作る
コーディング規則、皆さん悩んでらっしゃいますでしょうか?
コーディング規則で悩むのを終わりにしたく、自分専用のコーディング規則を作ることにしました(注意: 現場では現場のコーディング規則に従います)
ところが、コーディング規則を書くにも規則が必要です(例えば、インデントは Style? それとも Formatting?)
そのコーディング規則を書くにあたり、コーディング規則の記述ガイドライン...スタイルガイドのスタイルガイドが欲しくなったので作成しました。
結論
以下のフローチャートに従って分類する。
- 仮に Scratch(GUI) でプログラミングするとしても、それは依然として論点ですか?
- Yes の場合、それを StyleGuide に含めるべきかを再考する。
- ファイルの外側の論点ですか? Yes の場合、
Meta Rules
に分類 ... e.g. フォルダ構成など。 - それはプログラミング言語に関わらず論点ですか?
- Yes の場合、それは目の見えない人がプログラミングする場合でも論点ですか?
- Yes の場合、
Style Rules
に分類 ... e.g. 変数の命名、モジュールの分割 - No の場合、
Formatting Rules
に分類 ... e.g. スペース or インデント
- Yes の場合、
- No(つまり言語特有の論点) の場合、
Language Feature
に分類
- Yes の場合、それは目の見えない人がプログラミングする場合でも論点ですか?
中間成果物
インターネット上に公開されている Web 企業のコーディング規則のうち、分類がなされているものの分類を表にした。(完成が目標ではないので、めっちゃ途中です)
Style Guides Categorization - Google Spread Sheet
検討中に気になった点
- そもそもの話、コーディング規則に分類をつけている組織は多くないかも。例えば AirBnB
のガイドラインって、各規則が単に羅列されているだけで、分類や順序付けはされていないんですよね。 - Google の Python のコーディング規則は、その理由が Pros/Cons でまとめられておりこれは他でもパクれそう。
- Dropbox の Common Bugs (Best Practice より遊び心がある感じで好き)。ブロックが non-nil であることを常に if
の前でチェックすること、などやらないとバグを生むなどのプラクティスがまとまっている。
まとめ
まだ 100%納得いっているわけではないので、コメント大歓迎です。
Discussion