[DDD Alliance! 3週連続DDD 第2週]まとめ
技術的なリファクタリングは、マイクロリファクタリングと書いてあったから、これが技術的なリファクタリングと違うってのは、わかりやすかったかもなぁ #DDDAlliance
2015-09-10 20:25:02いわゆる「リファクタリング」は技術的観点の話であるが、ここでは「モデル」の探求、「ドメイン層」の設計の観点から捉える #DDDAlliance
2015-09-10 20:25:09マーティン・ファウラーのリファクタリングは技術論として書かれているが、エバンスはそれをドメインの観点からの応用として書いている #DDDAlliance
2015-09-10 20:25:56重複したコード、関心事が複数箇所に散らばっている。これ、心当たりあるけど、たまに、近いものに見えるけど、全ての要素が少しずつ違うという、どう1個の概念に抽象化していいかわからない事があるんだよなぁ #DDDAlliance
2015-09-10 20:27:36分割ではなく抽出 => 大きなものを小さく分けるのではなく、そのなかに含まれている意味のあるかたまりを抽出する #DDDAlliance
2015-09-10 20:28:22ドメインの表面的な側面を捨て去る 何を捨て去っているかを意識しながら読むと理解が深まる <=> 文章としてはあまり書かれていない #DDDAlliance
2015-09-10 20:30:53ドメインの表面的な側面を捨て去る。具体的にこういう時これが表面的な側面なので、これを捨てましたって話はあまり書いてないらしい。192ページの、船舶オブジェクトがなくなって輸送機器の運行になった、あたりが、捨て去った具体的な話かなと思った #DDDAlliance
2015-09-10 20:32:25「ドメインの表面的な側面を捨て去る」という表現が何度か繰り返されるが、何々を捨て去ったみたいな具体例はあまり書かれていないので、意識的に本を読む必要がある #DDDAlliance
2015-09-10 20:32:53深いモデルの探求は、絞り込まれたドメインのコアの部分についてのみ行うべき。 全部に対して行うのは大変な上に得るものは殆どない #DDDAlliance
2015-09-10 20:34:02再利用したいのにコピペするか、再利用したいコードを含めてリファクタリングするしか手がない事割とあるから、全然しなやかじゃないなぁ #DDDAlliance
2015-09-10 20:34:55「モデル」と「コード」を一致させながら「モデル」の実験を行うには、「コード」のしなやかさが必要になる。 #DDDAlliance
2015-09-10 20:35:17いいモデルが出来たと思ってもコードに落とすと破綻してるってことがよくあるので、さっさとコードに落としてフィードバックするのが賢明ですね #DDDAlliance
2015-09-10 20:36:52第8章ブレイクスルー:ブレイクスルーはちょっと大げさな表現で、ちょっとした気づきかもしれない。 それはそれとして、そのブレイクスルーを実装に入れるのは、インパクトが大きいので何時どのようにするかは、冷静に考えないといけない #DDDAlliance
2015-09-10 20:39:50コードに違和感があるけどどこを直して良いか分からないような場合、経験的に、本当に小さなリファクタリング(名前を変えるとか)を愚直に繰り返していくと自然と進むべき道が見えてくることがありますね #DDDAlliance
2015-09-10 20:40:17TDDとの関係を考えると、細やかなリファクタリングの為に多くのテストを書いておきたい一方、ドメイン層はかなりダイナミックにリファクタリングすることになるので、どの程度テストを書くか、どのタイミングでテストを捨て去るかのバランスがいつも難しい #DDDAlliance
2015-09-10 20:47:10兆候と結末:この兆候と同じかわからないが、不整合が出てきて苦労してるなという時たまにある。こういう時は、どうにかして元の設計とその拡張の範囲で、うまくやりくりしようと格闘するも、無理やりになるし動かないしで、なんとか動かそうとして、バグに気がつかなくなる #DDDAlliance
2015-09-10 20:47:13