JavaEE勉強会に参加してきた

今日(日が変わっちゃったが)も今日とてイベント参加してきました。JavaEE勉強会では以下の本の読書会を実施中ですよと。

Domain-Driven Design: Tackling Complexity in the Heart of Software

Domain-Driven Design: Tackling Complexity in the Heart of Software

今日はいろいろとパターンがめじろ押しだったのでいろいろ面白い議論があるだろうなぁとは予想してたんですが、予想以上の面白い議論がありました。以下自分の感想。

自己紹介タイム
今回のテーマは「ドキュメント」。それぞれの人が開発中にどういうドキュメントをどういう視点で書いてる?ということで発表があったわけですが、やっぱもう「無駄なドキュメントを書くのをやめようよ」というのは結構当たり前な感じで、その無駄か無駄でないかの基準も「それって誰の為に書いてるのよ」っていう視点も参加している人にはありましたね。まぁ、ここに参加している人は意識の高い人たちだろうからそうなのかもしれないが、開発者全員がそうであったら幸せだろうなぁと思いながら聞いてました。
第4章について
レイヤーアーキテクチャに関して重点的に述べている感じがしましたが、私はくーすGoya世代なので、レイヤー大好きなんですが、まぁ時代はレイヤー分けすぎると面倒だよねってことなんすね。確かに無駄なレイヤーは作る必要はないですが、必要だからレイヤー分けしてるつもりなんすよね。まぁ、何を持ってレイヤーとするのか?はもっと突き詰めて考えるべきですが、Webアプリで言えばHTTPに汚染される領域と、DBに汚染される領域はあるわけで、それは分けたい。で、それらに汚染されない純粋なロジックな世界はおいておきたいと思う人なので、ドメイン層というよりロジック層として持ちたい感じがする。そういう意味でいえば次の議論で出てくる"SERVICES"になっちゃうし、トランザクションスクリプトなことをやってるだけなのかもしれませんねぇ。まだまだ深堀がたらないだけか・・・
第5章について
オブジェクトについて論じているところでしたが、まぁ分類がちょっとあいまいな感じはした。Associationに関しては、みんなそんなにこだわって考えてるんだという事が意外だった。私の考えがまだまだ甘いのか、私が扱ってるものが簡単すぎるのかはわからないが、双方向の関連なんかにはしたことないなぁ。やっぱ簡単なものしか扱ってないのかなぁ。ENTITY/VALUE OBJECTに関しては、途中ちらっと声があがっていたけど、区別は素直に不変かどうかでいいんじゃないかなぁ。それ以上の深い定義をしても不毛な気がする。基本はENTITYにしたいんすよ。けど、値が変わらなくて簡単に共有できちゃう奴がいてそいつをVALUE OBJECTって分けといてもいいんじゃね?みたいな。なので、どなたかが言われていたライフサイクルを気にしないでいいやつはもうVALUE OBJECTでいいでしょな感じ。実は5章でひがさんがSERVICEに関してどう語ってくれるかが今回の最大の楽しみだったんですが、SERVICEは残念ながら担当者不在で次回にまわったので、本当に残念だった。SERVICEというのはPofEAAでもDDDでもでてくるけど、結構ニュアンスがちがっていて、Seasarでもニュアンスがころころ変わるものなので、そこはつっこんで聞きたかったなぁと。
懇親会
最終的には9名になっていろいろ興味深い議論が行われました。前回は懇親会は出ずにかえったけど、やっぱ懇親会にはでるべきですね。

今回"VALUE OBJECTS"を担当したんですが、最初気合を入れて全訳をしておいて、まとめるとしたんですが、やたら気合の入った文章で、削る場所を見出せぬまま参加してしまったので発表が長くなっちゃいました・・・そのせいで5章がおわりませんでしたね・・・本当にすみませんでした。次に訳す機会をいただければ、もっとちゃんと要約します。

あと、レイヤーアーキテクチャーは作業分担や保守のためにも必要だと今でも思ってるので、それを中心にいろいろと理論武装をしたいなぁ。密結合になったもののメンテなんてできるとは自分は思ってないので、できる限り疎結合にするためにレイヤーを分けるべきだと思うなぁ。このあたりもまた違った面子で議論することにするかな。

次回は10/25(土)になりましたが、この日は札幌Ruby会議01に行く気満々なので、涙目で次回のJavaEE勉強会は不参加で・・・

最後に会場提供いただいたオージス総研さん、幹事のかくださん、本当にお疲れ様&ありがとうございました!