コーディング、命名、パッケージングに関するルールを示します。 設計/製造に当たっては、以下の文書に目を通してください。
このコーディングルールのうち、重要度3(星三つ)のものに従います。 重要度1、2のものに関して、適用すべきと思われるものがあれば、以下にIDを列挙します。
また、上記コーディングルールにない、または上記コーディングルールとは違うルールを適用すべきと思われるものがあれば、以下に列挙します。
if (0 < i) if ("TEST".equals(target))
基本的にコーディングルールに従います。 付則として、役割ごとのクラス名、 パッケージングについてルール化しておきます。
サービスとして公開される機能を実装したクラスの名称は、 コーディングルールに従い、その機能を明確に表すこととします。 (ただし、サービスインタフェースのルールも参照のこと)
サービス実装クラスは、EngineerSearch?-serviceプロジェクトの、 jp.co.nskint.wsrg.engineersearch.serviceパッケージ下に配置するものとします。
サービスとして公開するインタフェースの名称は、 「(対応する)サービス実装クラス名」+『Service』とします。
サービスインタフェースは、EngineerSearch?-commonsプロジェクトの、 jp.co.nskint.wsrg.engineersearch.serviceパッケージ下に配置するものとします。
必ず、java.rmi.Remoteを継承してください。
サービス/クライアント間の通信に使用するデータクラスの名称については、 「XxxInfo?」というように末尾を『Info』に統一することとします。 Xxxの部分は任意ですが、どんな情報を持っているのかわかりやすい名称をつけてください。
DTOクラスは、EngineerSearch?-commonsプロジェクトの、 jp.co.nskint.wsrg.engineersearch.dataパッケージ下に配置するものとします。
今回の開発ではDBアクセスの処理を、 DAOというクラスに集約します。 また、コンテナにトランザクション管理を行わせるために、 DAOをインタフェースと実装に分けます。
DBアクセスを集約するオブジェクトのインタフェースの名称は、 「XxxDAO」というように末尾を『DAO』と統一することとします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。
DAOインタフェースは、EngineerSearch?-serviceプロジェクトの、 jp.co.nskint.wsrg.engineersearch.daoパッケージ下に配置するものとします。
DBアクセスを集約するオブジェクトの実装クラスの名称は、 「DAO名称」+「Impl」とします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。
DAO実装クラスは、EngineerSearch?-serviceプロジェクトの、 jp.co.nskint.wsrg.engineersearch.dao.implパッケージ下に配置するものとします。
DBに保存する/されているデータ項目とサービスとして公開するデータ項目に差がある場合には、 DAOとサービス実装間で使用するローカルDTOクラスを作成する必要があります。
ローカルDTOクラスの名称は、 「XxxData?」というように末尾を『Data』と統一することとします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。
ローカルDTOは、EngineerSearch?-serviceプロジェクトの、 jp.co.nskint.wsrg.engineersearch.dataパッケージ下に配置するものとします。
例外クラスの名称は、 「XxxException?」のように末尾を『Exception』に統一します。
サービス・クライアント間共通の例外や、 サービスからクライアントへ投げる例外は、 EngineerSearch?-commonsプロジェクトの、 jp.co.nskint.wsrg.engineersearch.exceptionパッケージ下に配置するものとします。
サービス、クライアント独自の例外は、 それぞれのプロジェクト(bookshelf-service、bookshelf-ui)の、 jp.co.nskint.wsrg.bookshelf.exceptionパッケージ下に配置するものとします。
サービスからクライアントへ投げる例外は、 必ず、java.rmi.RemoteException?を継承してください。
サービスとして公開されるほとんどのメソッドは、 セッションIDを引数にする必要があります。 セッションIDは第一引数に統一します。