◆当ページにはプロモーションが含まれています

学習方法

Angularの開発規約を読んでみよう!

開発規約、読んだことがありますか?

みなさん、こんにちは。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

Add and commit with Commitizen

こんな感じでprefix(接頭辞)をつけたcommit メッセージを作ることができるんですね。

詳細はこちらのgithubページを参考にしてみてください。


いかがだったでしょうか?

今回ご紹介したのはあくまでも一部であり、他にも様々なルールが存在しています。

個人で開発している時に

「コミットメッセージってどうやって書いたらいいいんだろう?」

「コーディング規約ってどうしてるんだろう?」

という迷いを抱えているみなさま、ぜひ自分が悩んでいる箇所だけでも先人の知恵を紐解いてみましょう!

エンジニアにおすすめ転職サイト

マイナビIT AGENT
迷ったらまずはココ。求人数が多いため希望や条件にマッチする求人が見つかる!

レバテックキャリア
担当者のレベルが高い。エンジニア特化で15年の実績がある実績で初回提案での内定率驚異の90%!

JOIN
副業やフリーランスとして高額報酬案件を見つけるならJOIN。未経験者でも案件獲得実績豊富が強み!

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn
一緒によく読まれている記事

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です