🐘

Style Guide の Style Guideを作る

2021/05/13に公開

コーディング規則、皆さん悩んでらっしゃいますでしょうか?
コーディング規則で悩むのを終わりにしたく、自分専用のコーディング規則を作ることにしました(注意: 現場では現場のコーディング規則に従います)

ところが、コーディング規則を書くにも規則が必要です(例えば、インデントは Style? それとも Formatting?)
そのコーディング規則を書くにあたり、コーディング規則の記述ガイドライン...スタイルガイドのスタイルガイドが欲しくなったので作成しました。

結論

以下のフローチャートに従って分類する。

  • 仮に Scratch(GUI) でプログラミングするとしても、それは依然として論点ですか?
    • Yes の場合、それを StyleGuide に含めるべきかを再考する。
  • ファイルの外側の論点ですか? Yes の場合、 Meta Rules に分類 ... e.g. フォルダ構成など。
  • それはプログラミング言語に関わらず論点ですか?
    • Yes の場合、それは目の見えない人がプログラミングする場合でも論点ですか?
      • Yes の場合、 Style Rules に分類 ... e.g. 変数の命名、モジュールの分割
      • No の場合、 Formatting Rules に分類 ... e.g. スペース or インデント
    • No(つまり言語特有の論点) の場合、 Language Feature に分類

中間成果物

インターネット上に公開されている Web 企業のコーディング規則のうち、分類がなされているものの分類を表にした。(完成が目標ではないので、めっちゃ途中です)

Style Guides Categorization - Google Spread Sheet

検討中に気になった点

  • そもそもの話、コーディング規則に分類をつけている組織は多くないかも。例えば AirBnB
    のガイドラインって、各規則が単に羅列されているだけで、分類や順序付けはされていないんですよね。
  • Google の Python のコーディング規則は、その理由が Pros/Cons でまとめられておりこれは他でもパクれそう。
  • Dropbox の Common Bugs (Best Practice より遊び心がある感じで好き)。ブロックが non-nil であることを常に if
    の前でチェックすること、などやらないとバグを生むなどのプラクティスがまとまっている。

まとめ

まだ 100%納得いっているわけではないので、コメント大歓迎です。

GitHubで編集を提案

Discussion