タグ

2016年9月22日のブックマーク (3件)

  • SwiftでもMinimal Cake Pattern - Qiita

    はじめに Minimal Cake Pattern1とは、株式会社ドワンゴの一部で採用されているDI(Dependency Injection)の手法である。このMinimal Cake Patternは主にScalaで行われている手法であるが、この記事ではこの手法をSwiftに移植することを目指す。 この記事で紹介したソースコードは次のリポジトリに置かれている。 もしこの記事を読んで、疑問や改善するべき点を見つけた場合は、気軽にコメントなどで指摘して欲しい。 Minimal Cake Patternとは? こちらの記事に詳細な解説があるので、まずはこちらを読んでいただきたいが、DIについての知識がある場合は飛ばしてもよい。 Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 SwiftによるMinimal

    SwiftでもMinimal Cake Pattern - Qiita
    jumperson
    jumperson 2016/09/22
    constructor injectionをごりごり使っていたけどこっちの方が筋が良さそう。
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
    jumperson
    jumperson 2016/09/22
    実行時エラー避けたいマンなのでDIコンテナは敬遠してしまう。DIのパターン3+1(ドワンゴ方式)が紹介されていました。
  • Play 2.4 と Dependency Injection - tototoshi の日記

    Play 2.3 が出たばっかで 2.4 の話をします。 前置き: Scala での DI Scala では DI についてのベストプラクティスと言える方法はなく、まだ意見が分かれている状態です。大きく割ると DI コンテナなどを使った動的な DI と、cake pattern, implicit parameter, macro, reader monad などを利用した静的な DI の 2 パターンです。 動的な DI と静的な DI にはそれぞれメリットとデメリットがあります。動的な DI のメリットは Java のわりと優秀な DI コンテナ (Guice とか) が使えて比較的取っ付きやすいこと、デメリットは型安全ではないところ。静的な DI のメリットは型安全、デメリットは trait だの macro だの implicit parameter だの、コンパイル時間が伸びる要

    Play 2.4 と Dependency Injection - tototoshi の日記
    jumperson
    jumperson 2016/09/22
    Scalaに関係なく静的/動的DIについて触れられている。