プレゼンテーションとビジネスロジックでレイヤを分けると、レイヤ間で受け渡すデータ(DTOとか)の
初期値の認識が違っていて、NullPointerで落ちることがある。というか落ちまくり。
チームの分け方が、業務ではなくレイヤだったこともあり、
どっちがどう初期化するんだということが不明瞭だったの原因。
結局地道に解決されましたが、今ならこんな風にしたいですね。
入出力となるクラスに事前条件・事後条件をアサーションするメソッドを追加。
そのメソッドはビジネスロジックを担当するチームで実装。
ビジネスロジック側のフレームワークで、
・プレゼンテーション層からの入力値に対しては事前条件を検証するメソッドを実行
・プレゼンテーション層に戻す出力値に対しては事後条件を検証するメソッドを実行
呼び出すのは開発時だけでいいと思いますが、NullPointer発生前に認識相違を検出したいですよね。
JavaDocで仕様を明示できればさらに良い。
実装の仕方はいろいろあると思います。入出力となるクラスにメソッドを追加するのではなく、
ビジネスロジックのメソッド呼び出し時にインターセプターを引っ掛けるものありだと思います。