並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 59件

新着順 人気順

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

DIに関するエントリは59件あります。 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
      • 新規開発を始めるときにやるべきこと

        Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure

          新規開発を始めるときにやるべきこと
        • 「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はインタフェース定義しなくても十分実用的だし、むしろそっちの方が本質だよ、という話をします。C#や.NETを使っていますが、それに限らず普遍的な内容です。 インタフェースと実装に分けるとか無理。DIなど不要! 中堅社員のA氏は、**「DIっていちいち実装とインタフェース分けないとダメなんでしょ?。さすがにやってられんわ」**と言って頑なにDIを導入しようとしません。 DIはテスタビリティと併せて語られることが多かった為か、A氏は「注入するクラスは基本的にインタフェース定義しましょう」という記事ばかりを読んでいたのです。 インタフェースと実装を分けるとは、例えば次のような事です。 services.AddScoped<IMessageStore, MessageStore>(); public interface IMessageStore { string GetMessage(str

                          「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による効率的な依存性注入の実装
                                • TypeScriptによるDependency Injection入門:DIコンテナを自作して内部構造を理解する

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

                                    TypeScriptによるDependency Injection入門:DIコンテナを自作して内部構造を理解する
                                  • 「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 | ドクセル
                                      • 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について
                                        • google/wire がアーカイブされたけどどうすればいいの?

                                          (追記: 2025/08/22) 2025年8月7日に google/wire リポジトリはアーカイブ化されましたが、その後 8月21日に例外的に PR (#432) がマージされました。これは Go 1.25 でビルドが壊れる不具合への対応で、golang.org/x/tools のバージョンを更新する最小限の修正です。2025/08/22の執筆時点でアーカイブが解除されていますが、今後再びアーカイブされる可能性はあると思います。 ユーザーとしては Wire を Go 1.25 でも安全に利用できるようになったことが大きな意味を持ちます。 背景 Go の DI ツールでおなじみの google/wire が 2025/8/7 にアーカイブされ read only となりました。 この記事の立場 wire がアーカイブされても、既存プロダクトが困ることは基本的にありません。 wire はツ

                                            google/wire がアーカイブされたけどどうすればいいの?
                                          • 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

                                              SpringBootで動的な条件をもとにDIしたい | フューチャー技術ブログ
                                            • ゼロから理解する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
                                              • 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
                                                  • FastAPIのテストコードを書いてDIの重要性を知った話

                                                    きっかけ こんにちは、ランサーズでエンジニアをしている岡田です。 当時は開発スピード優先でテストコードなんて二の次。 DIの概念は知りつつも、「DIを意識した開発コードって?」「DIを意識すると何が良いの?」と分からないままでした。 それでも、FastAPI+sqlalchemyの開発では、DBを使う時に大抵エンドポイントの引数にdb: Session = Depends(get_db)が出てきます。 「どうしてエンドポイントの内部ではなく引数で書くのか?」といまいち納得しないまま、FastAPIの書き方に従っておまじないのようにDependsを書いてました。 そして、開発コードも増えて「ずっと手動でテストしてるわけにもいかないし、そろそろテストコードを書いて品質担保しないとな」と重い腰を上げた時、とうとうDIの重要性とDependsの真価を実感することになりました。 そもそもDI(Dep

                                                      FastAPIのテストコードを書いて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
                                                        • 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

                                                              各階層の役割 以下が各階層の役割です。 handlers プログラムのエントリーポイントを定義 modules 外部からのパラメータの注入や、外部操作するインスタンス生成を定義 services slack などのサービスを定義 use_cases ビジネスロジックを定義 なお、従来の階層構造では、modules 層の役割を、use_cases 層が担っていました。 DI(Dependency Injection) とは 解釈の一つとして、「オブジェクト注入」と言えます。 依存元クラスが具象クラスに依存しているのを、抽象クラスに依存させることで、コンポーネント間の依存関係を削除します。 これによって、コードの変更をしやすくなったり、前述のようにテストが書きやすくなるソフトウェアパターンです。 以下の資料が読み物としてわかりやすかったので、リンクを置いておきます。 Python で Depe

                                                                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
                                                                  • 【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
                                                                      • 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」をリリースしました
                                                                        • なぜ依存を注入するのか DIの原理・原則とパターン (Compass Booksシリーズ) | Steven van Deursen, Mark Seemann, 須田智之 |本 | 通販 | Amazon

                                                                            なぜ依存を注入するのか DIの原理・原則とパターン (Compass Booksシリーズ) | Steven van Deursen, Mark Seemann, 須田智之 |本 | 通販 | Amazon
                                                                          • JavaのDIコンテナは言語機能の補完でありinjectはimport - きしだのHatena

                                                                            というブログを書こうとしたら、すでにあった。 Dependency Injectionでやりたいことはモジュールimport - きしだのHatena 依存性の注入って要するにimportなので。 まず、DIコンテナを実装してみるとどういうものかがわかりやすくなります。 このときの結論はこんな感じ。 DIコンテナというのは、Javaのリフレクションやバイトコード操作、ThreadLocalといった、あまり美しくない部分を覆い隠してきれいなコードでアプリケーションを構築するための仕組み 作って理解するDIコンテナ - きしだのHatena 言語機能の補完なので、他の言語で同様に便利とは限らないわけですね。 わかりやすい例として、DIコンテナの現実的に便利なのはAOPを利用した宣言的トランザクションやログです。これはAspectJのように言語機能としてAOPが用意されていれば不要になります。

                                                                              JavaのDIコンテナは言語機能の補完でありinjectはimport - きしだのHatena
                                                                            • DIと単体テストと私: 緩やかな依存関係がもたらすメリット

                                                                              はじめに この記事は、アルサーガパートナーズ アドベントカレンダー2023、番外編の記事です。 「25日間のリレー」を成功に導いた素敵な記事たちがカレンダーに集まっていますので、よろしければ下記のリンクからご覧ください! この記事について 実務における最初の壁: DI 未経験からエンジニアとして実務に携わるようになると、誰しも「独学でやっていた時とは違うな」と感じることがたくさんあると思います。 私のサーバーサイドエンジニアとしてのキャリアはLaravelによる開発からスタートしたのですが、そんな私にとっての最初の「自己学習と実務の違い」の1つは、DI(Dependency Injection, 依存性注入) の概念が実装に利用されていること、でした。 すでに実装されている先輩方のコードを読めば「どう書けばいいか」はある程度すぐに把握できたものの、概念の理解を進めようとしても抽象的で難解な

                                                                                DIと単体テストと私: 緩やかな依存関係がもたらすメリット
                                                                              • Windows フォームアプリケーションで MessagePipe を利用する - Qiita

                                                                                このドキュメントの内容 先日リリースされた MessagePipe をWindowsフォームアプリケーションで利用する方法を説明します。 Windowsフォームアプリケーションでは DI が利用されるケースは多くはないため、DI に関する記事が少ないのが現状です。 MessagePipe そのものの説明ではなく、MessagePipe を利用するために DI 環境を整える方法になります。 プロジェクトを作成する MessagePipe がサポートするフレームワークは .NETStandard2.0 または .NET5.0 です。プロジェクトテンプレートは Windows Forms App (.NET) を使用するとよいでしょう。 MessagePipe と関連するライブラリをインストールする Nuget で次のパッケージをインストールしてください。 MessapePipe Microso

                                                                                  Windows フォームアプリケーションで MessagePipe を利用する - Qiita
                                                                                • 【C#】Dependency Injection(依存性の注入)とは - Annulus Games

                                                                                  今回の記事はDependency Injection(依存性の注入)について。 設計についての学習を始めると「依存性の逆転」「Dependency Injection(依存性の注入)」「DIコンテナ」など言葉を耳にする機会が増えてくると思います。適切にDIを扱えるようになると設計の柔軟性が飛躍的に向上するため、是非とも習得したい知識です。 今回は「そもそもDependency Injection(依存性の注入)とは何なのか」という話から始め、サービスロケータやDIコンテナについてまで解説していきたいと思います。 またこの記事ではSOLID原則(特に依存性の逆転)等の知識を前提として進めるため、設計何もわからん!という方は以下の記事から読むことをお勧めします。記事の後半で依存性の逆転について触れているため、その辺りを押さえてからDIについて学ぶと良いでしょう。

                                                                                    【C#】Dependency Injection(依存性の注入)とは - Annulus Games

                                                                                  新着記事