システム開発演習中のコード規約は以下のとおりです。
なお、この規約にないルールは各社で自由に決めることができます。
全般的な規約
- ソースコードには適切なコメントを挿入します。特に、関数やクラス、複雑なロジックについてはその目的や動作を明確に説明します。
- 不明瞭な命名は避け、変数、関数、クラスなどの名前はその目的や機能を明確に反映します。
Java (Servlet/JSP)
クラス名:
- クラス名はキャメルケースを使用します。最初の単語は大文字で、それ以降の単語の最初の文字も大文字にします。(パスカルケース)
- 名詞または名詞句を使用し、具体的な目的や機能を示す名前を付けます。
例: Customer, OrderProcessor, EmailValidator - Servletの命名規則:ファイル名はServletで終わり、urlPatternsはファイル名からServletを除いたものを使います。ファイル名:XxxServlet.java urlPatterns:”/Xxx” のようになります。
例:ファイル名:LoginServlet.java urlPatterns:”/Login” - daoの命名規則:ファイル名はDAOで終えます。
例:UsersDao - dtoの命名規則:ファイル名はBeanで終えます。
例:UserBean
メソッド名:
- メソッド名もキャメルケースを使用します。
- メソッド名は動詞または動詞句で始まり、操作や動作を明確に示します。
例: calculateTotal, validateInput, sendEmail
変数名:
- 変数名もキャメルケースを使用します。
- 変数名は意味のある名前にし、その役割や内容を示すようにします。
例: count, userName, totalAmount
定数名:
- 定数名はすべて大文字で、単語間はアンダースコア(_)で区切ります。
例: MAX_VALUE, DEFAULT_TIMEOUT, DB_NAME - 定数はfinal修飾子を使用して宣言し、値が変更されないことを示します。
JSPのファイル名:
- 複数の単語を含むファイル名では、単語間をハイフン(-)で区切るケバブケースを使用します。例: login-post.jsp
その他:
- パッケージcontroller,dao,dto,filter,utilは必須です。
- リダイレクト先はサーブレットのみとします。
例:response.sendRedirect("/プロジェクト名/Login"); - ウェルカムファイルとして必ずindex.htmlを用意します。JSPにはユーザーが直接アクセスできないようにし、サーブレット経由でのみアクセスできるようにします。
HTML5/CSS3/Bootstrap
- ファイル名はすべて英小文字を使用します。
- 複数の単語を含むファイル名では、単語間をハイフン(-)で区切るケバブケースを使用します。
- ファイル名には空白スペースを使用しません。代わりにハイフンを使用します。
- ファイル名はその内容を簡潔に説明するようにします。
- ディレクトリのデフォルトのWebページとしてindex.htmlを使用します。
- HTMLファイルの拡張子は.htmlを使用します。.htmは使用しません。
JavaScript
- 変数名、関数名はキャメルケースを使用します。
- 定数名は全て大文字で、単語間はアンダースコア(_)で区切ります。
- グローバル変数の使用は避けます。
MySQL
命名規則:
- テーブル名、カラム名は小文字を使用し、単語間はアンダースコア(_)で区切るスネークケースを使用します。
例: user_account, account_id - テーブル名はできるだけ複数形を使用します。
例: users, accounts
SQLキーワードの大文字小文字:
- SQLキーワード(SELECT, INSERT, UPDATE, WHEREなど)は大文字を使用します。
インデントと空白行:
- クエリが複数行に渡る場合はインデントを使用します。
- 長いクエリには空白行を適宜使用して、複数のセクションを視覚的に区切ります。
コメント:
- 複雑なクエリやストアドプロシージャには、その目的と動作を説明するコメントをつけます。
ワイルドカード*の使用:
- ワイルドカード*の使用は避け、必要なカラムを明示的に指定します。
SQLインジェクション攻撃:
- SQLインジェクション攻撃を避けるため、ユーザーからの入力を直接クエリに組み込まず、パラメータ化クエリやプリペアドステートメントを使用します。