開発規約、読んだことがありますか?
みなさん、こんにちは。ProgLearn編集部です。
皆様は開発規約を読んだことはあるでしょうか?
企業で働いてる方は、社内の規約があると思います。
それと同じように、特にオープンソースで開発されているプロジェクトであれば開発にあたっての各種ルールが策定されています。
各種プロジェクトがどのようになルールが制定されているのか、それを読むだけでもかなり勉強になります!
今回は、JavaScriptのフレームワークとして有名な、Augularの規約をいくつかご紹介しようと思います。
URLはこちらです。
https://github.com/angular/angular.js/blob/master/DEVELOPERS.md
コーディング規約
一部意訳です。
- 全ての機能拡張とバグ修正は必ずテストする必要がある
- 全ての Public API メソッドは 必ずngdocでドキュメント化する必要がある。(ngdocはjsdocの拡張)
- 下記の例外を除き、コーディングスタイルは Google’s JavaScript Style Guide に則る
- 名前空間は使わない。Anonymous Closureでラップして、API を明示的にエクスポートしてください。
- 100文字で全てのコードを囲ってください。
- プロトタイプの継承は必要最低限のとどめ、シンプルなオブジェクトになるように心がけてください。
- 我々は関数とクロージャを愛しています。可能な限り、オブジェクトではなく、これらを使ってください。
- コードを圧縮して単純化させるために、外部APIと連携している内部向けのエイリアスを使っています。
- AngularJSでずっと使われる内部APIではない限り、プライベートな内部APIでは型注釈に固執しません。
テスト駆動型の考え方が実践されていることが伺えると同時に、関数型の記述が推奨されています。明文化されていることで、彼らのポリシーを読み解くことができますね。
また、最後の文章はTypeScriptベースで開発しているというイメージが強いAngularの規約としては意外性があります。
Git コミット規約
次にコミット規約について、このように書かれています。
我々はとてもgit の commit messageをフォーマットするための正確なルールを持っています。これによってプロジェクトの履歴を追いやすくなるより読みやすいメッセージになります。そしてまた、git commit messageを AngularJS の変更履歴を生成するのに利用しています。
つまり、git commitを開発履歴を追いやすくするために利用することはもちろん、AngularJSのリリースノートを生成することにも使っているんですね!だからしっかりとした規約を作っているようです。
これを実現するために、AngularJSでは Commitizenを使うことを推奨しています。これを使うと、commit messageをフォーマット化して使うことができるようになります!
https://github.com/commitizen/cz-cli
こんな感じでprefix(接頭辞)をつけたcommit メッセージを作ることができるんですね。
詳細はこちらのgithubページを参考にしてみてください。
いかがだったでしょうか?
今回ご紹介したのはあくまでも一部であり、他にも様々なルールが存在しています。
個人で開発している時に
「コミットメッセージってどうやって書いたらいいいんだろう?」
「コーディング規約ってどうしてるんだろう?」
という迷いを抱えているみなさま、ぜひ自分が悩んでいる箇所だけでも先人の知恵を紐解いてみましょう!