3
0

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.

クリーンアーキテクチャーで行こう

Last updated at Posted at 2020-10-08

もう今更感があるのですが
書きます。

image.png

どうしても、この図が先行するのですが
これにとらわれると、多分立ちいかなくなります

良い俯瞰図であるけども、ここからは、本質は見えないです

依存非依存から入ってしまうと、手が動かなくなります。

まずは、DIのお話から
DIというのはDependency injection、依存性の注入というソフトウェアパターンです。
本質的にオブジェクト指向が前提なので、そうではない言語ではやめておいたほうが良いです

もう一つ
手組のコードでDIをするのは、きついです。
先ず、何らかの、DIフレームワークを使いましょう
クリーンアーキテクチャーのDIはコンストラクターでのインジェクションが基本なので、そのあたりも考慮に入れておきます

で、インジェクションに関しては、必ず、インターフェースで受けるというところも大切です。
ここで、しっかりと、実クラス同士の依存性を切っておきましょう。

基本的に、データクラスと、ロジックのあるクラスも分けておきます。
データークラスは、プレーンなオブジェクト
ロジックのクラスは、インターフェースで抽象化、

後は、レイヤーをネームスペースとか、フォルダー構成で分けておれば、それっぽく仕上がります。

C#だと、フレームワークのServiceCollectionクラスのでサクッと書けるし、.net mvc coreに至っては最初からDIフレームワークを内包しているので。

最初から、全部だとつらいのですが、少し頑張って、ロジックとデータのクラスを分けて、ロジックのクラスはDI、データクラスはプレーンオブジェクト「C#の場合はPOCOという」で始めてみてはいかがでしょう?

3
0
2

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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?