45
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ちょうぜつAdvent Calendar 2020

Day 6

マンガでわかる機能的分解アンチパターン

Last updated at Posted at 2020-12-06

07563311-DCD9-400D-AA55-21158EB9D3B0.png
http://wiki.c2.com/?FunctionalDecomposition

オブジェクト指向にかぎらず、大きな仕事があるからといって、単純にタスクを分割しただけでは、情報のやりとりが非効率になることがよくあります。

長い手続きを何の考えもなしにオブジェクトに分けてしまうと、グローバル変数を使うサブルーチンのようになってしまいます。つまり、元のスコープからアクセスしていた情報を共有するために、引数が無駄に多かったり、あるいは大きなコンテキストになったり、乱暴なパブリックフィールドアクセスが起きたり、といったことが起こります。

仕事をオブジェクトに分けましょうというのは、責務の専門性でグルーピングするということです。どこから何を参照するかの関係線が最少になるようにし、意味がわかるようにメタファーでくくるようにしましょう。

それぞれの社員が、プロダクトの開発と営業をどちらもやるのではなく、開発者は倍の開発を、営業マンは倍の営業をすると偏らせるほうが、どう考えても正常ですよね

45
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?