書籍管理ウェブサービス / ルールについて


書籍管理ウェブサービス

書籍管理ウェブサービス設計・製造上のルールについて

コーディング、命名、パッケージングに関するルールを示します。 設計/製造に当たっては、以下の文書に目を通してください。

コーディングルール

このコーディングルールのうち、重要度3(星三つ)のものに従います。 重要度1、2のものに関して、適用すべきと思われるものがあれば、以下にIDを列挙します。

  • N_PKG003
  • N_PKG004
  • N_CLS004
  • N_LVL001
  • C_GNR004
  • C_FMT001
  • C_FMT006
  • C_FMT007
  • C_FMT008
  • C_FMT009
  • C_FMT010
  • C_FMT011
  • C_FMT012
  • C_FMT014
  • C_FMT016
  • C_FMT010
  • C_CMT001
  • C_IMP002
  • C_CRT002
  • C_VAL001
  • C_VAL003
  • C_VAL004
  • C_VAL006
  • C_LVL001
  • C_CTR004
  • C_CTR007
  • C_STR002
  • C_CLT001

また、上記コーディングルールにない、または上記コーディングルールとは違うルールを適用すべきと思われるものがあれば、以下に列挙します。

  • インデントは2文字とする
  • 比較する場合には、基準となるほうを左、比較対象を右に書く
    if (0 < i)
    if ("TEST".equals(target))

命名・パッケージングルール

基本的にコーディングルールに従います。 付則として、役割ごとのクラス名、 パッケージングについてルール化しておきます。

サービス実装クラス

サービスとして公開される機能を実装したクラスの名称は、 コーディングルールに従い、その機能を明確に表すこととします。 (ただし、サービスインタフェースのルールも参照のこと)

サービス実装クラスは、bookshelf-serviceプロジェクトの、 jp.co.nskint.wsrg.bookshelf.serviceパッケージ下に配置するものとします。

サービスインタフェース

サービスとして公開するインタフェースの名称は、 「(対応する)サービス実装クラス名」+『Service』とします。

サービスインタフェースは、bookshelf-commonsプロジェクトの、 jp.co.nskint.wsrg.bookshelf.serviceパッケージ下に配置するものとします。

必ず、java.rmi.Remoteを継承してください。


データトランスファオブジェクト(DTO)クラス

サービス/クライアント間の通信に使用するデータクラスの名称については、 「XxxInfo?」というように末尾を『Info』に統一することとします。 Xxxの部分は任意ですが、どんな情報を持っているのかわかりやすい名称をつけてください。

DTOクラスは、bookshelf-commonsプロジェクトの、 jp.co.nskint.wsrg.bookshelf.dataパッケージ下に配置するものとします。

データアクセスオブジェクト(DAO)インタフェース

今回の開発ではDBアクセスの処理を、 DAOというクラスに集約します。 また、コンテナにトランザクション管理を行わせるために、 DAOをインタフェースと実装に分けます。

DBアクセスを集約するオブジェクトのインタフェースの名称は、 「XxxDAO」というように末尾を『DAO』と統一することとします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。

DAOインタフェースは、bookshelf-serviceプロジェクトの、 jp.co.nskint.wsrg.bookshelf.daoパッケージ下に配置するものとします。

データアクセスオブジェクト(DAO)実装クラス

DBアクセスを集約するオブジェクトの実装クラスの名称は、 「DAO名称」+「Impl」とします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。

DAO実装クラスは、bookshelf-serviceプロジェクトの、 jp.co.nskint.wsrg.bookshelf.dao.implパッケージ下に配置するものとします。

ローカルデータトランスファオブジェクト(DTO)クラス

DBに保存する/されているデータ項目とサービスとして公開するデータ項目に差がある場合には、 DAOとサービス実装間で使用するローカルDTOクラスを作成する必要があります。

ローカルDTOクラスの名称は、 「XxxData?」というように末尾を『Data』と統一することとします。 Xxxの部分は任意ですが、どんな情報を取り扱うのかわかりやすい名称をつけてください。

ローカルDTOは、bookshelf-serviceプロジェクトの、 jp.co.nskint.wsrg.bookshelf.dataパッケージ下に配置するものとします。

例外クラス

例外クラスの名称は、 「XxxException?」のように末尾を『Exception』に統一します。

サービス・クライアント間共通の例外や、 サービスからクライアントへ投げる例外は、 bookshelf-commonsプロジェクトの、 jp.co.nskint.wsrg.bookshelf.exceptionパッケージ下に配置するものとします。

サービス、クライアント独自の例外は、 それぞれのプロジェクト(bookshelf-service、bookshelf-ui)の、 jp.co.nskint.wsrg.bookshelf.exceptionパッケージ下に配置するものとします。

サービスからクライアントへ投げる例外は、 必ず、java.rmi.RemoteException?を継承してください。


その他、コーディングの注意点

セッションIDの取り扱い

サービスとして公開されるほとんどのメソッドは、 セッションIDを引数にする必要があります。 セッションIDは第一引数に統一します。