Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
PythonでDIする 需要はなさそうですが、たまたまPythonでDIする方法を調べたので、、、 いくつかの選択肢 Injector (ドキュメントはこちら) Inject (日本語の記事がありました) siringa(ドキュメントはこちら) di-py Injectは2015年で開発が止まっているようです。 di-pyはあまりドキュメントが充実していないようです。 siringaは型ヒントをごにょごにょしてInjectするちょっと変態チックなやり方だったので避けました。 消去法でInjectorを試してみました。 Injectorの特徴 ドキュメントでも説明されてますが、Google Guiceライクなフレームワークになっています。 Google Guiceの説明はこの方の記事がわかりやすかったです。 Google Guice 使い方メモ InjectやModule、Providerな
おすすめ書籍 エリック・エヴァンスのドメイン駆動設計 (2011) “Domain DrivenDesign” Eric Evans (2003) DDD 信者の聖書。その難解さから「鈍器」と呼ばれる。抽象度が高く、分厚いので 読み通すの大変だが、何回読んでも発見がある。ここで整理されている概念は、 10 年以上経った今も色褪せない。 実践ドメイン駆動設計 (2015) “Implementing Domain Driven Design” Vaughn Vernon (2011) Evans 本の中身は本質を突いているが、その実践は容易でない。本書は、 Evans 本以降の10年間に発表された新しい開発技法を取り込みながら、 DDD の考え方 を実践に移すにはどうすれば良いかを記述した指南書。 ※ 読むのに挫折しても、鈍器としてなら使えます ※ ※ 翻訳レビューに参加しました。
概要 やや古い記事だけど、InfoQ のドメイン駆動設計・開発の実践には次のように書かれています。 ドメイン・クラスがData Access Object(DAO:データ・アクセス・オブジェクト)クラスに依存し、サービス・クラスがドメイン・クラスに依存するという設計上の依存関係がDDDによる実装に際してDIを"なくてはならない"ものにしています。 Python の場合、DI(依存性の注入)の実現には Inject が便利です。 利用例 ざっと100行程度でサンプルを書くと、このような形になります。 # -*- coding: utf-8 -*- import uuid from abc import ABCMeta, abstractmethod import inject def config(binder): binder.bind(UserRepository, UserMemory
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く