並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 96件

新着順 人気順

DIの検索結果1 - 40 件 / 96件

DIに関するエントリは96件あります。 programming開発テスト などが関連タグです。 人気エントリには 『DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita』などがあります。
  • DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita

    追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 本文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス

      DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
    • 維新 コロナの法律上扱い“季節性インフルエンザと同程度に” | NHKニュース

      オミクロン株への対応をめぐり、日本維新の会は、重症化率が低いというデータが出ているなどとして、新型コロナの法律上の扱いを季節性のインフルエンザと同程度に引き下げることなどを政府に要望しました。 日本維新の会の藤田幹事長らは13日、厚生労働省を訪れ、後藤厚生労働大臣と面会しました。 そして、オミクロン株は重症化率が低いというデータが出ていることなどを受け、医療提供体制や社会経済活動への影響をできるだけ抑える対策を要望しました。 具体的には、新型コロナの感染症法上の扱いを「二類相当」から、季節性のインフルエンザと同じ「五類」に引き下げることや、現在は14日間となっている濃厚接触者の宿泊施設などでの待機期間を短縮することを求めています。 このあと、藤田氏は「人流の抑制と感染拡大や重症化の相関性に疑義を呈する論説もかなり出てきているので、ことしは、科学的なデータに基づいた対策へと移行していくべきだ

        維新 コロナの法律上扱い“季節性インフルエンザと同程度に” | NHKニュース
      • Firebaseの存在をフロントエンドから隠蔽するために

        「Firebase は安いし楽だしマジ最高」という一心で技術選定してしまったプロダクトが成功して見えてきた課題、割高なコスト・権限管理・カスタマイズ性、そして (特性やスキルセット的に)RDB 製品が適していたのに無理やり Firestore を採用したことによるデータ不整合。 その結果チーム内で Firebase を抜ける機運が高まるも、Firebase べっとりなアプリケーションすぎて移行しづらいといった問題に出会うかもしれません。 そのような場合に備え、Firebase の存在を隠蔽して開発することに挑戦してみましょう。 注意: Firebase を剥がしているときに「俺、次は絶対そうするわ」と感じたものを書いているだけであり、まだ実際にはこのパターンでプロダクション導入していません。 あくまで個人開発で試してみていけそうと思ったので、提案しますという体です。 また Firebase

          Firebaseの存在をフロントエンドから隠蔽するために
        • 新規開発を始めるときにやるべきこと

          自動テスト実行結果の目的を整理する / Organizing objectives of automated test results

            新規開発を始めるときにやるべきこと
          • 「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH

            DHHの Dependency injection is not a virtue(2013) という記事は有名ですが、ちゃんとした日本語訳が意外とないようなので、書き出してみて思ったことを要約してみた。[1] Rubyのエンジニアの中には、何も考えずに他のモデルのnewを書いてる人の割合が多いという(コードレビュー時のヒアリングによる)体感があり、また8年前の記事なので経験の浅い人は読んだことがない人もいると思う。該当する方は是非読んでほしい。 全部読む時間が無い人は要約へ. 原文と訳文 In languages less open than Ruby, hard-coded class references can make testing tough. If your Java code has Date date = new Date(); buried in its guts,

              「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH
            • なぜ Go ではロガーをコンストラクタ DI してはならないのか

              問題のある実装パターン 共通実装 以下のような applog パッケージ上のロガー実装を考えましょう。ここでは Go 標準の log.Logger をラップしていますが,様々な実装に拡張できることを想定しています。 package applog import ( "fmt" "log" "os" ) type Logger interface { Info(message string) Error(message string) } func NewLogger() Logger { return &logger{ inner: log.New(os.Stdout, "", log.LstdFlags), } } var _ Logger = (*logger)(nil) type logger struct { inner *log.Logger } func (l *logger)

                なぜ Go ではロガーをコンストラクタ DI してはならないのか
              • DIP(依存性逆転の原則)を守っていない話

                一昨日くらいに 「DIP してもどうせ辛くなるよね」的なことを適当にツイートしたら引用 RT や RT 後言及やエアリプで言及された上に「こいつは設計を何も理解しとらん」みたいなことを言われた。「俺は本当に何も理解していないのか?」と不安になったので、自分の考えをちゃんと書いておこうと思った。先に自分の立場を言うと、なんたらアーキテクチャとか SOLID 原則は有用だし自分も使うが、それを厳守しようとは思っていないと言う立場だ。 DIP とはなんだったか DIP(依存性逆転の原則)は SOLID 原則の一つで、一言で言うと「抽象に依存させると依存関係が逆転する」といったものだ。何のことやらという風になるので例だけ挙げると、UserRepository と UserService があってこのように定義すると class UserRepository { get() { return dat

                  DIP(依存性逆転の原則)を守っていない話
                • DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita

                  DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる を、単体テストにフォーカスしたら単体テストが本来の目的では無い的なコメントが散見されました。 確かに DI コンテナは元々は SOLID 原則の D に該当する依存性逆転の原則 (Dependency inversion principle) の「具体ではなく、抽象に依存しなければならない」に大きく関係するものになります。 Wikipedia から引用します。 ソフトウエアモジュールを疎結合に保つための特定の形式を指す用語。 この原則に従うとソフトウェアの振る舞いを定義する上位レベルのモジュールから 下位レベルモジュールへの従来の依存関係は逆転し、結果として下位レベルモジュールの 実装の詳細から上位レベルモジュールを独立に保つことができるようになる。 例えば以下のように上位レベルのモジュール(Present

                    DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita
                  • 48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm

                    話したネタ デザインパターンとは? ソフトウェアパターン 書籍: オブジェクト指向における再利用のためのデザインパターン Gang of Four 進研ゼミみたいなもの Composite パターン デザインパターン以外のソフトウェアパターンとは? アーキテクチャパターン、アンチパターン、コンカレンシーパターン AWSクラウドデザインパターン パターンにはフォーマットがある GoFのデザインパターンはいつ頃生まれたもの? GoFのデザインパターン登場時に、ソフトウェア業界では何が起きていたのか? Ruby 20 周年記念パーティーレポート ―― プログラミング初心者の運営スタッフが見た Ruby コミュニティ C、C++、Perl、Smalltalk、Visual Basic の時代 デザインパターンには、どういうカテゴリがある? 生成・構造・振る舞い Javaのクラスライブラリにおけるデ

                      48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm
                    • DIコンテナ入門

                      • Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog

                        paild 社でお手伝いをしている yuki です。前回に引き続き Dependency Injection 略して DI の話題を書いていきたいと思います。今回は Rust における DI についていろいろと考えてみました。今回紹介する実装はかなり単純な例を用いたもので、この記事からさらにみなさんのアプリケーションの実装状況に合わせていくつか工夫は必要になるかもしれません。ただ、とっかかりとしては十分なものになっていると思うので、DI でお困りの方はぜひ参考にしてみてください。 今回実装したいアプリケーションのお題について 今回紹介する技法の種別について コンストラクタインジェクション 静的ディスパッチを用いたもの 動的ディスパッチを用いたもの 静的ディスパッチと動的ディスパッチの利点・欠点 shaku (DI コンテナ)を用いたインジェクション shaku の利点・欠点 余談: DI

                          Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog
                        • カリー化はナンの役に立つのか

                          昔ニコナレにアップロードしていたピクシブ社内勉強会資料です。

                            カリー化はナンの役に立つのか
                          • 「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita

                            「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまでC#DIDependencyInjection依存性の注入 DIはインタフェース定義しなくても十分実用的だし、むしろそっちの方が本質だよ、という話をします。C#や.NETを使っていますが、それに限らず普遍的な内容です。 インタフェースと実装に分けるとか無理。DIなど不要! 中堅社員のA氏は、「DIっていちいち実装とインタフェース分けないとダメなんでしょ?。さすがにやってられんわ」と言って頑なにDIを導入しようとしません。 DIはテスタビリティと併せて語られることが多かった為か、A氏は「注入するクラスは基本的にインタフェース定義しましょう」という記事ばかりを読んでいたのです。 インタフェースと実装を分けるとは、例えば次のような事です。 services.AddScoped

                              「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita
                            • TypeScriptのDIはどうすればいいの?

                              Angular's Future without NgModules: Architectures with Standalone Components

                                TypeScriptのDIはどうすればいいの?
                              • GoのDIライブラリgoogle/wireの使い方 - 一休.com Developers Blog

                                こんにちは。宿泊事業本部の宇都宮です。この記事では、GoのDIライブラリgoogle/wireの使い方を紹介します。 この記事は一休.com Advent Calendar 2019の9日目の記事です。 DIとは GoのDIライブラリ wireの使い方 Providerのエラーハンドリング Injectorのカスタマイズ Provider Set インタフェースのバインド 構造体のフィールドを参照する 細かな注意点 値とポインタの違いに注意 go runするときはwire_gen.goも一緒に おわりに DIとは DI(Dependency Injection, 依存性の注入)とは、あるオブジェクトが依存しているオブジェクトを自ら用意するのではなく、外部から渡してもらう(外部から注入する)というデザインパターンです。 例として、以下のように、監督の名前を渡すとその監督の映画を全てリストにし

                                  GoのDIライブラリgoogle/wireの使い方 - 一休.com Developers Blog
                                • TypeScript の DI 手法あれこれ - Object.create(null)

                                  TypeScript で DI (依存性注入) するためのライブラリを作ったんですが, それを紹介する前に既存手法をまとめておいた方が説明が楽だなと思ったのでまとめておきます. そもそも DI の目的とは, みたいなところは詳しく説明しないのであしからず. 手法の比較 DI なし Service Locator エフェクト Constructor Injection Setter Injection デコレータ typed-inject 次回予告 手法の比較 DI なし まずは DI を使わない場合を見ていきましょう. ここでは例として, 以下のような時刻と乱数を必要とするコンポーネント MyService が, 時刻と乱数を扱う機能をそれぞれ提供するコンポーネント Clock と Random に依存するような場合を考えます. type Clock = { getTime: () =>

                                    TypeScript の DI 手法あれこれ - Object.create(null)
                                  • ホロライブアプリを育て続けるために:MonoBehaviour分離編|カバー株式会社 公式note

                                    こんなきり!😈 カバー株式会社技術開発本部アバター配信チーム、プログラマーのKです。カバー株式会社では、ホロライブプロダクションのタレントがYouTube配信などで使用する「ホロライブアプリ」を内製で開発しています。私はその開発チームのリーダーをやっています。 ホロライブアプリは、プロダクションのタレントが日々の配信で使用するアプリです。タレントのやりたいことや、新しい表現を実現するため、日々アップデートを重ねています。絶え間ないアップデートを実現するためには、プログラムを変化に耐える構造に保っておくことが重要です。そうすることで、ホロライブアプリというプロダクトを育て続けることができるのです。 今回は、そんなホロライブアプリの持続的な開発を支える取り組みの一部をご紹介します。 記事後半はプログラミング経験のある方向けの難易度となっています。ご興味があればぜひお読みください! ホロライブ

                                      ホロライブアプリを育て続けるために:MonoBehaviour分離編|カバー株式会社 公式note
                                    • 【インターンレポート】Hiltによる効率的な依存性注入の実装

                                      LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog 初めまして。 この度、LINE LIVEクライアント開発チームにて技術就業型インターンシップに参加させていただきました、京都大学大学院1年の清水太朗です。 普段は”バイオロギング”という手法を用いて様々な生物(ドチザメやガゼルなど)の生態を明らかにする研究に取り組んでいます。 専門は情報学寄りではありませんが、メンターの方々の手厚いサポートのおかげで有意義な日々を送ることができました。 以下では、私が本インターンシップで取り組んだ、「Hiltによる効率的な依存性注入の実装」について紹介いたします。 背景・目的 本インターンではLINE LIVEのAndroidアプリの開発業務、特に「dagger.androidからHiltへの

                                        【インターンレポート】Hiltによる効率的な依存性注入の実装
                                      • Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog

                                        paild 社でお手伝いをしている yuki です。みなさんは Rust で DI をしようと思った際に困ったことはありませんか?この連載では、他のプログラミング言語で利用される DI パターンを参照しながら、Rust でそれを実装するためにはどのような工夫が必要かまでを検討します。中には Rust での実装が難しいパターンも出てくるかもしれません。その際は、なぜ難しいのかまでを検証します。 そこそこの規模のソフトウェアを実装するにあたって、ソフトウェアエンジニアが共通して利用する手法がいくつかあると思います。その中でも DI (Dependency Injection; 依存オブジェクト注入) は最もポピュラーな手法の一つであり、保守運用まできちんと耐えうるソフトウェアの設計をしたいとなったときに、まず真っ先に候補に上がる手法でしょう。 Rust ではこの DI をどのように行えばよいの

                                          Rust の DI を考える — Part 1: DI とは何だったか - paild tech blog
                                        • 「DI」と仲良くなる

                                          PHP カンファレンス北海道 2024 登壇資料 #phpcondo

                                            「DI」と仲良くなる
                                          • プロになるためのSpring上級知識 #jsug | ドクセル

                                            スライド概要 動画はこちら→ https://www.youtube.com/watch?v=c5ha8FmdNmw Spring Fest 2021の資料です。 DIコンテナなどSpringの基礎知識が既にある方を対象に、上級者へステップアップするために必要な発展的知識を解説します。 このセッションを聞けば、プロジェクトをリードできるエンジニアになれること間違いなし!かも!? ・DIコンテナの要点復習 ・同じ型のBeanが複数あるとどうなる? ・Java Configクラスを分割・統合するには? ・環境によって設定値やBeanを変更するには? ・Beanはどうやって作られる?

                                              プロになるためのSpring上級知識 #jsug | ドクセル
                                            • DIコンテナの実装を理解して、軽量 DI コンテナを自作しよう - Qiita

                                              なぜ DI コンテナを自作するのか 関心の分離がされているアプリケーションは変更に強く、良い設計と言えます。Dependency Injection(以下 DI) は関心の分離を実現する テクニックの 1 つとしてよく見られるパターンです。しかしクラス間の依存関係が増えれば増えるほど、注入する依存を作ることは困難になり、DI のコストは段々と膨らみます。そのようなとき、 依存を自動で解決し、欲しいインスタンスをすぐにとりだせる DI コンテナ は有効な解決手段となり得ます。 JavaScript/TypeScript においても DI コンテナを提供するライブラリが存在します。例えば、InversifyJS や tsyringe などが知られています。しかし既存の DI コンテナは、DI 以外の機能を持ち、また使い方も多岐にわたるため、知識の習得コストがかかります。そこで 必要最小限の機能

                                                DIコンテナの実装を理解して、軽量 DI コンテナを自作しよう - Qiita
                                              • google/wireを使った Goらしいアーキテクチャへの取り組み / gocon-fukuoka-2019-summer

                                                google/wireを使った Goらしいアーキテクチャへの取り組み / gocon-fukuoka-2019-summer

                                                  google/wireを使った Goらしいアーキテクチャへの取り組み / gocon-fukuoka-2019-summer
                                                • TypeScriptのDIとTsyringeについて

                                                  DIとは DI(Dependency Injection)とは、日本語訳で依存性の注入です。依存性の注入と聞くと、依存性という抽象的な概念を何かに注入するような印象を与えますが、依存性という言葉自体は依存対象を表します。 DIにおける依存対象は、オブジェクトのインスタンスです。つまり、Dependencyはオブジェクトのインスタンスを指します。そして、Injectionは外部から挿入するという意味を持つため、DIはオブジェクトのインスタンスを外部から挿入するという事になります。 DIのコード DIの対応前後のサンプルコードで比較を確認します。次のコードは、ブラウザのコンソールに「Saved yamada!」と出力します。実用性はないコードです。 DI対応前 import User from './user' export default class Database { saveUser(

                                                    TypeScriptのDIとTsyringeについて
                                                  • SpringBootで動的な条件をもとにDIしたい | フューチャー技術ブログ

                                                    SpringBootのDependency Injection(DI)は便利ですよね?利用する側にコンストラクタインジェクションやら、フィールドインジェクションやらセッターインジェクションやらの形式で書いておくと、DIコンテナが勝手に実行時に対象となるクラスをもってきてインスタンスの生成をしてくれますし、インスタンスのライフサイクルをインジェクションされるクラス側に書けます。 @Component public class UseDI { private final MyService myService; @Autowired public UseDI(MyService myService) { this.myService = myService; } } @Service public class MyService { public MyService() { System.ou

                                                    • TypeScriptの関数でDIパターン - id:anatooのブログ

                                                      Node.js+TypeScriptでバックエンドを書いてると、DIパターンを使いたい場面が結構ある。 いわゆるDIと言うとコンストラクタインジェクションなどクラスありきの方法が思い浮かぶけれども、実際には関数でもDIパターンを書くことができる。単純に関数のパラメータに依存を受け取ればよい。 // 依存を表現する型 interface Deps { appService: AppServiceInterface; } // DIパターンを記述する関数 function DoSomething({appService}: Deps, params: any) { ... } 依存を注入する場合には、引数を部分適用するbind()メソッドを使う。 // 依存を注入 const doSomething = DoSomething.bind(null, { appService: new MyAp

                                                        TypeScriptの関数でDIパターン - id:anatooのブログ
                                                      • .NET 系の DI コンテナ - Qiita

                                                        やっとコードよりの話になれる!!過去の 2 記事は言語ごとの事情や、その人の経験などで色々ちょっとずつ異なることがあるので「〇〇の場合は違う」とか「こういう側面もある」とか色々コメントしやすい感じだったのですが、そのおかげで初めての Qiita のデイリーで No1 取れました。やったね! ということで、自分の主戦場の C# での DI コンテナ事情について書いてみたいと思います。 Microsoft.Extensions.DependencyInjection ASP.NET Core などで何も考えないと使うことになる、事実上の標準の DI コンテナです。 非常にシンプルで DI コンテナとして最低限これくらいは持ってるだろうと思われる機能だけ持ってます。 例えば、以下のようなクラスがあったとします。 interface IMyService { void Greet(); } cla

                                                          .NET 系の DI コンテナ - Qiita
                                                        • DIコンテナのテスト以外での利点について (7/15修正) - Qiita

                                                          概要 Martin Fowler氏によってDependency Injection (以下DI) と DIコンテナについての概念が2004年に発表されて約16年。 Java だけでなく JS や Swift、C# と言った様々な言語に実装されてきて基本的な設計概念として定着してきた。 だが、DIコンテナの利点、なぜDIコンテナを使うのかという話になってくると テスト容易性をあげる、という話ばかりが多くそれ以外のメリットについて説明されることが少ないと感じてる。 Java開発を変える最新の設計思想「Dependency Injection(DI)」とは DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる そこでこの記事ではテスト容易性の向上以外のDIコンテナのメリットについて書いていきたいと思う。 まぁまぁ長いので面倒だったら結論を先に読むでいいと思う 当初、

                                                            DIコンテナのテスト以外での利点について (7/15修正) - Qiita
                                                          • [レポート] AWS LambdaとJavaのベストプラクティス #SVS403 #reinvent | DevelopersIO

                                                            SVS403 : Best practices for AWS Lambda and Java はじめに この記事はSVS403 Best practices for AWS Lambda and Javaのセッションレポートです。 スライドと動画はそれぞれ下記で公開されています。 スライド 動画 セッション概要 In this session, we follow a customer’s journey as they optimize an AWS Lambda function written in Java to meet their cold start time requirements. We start from a simple yet slow PoC and walk through all of the changes, tricks, and trade-off

                                                              [レポート] AWS LambdaとJavaのベストプラクティス #SVS403 #reinvent | DevelopersIO
                                                            • ゼロから理解するDependency Injection - inSmartBank

                                                              Dependency Injection (DI) とは、オブジェクトに必要な依存関係を外から注入する設計パターンです。 本記事ではiOSアプリの実装をテーマに、DIがなぜ必要なのか、さらにはDI Containerとは何を解決するためにあるのかについて具体的な実装例をもとに解説します。 ※ 本記事は iOS Test Night #12 にて発表した内容を書き起こしたものとなっております。 speakerdeck.com Dependency Injection 依存を内部で初期化する書き方 依存性逆転の原則に従った書き方 DI Containerの基本 Daggerに学ぶ依存のライフタイム管理 SwiftUIアプリにおけるDI Containerの実装例 DI Containerの実装 Viewの実装 まとめ Dependency Injection Dependency Inject

                                                                ゼロから理解するDependency Injection - inSmartBank
                                                              • Unity界最速DIコンテナVContainer が速い理由の解説 - @hadashiA

                                                                拙作の Unity用DIライブラリ、VContainer の v0.9.0 では、ILコードをコンパイル時に生成することによるメタプログラミングの高速化が足されました。 Unity用DIライブラリ VContainer の 0.9.0 を撒きました。 コンパイル時IL生成による高速化機能をマージしました。(オプション) IL生成でさらに 当社比 3-6倍くらいは速くなりました。これできっと Unity用 DIコンテナでは完全に最速になったんじゃないかな-と思います。https://t.co/YkHXXgP7nD pic.twitter.com/NFUxvLVzKd— ハダシA (@hadashiA) 2020年7月26日 この機能をつかうと、Zenjectのデフォルトとの比較でディタ上では50倍くらい、IL2CPPでは20倍〜くらい速い結果になっています。 また、グラフのとおり VCont

                                                                  Unity界最速DIコンテナVContainer が速い理由の解説 - @hadashiA
                                                                • Introduction to Dependency Injection 「DI」の整理とそのメリット

                                                                  2022年11月に行われた、Dependency Injectionに関する社内共有会の資料です。 DIという言葉の整理と実用例を紹介しています。

                                                                    Introduction to Dependency Injection 「DI」の整理とそのメリット
                                                                  • Scala ZIOをバッチ処理で使ってみた

                                                                    2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「Scala ZIOをバッチ処理で使ってみた」に登壇したのは、リチャード伊真岡氏。講演資料はこちら 副作用を含むコードで関数型のテクニックを利用 リチャード伊真岡氏:「Scala ZIOをバッチ処理で使ってみた」という発表をします。リチャード伊真岡と申します。マーベリック株式会社というところで働いています。 今日一番大事なことを最初に言おうと思います。発表の内容はどうでもいいので、私の名前だけ覚えていってもらえば満足

                                                                      Scala ZIOをバッチ処理で使ってみた
                                                                    • TSyringeの使い方とコンテナ登録方法ごとの評価タイミングについて | DevelopersIO

                                                                      吉川@広島です。 TypeScriptのDIコンテナライブラリはInversifyJSとTSyringeが有名ですが、より機能がミニマムと思われる後者に興味が出たため使ってみました。 https://github.com/microsoft/tsyringe 一番メジャーなInversifyに比べるとTSyringeはやや情報が少ないのと、公式のREADMEもかなりあっさりとしていて使い始める際に戸惑いやすいと思いました。 本記事では、 基本的な使い方 コンテナに登録したクラスのインスタンスをいつ生成しているか を確認したので紹介します。 後者が気になった理由は、DIコンテナへの登録は遅延評価方式に寄せた方がアプリケーション起動時のパフォーマンスに有利に働きやすいと考えるためです。 環境 TSyringe v4.4.0 使い方 import 'reflect-metadata' impor

                                                                        TSyringeの使い方とコンテナ登録方法ごとの評価タイミングについて | DevelopersIO
                                                                      • Dagger Hilt (DevFest 2020 資料) - Qiita

                                                                        DevFestの資料の記事版です。ステップごとにサンプルアプリの差分付きで説明します。 なぜDependency Injectionが必要なのか から始め、Dagger Hiltの説明、実践的なプラクティスまで説明していきます! Dependency Injection(DI)とはなにか なぜDIが必要なのか DI、ちょっと難しいイメージありますが、そもそもなんで必要なんでしょうか? 作っているのが動画再生するアプリでVideoPlayerというクラスがあるとしましょう。 VideoPlayerのクラスの中にデータベースやcodecなどがハードコードされています。 コード: https://github.com/takahirom/hilt-sample-app/commit/8c36602aaa4e27d8f10c81e2808f0ff452f1c8a4#diff-bbc9d28d8bc

                                                                          Dagger Hilt (DevFest 2020 資料) - Qiita
                                                                        • CakePHPにDIコンテナが入った(る)と聞いて見学に行ってきました - 大好き!にちようび

                                                                          CakePHPのDICいれよーぜPRがマージされとった🎉🎉 (タイミング的にcakefestに間に合わせたかな?) ちゃんと内容追うぞーーー Add a dependency injection container by markstory · Pull Request #14945 · cakephp/cakephphttps://t.co/GSgNp1WBNR— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2020年10月1日 ということがありまして、20201005現在で「4.next」に取り込まれているスティタスです! ※ 現行の4.1のパッチバージョンについてはmasterに向けられるので、 4.nextは「次のマイナーバージョン」である4.2を指します 「CakePHPにDIコンテナが入ったらどんな感じに使われるんだろう?」というのは個人的にかねてより興味範

                                                                            CakePHPにDIコンテナが入った(る)と聞いて見学に行ってきました - 大好き!にちようび
                                                                          • DI(Dependency Injection)のメリットを理解する

                                                                            @Injectable() export class Test1Service { getName() { return { name: "john" }; } } @Controller("test1") export class Test1Controller { constructor(private readonly test1Service: Test1Service) {} @Get() getName() { return this.test1Service.getName(); } } Nest CLI でプロジェクトを作成したときに生成されるコードはこんな感じになっていると思います。 service での処理を controller で呼び出すことができているくらいにしか思いません。 このサービスは必ずしも、DI しないと使えないわけではなく、通常のクラスなので、インスタ

                                                                              DI(Dependency Injection)のメリットを理解する
                                                                            • PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築する - Qiita

                                                                              PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築するPythonFlaskDIPython3CleanArchitecture 業務でPythonを使ってウェブアプリケーションを実装する際、レイヤー毎に関心の分離を行いながら開発するために、Clean Architectureを導入することになりました。 チームメンバーへのナレッジ共有を兼ねて、漸進的型付けとDependency Injectionを用いながら、テスタビリティの伴ったアプリケーションを開発するためのプラクティスをまとめました。 今回はPythonを用いたサンプルを目的としているため、Clean Architectureの解説は簡易に済ませます。 (The Clean Architectureより引用) Clean Architectureはロバート・C・マーティンによって2

                                                                                PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築する - Qiita
                                                                              • 関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog

                                                                                こんにちは、中途三年目の堀越です。 近頃、Scalaのコミュニティにおいて Functional Programming による実装テクニックを紹介する記事や発表を見たり聞いたりすることは珍しいことではなくなってきました。弊社にもたくさんの関数型ニキ*1が在籍しており、わたしも日々影響を受けています。 ということで、本日はわたしが所属するチームでの日々の Scala 開発における取組みや戦略をサンプルコード*2と合わせて紹介していきます。 高カインド型によるEffect型の抽象化 私達はドメイン駆動設計を実践しています。なのでドメインロジックはドメインの関心事に集中できるのが理想です。ドメイン層を抽象化し、特定の実行環境や技術的関心事に依存しない戦略として 高カインド型 を用いてEffect型を抽象化します。 インターフェース定義 例えば Repository のインターフェイスのは以下の

                                                                                  関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog
                                                                                • Dependency Injectionでやりたいことはモジュールimport - きしだのHatena

                                                                                  Dependency Injection(DI)、最近のフレームワークには欠かせない気がする機能になってますね。 そしてDIの説明をみると「依存性の注入」みたいなことが書いてあって、ようわからんになりがちです。 実態としては高機能なimportなので、あまり難しいことを考えなくていいような気がします。 たとえば、こんな感じのMyServiceクラスがあってDIコンテナに管理させるとします。 @Component class MyService { void method() { } } そして、MyServiceを使うMyControllerがあるとします。 @Component class MyController { @Inject MyService service; void hello() { service.method(); } } これって、実際のところMyServiceの

                                                                                    Dependency Injectionでやりたいことはモジュールimport - きしだのHatena

                                                                                  新着記事