コンテンツにスキップ

コーディング規約⚓︎

AlesInfiny Maia OSS Edition (以下 AlesInfiny Maia )では、一般に広く採用されている規約に準拠し、必要に応じて最低限のカスタムルールを加えることを基本方針とします。 ゼロから独自規約を作成することは、以下のような問題があるため推奨しません。

  • 規約作成にかかる負荷が大きい
  • 必要な規約の漏れが発生しやすい
  • 機械的なチェックの仕組みを作りにくい

AlesInfiny Maia で採用している規約⚓︎

Java アプリケーション、 Vue.js アプリケーションそれぞれで以下の内容を基本のコーディング規約としています。

  • Java アプリケーション

    • Google Java Style

      Google が提供する、コードのフォーマットに対する規約です。 改行やインデントの規則、メソッド名や変数名の命名規則などを定めています。

    • SpotBugs のバグパターン

      SpotBugs は静的解析ツールであるとともに、バグパターンと呼ばれるバッドプラクティスや脆弱性に関する定義を持ち、それらのコード中での出現を検知します。 SpotBugs によって検出された、バグパターンに該当するコードを修正することで、より安全なコーディングを実現できます。

  • Vue.js アプリケーション

    • Airbnb JavaScript Style Guide

      Airbnb が GitHub 上に公開している JavaScript のスタイルガイドです。コードのフォーマットに対する規約および、バグを防止するための規約を定めています。あわせて、これらの規約に従うための ESLint の設定が公開されています。

    • Vue.js スタイルガイド

      Vue.js が公式に提供するスタイルガイドです。 JavaScript に対する規約ではカバーできない Vue 固有の記法について、エラーの発生やアンチパターンを避けるための規約を優先度別に定めています。 これらの規約への違反を検出するための ESLint のプラグインも公式に提供されています。

    • CSS specifications

      W3C が策定する CSS の標準仕様です。 Stylelint では、この標準仕様に従うための設定が公開されています。

上記のコーディング規約は静的コード解析ツールによって自動的にチェックできるようにします。 バックエンド側では、 Checkstyle を使用して Google Java Style への準拠を自動チェックし、 SpotBugs を利用して、 SpotBugs が提供するバグパターンに該当するコードを自動検知します。 加えて、 Visual Studio Code の自動フォーマット機能を利用することで、コーディング中に Google Java Style へ準拠したフォーマットへと自動でコードを修正します。 フロントエンド側では Prettier 、 ESLint 、 Stylelint を利用してコーディング規約の自動チェックを行っています。 コーディング規約の内容および静的コード解析ツールの詳しい設定方法については、以下のページとサンプルアプリの実装を確認してください。

AlesInfiny Maia でカスタマイズしている規約⚓︎

AlesInfiny Maia では上記に示した基本のコーディング規約に加えて、以下に示すカスタマイズした規約を採用しています。

  • Java アプリケーション

    • Checkstyle プラグイン

      Checkstyle の規約をカスタマイズする場合、 Checkstyle プラグインが読み込むインプットファイルを編集します。具体的な方法については こちら を参照ください。 Checkstyle プラグインでカスタマイズする規約は以下の通りです。

      • IllegalCatch

        汎用検査例外を含む特定の例外のキャッチを禁止します。

        汎用的な例外をキャッチしてしまうと、具体的な例外が隠蔽されてしまい、原因の特定が難しくなります。 汎用的な例外ではなく、具体的な例外のみをキャッチするように本規約を設けます。