並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 67件

新着順 人気順

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

DIに関するエントリは67件あります。 programmingプログラミング開発 などが関連タグです。 人気エントリには 『維新 コロナの法律上扱い“季節性インフルエンザと同程度に” | NHKニュース』などがあります。
  • 維新 コロナの法律上扱い“季節性インフルエンザと同程度に” | NHKニュース

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

      維新 コロナの法律上扱い“季節性インフルエンザと同程度に” | NHKニュース
    • 📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing

      なぜ依存を注入するのか DIの原理・原則とパターン 著者: Steven van Deursen, Mark Seemann 訳者: 須田智之 表紙には.NETやC#の文字はないのですが、前の版は"Dependency Injection in .NET"で.NETを前提した本のようでした。 ただ、はじめにで 本書では、.NETとC#を用いて、依存注入に関する用語や指針を包括的に紹介し、描写しているのですが、本書の価値が.NETの外の世界にも届くことを望んでいます。 とありました。 RustのDIでなにか活かせる教えを期待して、読んでみました。 第1部 依存注入 (Dependency Injection: DI) の役割第1章 依存注入 (Dependency Injection: DI) の基本: 依存注入とは何なのか? なぜ使うのか? どのように使うのか?まず、保守容易性(maint

        📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing
      • 新規開発を始めるときにやるべきこと

        Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)

          新規開発を始めるときにやるべきこと
        • 「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
          • DIすると何がいいんだっけ

            はじめに こんにちは、majimaccho です。 読者の皆さんは最近、DI(Dependency Injection:依存の注入)してますでしょうか。 DI は素晴らしい仕組みである一方で全く DI しない Ruby on Rails のようなフレームワークが支配的な時代もありました。 それでも DI は今でも有用な考え方として残っている中で、DI にどう向き合っていけばいいのでしょうか。自分なりに考えをまとめるために調べてみたので、同じような疑問を持っている方に参考になれば幸いです。 TL;DR 単純にコード量が増加することに加え、DI の仕組み自体が複雑さを内包しているので開発生産性が低くなることがあります。そのため、DI は言語によっては局所的かつ限定的に利用する方が良い場合があります。 いくつかの工夫によって DI が持つメリットを享受しつつ、不要な複雑さを排除して、シンプルかつ

              DIすると何がいいんだっけ
            • なぜ 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(依存性逆転の原則)を守っていない話
                • なぜDependency Injectionなのか? ~関心の分離と疎結合~

                  本稿は「アーキテクチャを突き詰める Online Conference」における発表「なぜDependency Injectionなのか? ~関心の分離と疎結合~」の登壇原稿となります。 発表時の動画アーカイブは後日公開されたタイミングでリンクを追加いたします。 また、本稿のサンプルコードとPower PointはGitHubで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 https://github.com/nuitsjp/WhyDependencyInjection というわけで、本稿の目指すゴールはこちら。 今日は、この場にいる皆さんが「なぜDependency Injectionを利用するのか?」ということを、理解いただくのが本日のゴールとなります。 というわけで本

                    なぜDependency Injectionなのか? ~関心の分離と疎結合~
                  • 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
                    • 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.AddSc

                          「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita
                        • 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
                            • 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
                              • 【インターンレポート】Hiltによる効率的な依存性注入の実装

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

                                  【インターンレポート】Hiltによる効率的な依存性注入の実装
                                • 「DI」と仲良くなる

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

                                    「DI」と仲良くなる
                                  • TypeScriptによるDependency Injection入門:DIコンテナを自作して内部構造を理解する

                                    はじめに 私は初めてDependency Injection(依存性注入)という概念に出会ったのは、NestJSのドキュメントを読んでいるときでした。その時、providerや@Injectable()は何なのか?といった素朴な疑問を感じましたが、ドキュメントを読んでもすぐには理解できず、そのまま一度放置しました。 最近、業務で触れているAPIサービスではNestJSではなく、InversifyJSというライブラリを使用してDependency Injectionを実装しています。これを機に、DIについてもう一度学び直すことにしました。そして、自分が調べて理解したことをまとめて共有したいと思います。 この記事では、以下のような疑問に答える形で情報をまとめています: Dependency Injectionは何?なぜ使うのか? Dependency Injectionはどのように実装されてい

                                      TypeScriptによるDependency Injection入門:DIコンテナを自作して内部構造を理解する
                                    • プロになるためのSpring上級知識 #jsug | ドクセル

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

                                        プロになるためのSpring上級知識 #jsug | ドクセル
                                      • 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.o

                                          • ゼロから理解する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」の整理とそのメリット
                                                • 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)のメリットを理解する
                                                        • 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
                                                          • Rust で競技プログラミングの作問支援ツールを作った話 - Qiita

                                                            creo.toml が唯一の設定ファイルです。リポジトリの sample_aplusb を参考に、creo.toml に然るべき行を追加したり、然るべきディレクトリにファイルを追加することで、動かすことができます。 (ドキュメントに書かれている creo add ... は現状では動きません!) 設計 言語・使用ライブラリ 開発言語は Rust でした。コマンドラインツールを書くことができ、ある程度の規模のコードを書くことができる言語として Go や Rust など様々な言語がありますが、以下の理由で Rust を選びました。1 個人的に慣れ親しんでいる言語であった Rust で DI を試したかった Go での実装がすでにあり (https://github.com/camypaper/spica) 、それとの差別化を図りたかった (記事: 作問ヘルパーツールvirgo,spica) ま

                                                              Rust で競技プログラミングの作問支援ツールを作った話 - Qiita
                                                            • Spring Bootの@Componentと@Beanの違い - grep Tips *

                                                              まずは結論から SpringのDIコンテナに管理してもらいたいクラスが、自分で作成しているクラスなのか、それとも外部のライブラリ(サードパーティのライブラリ)のクラスなのかによって、@Componentを使うか@Beanを使うか変わる。 @Componentとは @Compnentは、Spring BootでWebのMVCアプリを作成するときに使用する@Controller, @Service, @Repositoryと同様に、SpringのDIコンテナに管理させて@AutowireなどでDIできるようにしたいクラスにつける。 @Controller等はMVCの文脈上で特化したクラスにつけられるのに対して、@Componentはそれら以外の特化していないクラス全般に付与するだけで、基本的には同じ。 @Beanとは @Beanも同様にSpringのDIコンテナに管理させたいものにつける点は同

                                                                Spring Bootの@Componentと@Beanの違い - grep Tips *
                                                              • 依存性注入(Dependency Injection: DI)について理解する

                                                                株式会社TOKIUMでAndroidエンジニアをしている渡邊(@error96num)です。ここ数年は"injection"というとワクチン注射が思い浮かびますが、本記事ではアプリ開発において欠かせないinjection、依存性注入(Dependency Injection: DI)という概念について解説します。 対象読者 以下のような方を想定しています。 依存性注入(Dependency Injection: DI)に馴染みがなく、ざっくり理解したい DIフレームワークを使ったアプリ開発をしているが、基礎にたちかえってDIの目的やメリットについて今一度理解したい 依存性注入 (Dependency Injection: DI) Android公式のドキュメント[1]にも登場するCar, Engineクラスを使った例で、Kotlinでの実装を交えてDIについて解説します。 多くの場合、クラ

                                                                  依存性注入(Dependency Injection: DI)について理解する
                                                                • Python で DI(Dependency Injection) を実現するフレームワークの Injector を使ってみる | DevelopersIO

                                                                  Python で DI(Dependency Injection) を実現するフレームワークの Injector を使ってみる Python コードの品質向上のために、DI(Dependency Injection) フレームワークの injector を導入してみました。 はじめに こんにちは、筧( @TakaakiKakei )です。 所属しているチームでは、開発言語として python をよく使っています。 そして最近、コード品質向上のために injector を導入しました。 alecthomas/injector: Python dependency injection framework, inspired by Guice injector は python で DI を実現するフレームワークです。 私は DI 初心者で、同僚のコードを読み解きながら理解を進めている状況です。

                                                                    Python で DI(Dependency Injection) を実現するフレームワークの Injector を使ってみる | DevelopersIO
                                                                  • Minimal Cake Pattern 再考 - Qiita

                                                                    かつて Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 という記事が公開されたとき、ぶっちゃけ私は 100 日も経てば忘れられているだろうと思っていました。私の予想に反して 2020 年現在でも Twitter では Minimal Cake Pattern への言及がたまに見られ、中にはこのパターンが(あるいは DI そのものが)難しいと感じる人もいるようなので、今一度このパターンについて整理してみようと思います。 依存性注入とは Minimal Cake Pattern は 依存性注入 (Dependency Injection, DI) を実現するためのデザインパターンです。ですのでまずは DI についておさらいしましょう。理解済みであればこの節は飛ばして構いません。 例として、時間の計測を行う

                                                                      Minimal Cake Pattern 再考 - Qiita
                                                                    • 大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd

                                                                      CEDEC2021 「大規模Unityゲーム開発の設計事例」の資料です。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - セッションの内容 現在開発中タ…

                                                                        大規模Unityゲーム開発の設計事例 〜ドメイン駆動設計とDIコンテナを導入した一年を振り返る〜 / cedec2021-ddd
                                                                      • google/wireを使ってGoでDI(dependency injection)してみる | ビジネスとIT活用に役立つ情報(株式会社アーティス)

                                                                        フローを把握する wireを使ってのDIは、以下のフローになります。 「DIしたい対象を生成する関数」を生成する関数を定義する wireコマンドで、上記のファイルから「DIしたい対象を生成する関数」をジェネレートする その関数を利用する 他の言語のDIコンテナと比べると、すこしフローが違うので最初は戸惑うかもしれません。 DIコンテナ(とその設定)を、メタ的に自動生成するイメージに近いかと思います。 チュートリアルで動きを確認する こちらの公式のチュートリアルを動かしながら動作を確認していきます。 https://github.com/google/wire/blob/master/_tutorial/README.md まずは、手動でDIするコードで動きを理解しておきます。(予習は大事です) main.go を作りその中に以下のコードを書き込みます。 package main impor

                                                                          google/wireを使ってGoでDI(dependency injection)してみる | ビジネスとIT活用に役立つ情報(株式会社アーティス)
                                                                        • Unity専用最速DIコンテナVContainer と、UnityにおけるDIの勘所 - hadashiA

                                                                          Gotanda.unity #16 2021/1/13 自己紹介 Twitter @hadashiA Github @hadashiA ソフトウェアエンジニア (フリーランス) 最近つくっとるライブラリ hadashiA/VContainer hadashiA/UniTaskPubSub 最近のひとり個人制作 ゲーム 思い出回収委員会 (仮) Webサービス ここは夜です(仮) 最近の仕事 なんか色々やってる [OSS VContainer] https://vcontainer.hadashikick.jp Unity専用 の DI コンテナ Unity に DI ? → この話の後半で 特徴 低オーバヘッド Unity専用DI界で圧倒的な実行速度 GCゴミが非常に少ない / コードサイズがとても小さい 必要十分な機能を厳選 目的を見失った滅多打ちのDIを非推奨にしていくスタイル 透明性

                                                                            Unity専用最速DIコンテナVContainer と、UnityにおけるDIの勘所 - hadashiA
                                                                          • 【Unity】DIコンテナVContainerの使い方まとめ - LIGHT11

                                                                            UnityでDIコンテナVContainerの使う方法についてまとめました。 はじめに インストール シンプルな(Service Collectionのような)IoC Containerとして使ってみる VContainerの基本的な使い方 IInitializable以外のライフサイクルイベント 生存期間を管理するLifetime LifetimeScopeの親子関係の設定方法 LifetimeScopeのInspectorから 子のシーンやPrefabを読みこんで設定する コードベースで子を生成する IContainerBuilderに登録を行う方法まとめ 色んな依存性注入方法 基本的なインジェクション 該当する型のインスタンスを全て注入 IObjectResolverを注入する 参考 Unity2020.1.10 VContainer 1.4.0 はじめに VContainerはUn

                                                                              【Unity】DIコンテナVContainerの使い方まとめ - LIGHT11
                                                                            • 「依存性逆転の原則」と「依存性の注入」を完全に理解した - Qiita

                                                                              はじめに 本記事は Swift/Kotlin愛好会 Advent Calendar 2021 の17日目の記事です。 空いていたので埋めました。 「依存性逆転の原則」と「依存性の注入」を完全に理解したので説明します。 「依存性逆転の原則(DIP)」とは? 英語で「Dependency Inversion Principle」といい、「DIP」と略すことが多いです。 SOLID の5原則の1つです。 従来のレイヤーパターン 例えば MVP アーキテクチャのViewとPresenterで考えてみます。 ViewとPresenterの間には以下の特徴があります。 View(UI)はPresenterのことを知るべきではない PresenterはViewからメッセージを受け取り、それに基づいて処理を行い、Viewに反映する これは「ViewはPresenterに依存せず、PresenterはVie

                                                                                「依存性逆転の原則」と「依存性の注入」を完全に理解した - Qiita
                                                                              • Dependency Injection: 依存性の注入 のお役立ち例 - Qiita

                                                                                #はじめに 「Dependency Injection: 依存性の注入」 って、とっても分かりづらくないですか? 色んなところに解説記事があって、Qiitaでも検索すると沢山見つかりますが筆者は文章を読んだだけでは全然分かりませんでした。 「直接呼び出すのではなく、インターフェースを介して実装する?」「制御の反転(inversion of control)? 中から外ではなく外から中?」「サンプルを真似てみたけど複雑な実装している。これ何が嬉しいの?」そんな疑問ばかりでした。言葉は知っているけど使えないってやつです。 ようやく理解できたのは、実際に「あれ?困ったぞ」となって「ここでDIを使うと便利なのか!」と実感してからでした。 「ここで便利なんだ!」や「こういう時に使うといいんだ!」という使い所が分かると応用が効き、これが本当に理解することなんだなと思いましたので、それを書いてみたいと思

                                                                                  Dependency Injection: 依存性の注入 のお役立ち例 - Qiita
                                                                                • WPFをGeneric Host上で実行するためのライブラリ「Wpf.Extensions.Hosting」をリリースしました

                                                                                  現在新しくリリースされる.NET向けの素晴らしいライブラリの多くは、Generic Hostを前提として提供されるようになってきていると思います。そしてWPFアプリケーションからそれらを利用するためには、WPFアプリケーションもGeneric Host上で動作させる必要があります。 WPFアプリケーションをGeneric Hostで動かすことは、基本的な動作であればそれほど難しいわけではありません。しかしGeneric Hostのすべてを享受するためには、それなりに工夫が必要です。 そこでWpf.Extensions.Hostingをリリースしました。 Github NuGet Wpf.Extensions.Hostingは、WPFアプリケーションをGeneric Host上で動作させるためのライブラリです。 Wpf.Extensions.Hostingでは、.NET6ライクにGeneri

                                                                                    WPFをGeneric Host上で実行するためのライブラリ「Wpf.Extensions.Hosting」をリリースしました

                                                                                  新着記事