並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 97 件 / 97件

新着順 人気順

DIの検索結果81 - 97 件 / 97件

  • C#と.NET 8を活用したコンソールアプリケーションにおける依存性注入の実装 - Qiita

    依存性注入(DI:Dependency Injection)は、ソフトウェア開発においてコンポーネント間の結合度を下げ、テストやメンテナンスを容易にするための重要なデザインパターンです。C#と.NET 8を用いたコンソールアプリケーションでの「依存性注入」の実装について説明します。 依存性注入コンテナの設定 .NET Core および .NET5以降では、Microsoft.Extensions.DependencyInjectionを使用して依存性注入をサポートします。これにより、アプリケーションの様々な部分で必要とされる依存関係を管理しやすくなります。

      C#と.NET 8を活用したコンソールアプリケーションにおける依存性注入の実装 - Qiita
    • 段階的に理解する Dependency Injection - Qiita

      はじめに Dependency Injection (以下 "DI" と略す) とは、コンポーネントの依存関係にまつわる諸問題をいい感じに解決してくれる機構である。「コンポーネントの依存関係」とは、例えば一般的なレイヤードアーキテクチャでの Controller → Service → Repository といった上位層から下位層につながるような関係のことを指す。「いい感じに解決」とは、開発者が手動で頑張らなくてもフレームワークが良きに計らってくれることを意味する。 モダンな Java アプリケーション開発において、DI はほぼ必須の機構である。筆者は主にバックエンドを主戦場としてアプリケーションの開発と運用に携わっているが、Web アプリケーションであろうがコマンドラインから起動するバッチであろうが、Java でアプリケーションを開発するのであれば使い捨てを除くほとんどの場合で DI

        段階的に理解する Dependency Injection - Qiita
      • GitHub - samber/do: ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.

        ⚙️ A dependency injection toolkit based on Go 1.18+ Generics. This library implements the Dependency Injection design pattern. It may replace the uber/dig fantastic package in simple Go projects. samber/do uses Go 1.18+ generics and therefore offers a typesafe API. See also: samber/lo: A Lodash-style Go library based on Go 1.18+ Generics samber/mo: Monads based on Go 1.18+ Generics (Option, Result

          GitHub - samber/do: ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
        • [C#] ServiceCollection でDI(依存性注入)を実現する方法

          DI(依存性注入) とは 依存性の注入 – Wikipedia Dependency Injection は日本語で依存性注入、あるいは略して DI と呼ばれます。 DIはコンポーネント間における依存関係を薄くすることで、単体テストをやりやすくしたり、他機能への依存度を低下させてコンポーネント化を促進する狙いがあります。 この記事ではC#で ServiceCollection を使用したDIの実現方法をまとめます。 ServiceCollection で DI(依存性注入) 前述の通りテストしやすいコードや保守性、拡張性の高いコードを書くためには DI(依存性注入) を使うとよいです。 C#だと ServiceCollection クラスが提供されており、これを使って実現可能です。 ServiceCollection クラス (Microsoft.Extensions.Dependency

            [C#] ServiceCollection でDI(依存性注入)を実現する方法
          • 【Unity】MicrosoftによるDIの基礎実装Microsoft.Extensions.DependencyInjectionをUnityで使う - LIGHT11

            UnityにMicrosoft.Extensions.DependencyInjectionを導入する方法と、ServiceCollectionの基本的な使い方についてまとめました。 はじめに インストール 基本的な使い方 サービスの有効期間 参考 Unity2020.1.10 (Api Compatibility Level : .NET Standard 2.0) はじめに 本記事ではUnity(ゲームエンジンの方)にMicrosoft.Extensions.DependencyInjectionを導入する方法とその使い方についてまとめます。 www.nuget.org UnityにはVContainer(下記)のような素晴らしいDIライブラリがあるので実際にこれを使う機会はないかもしれませんが、 DIのコアな部分のみの実装となるためDIの基本的なコンセプトと使い方を学ぶためには良いと

              【Unity】MicrosoftによるDIの基礎実装Microsoft.Extensions.DependencyInjectionをUnityで使う - LIGHT11
            • DIの必要性もしくは言語的欠陥 - keroxpのScrapbox

              DI (Dependency Injection) について知っている人と、いない人がいると思うkeroxp.icon2020/10/18

                DIの必要性もしくは言語的欠陥 - keroxpのScrapbox
              • 依存関係の挿入のガイドライン - .NET

                この記事では、.NET アプリケーションで依存関係の挿入を実装するための一般的なガイドラインとベスト プラクティスについて説明します。 依存関係の挿入のためのサービスの設計 依存関係の挿入のためのサービスの設計時には: ステートフル、静的クラス、およびメンバーは避けてください。 代わりにシングルトン サービスを使用するようにアプリを設計し、グローバルな状態を作成しないようにします。 サービス内部で依存関係のあるクラスを直接インスタンス化することを回避します。 直接のインスタンス化は、コードの固有の実装につながります。 サービスを、小さく、十分に要素に分割された、テストしやすいものにします。 クラスに多数の挿入される依存関係がある場合、それは、クラスの責任が多すぎて、単一責任の原則 (SRP) に違反することを示している可能性があります。 責任の一部を新しいクラスに移動することにより、クラス

                  依存関係の挿入のガイドライン - .NET
                • https://www.amazon.co.jp/dp/4839983062

                  • GitHub - dry-python/returns: Make your functions return something meaningful, typed, and safe!

                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                      GitHub - dry-python/returns: Make your functions return something meaningful, typed, and safe!
                    • DI(依存性の注入)の良いところ - やる気がストロングZERO

                      ぼやっとは理解してたけど、この記事を見て知識が定着した気がする。 DI・DIコンテナ、ちゃんと理解出来てる・・? - Qiita この記事ではDIとDIコンテナとサービスロケータについて触れてたけど、 ここではDIについてだけ改めて自分でまとめてみる。 サンプルケース 例えばこんなコードがある。 ※phpぽいけど疑似コードです。 class Human { public void function __construct(string name) { this->brain = new Database() # DBアクセスライブラリ this->name = name } # 覚える public void function memolize(string keyword, string some_string){ this->brain.save(keyword, some_strin

                        DI(依存性の注入)の良いところ - やる気がストロングZERO
                      • Deep dive of Microsoft.Extensions.DependencyInjection in Japanese

                        MicrosoftExtensionsDependencyInjectionDeepDive.md Microsoft.Extensions.DependencyInjection Deep Dive そんなに深くない気がしますが。Microsoft.Extensions.DependencyInjection の DI についてざっくりまとめた記事です。なお、長いので、Microsoft.Extensions.DependencyInjection を M.E.DI と略します。 例によって、公式ドキュメント にすべて書いてある、はずですが、ここでは少し別の観点でまとめてみます。また、ドキュメントに書いてない(と思う)内部実装についてもいくつか書いてあります。 使い方 IServiceCollection の拡張メソッドを使用して、フレームワークやランタイムが提供する IServiceC

                          Deep dive of Microsoft.Extensions.DependencyInjection in Japanese
                        • 【C#】Dependency Injection(依存性の注入)とは - Annulus Games

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

                            【C#】Dependency Injection(依存性の注入)とは - Annulus Games
                          • 怠惰な人の為の最小Zenject入門 - Qiita

                            概要 良いZenject/Extenjectの入門は ZenjectチョットワカルBook https://booth.pm/ja/items/1520608 にまとまっているので、それを読んで「Zenject/Extenject良いじゃん、今開発中のプロジェクトに入れよう」 と言う人の為の 最小の手間で、そこそこ効果が見込めるZenject/Extenject導入 です。 インストールとかは https://github.com/svermeulen/Extenject/releases ここからどうぞ。です。 今回は簡単な2ステップ式の導入講座です。 ステップ1:どのシーンからも使いそうな機構があるなら、ProjectContextを作る Zenject/Extenjectを含むDIコンテナの仕組みは「A,B,CというクラスはDIコンテナ経由で使うよ」 と定義する部分と「このDというク

                              怠惰な人の為の最小Zenject入門 - Qiita
                            • [C#]DIコンテナのスコープ範囲を制御する - Qiita

                              概要 ASP.NET Coreのコントローラから呼び出しているScopedサービスのクラスをバッチ処理からも呼び出そうとしたらエラーになった 原因はDIコンテナのスコープ範囲(ASP.NET Coreではリクエスト単位)がバッチ処理だと違ってくる為だった ASP.NET Coreと同様に、処理の呼び出し毎にDIコンテナのスコープを生成するようにしたらうまくいった 内容 次のようなASP.NET Coreのコントローラがあり、その中でMyLogicのDoWorkAsyncメソッドを呼び出している。 MyLogicには様々なScopedサービスが注入されており、DIコンテナを利用してコントローラに注入される。 ASP.NET Coreではサービスのスコープ範囲は「リクエスト単位」である為、DoWorkAsyncの呼び出しも基本、1回毎に異なるスコープで呼び出されることになる。 public c

                                [C#]DIコンテナのスコープ範囲を制御する - Qiita
                              • RubyではテストしやすくするためにDIを使わない

                                結論 Rubyでは、動的にクラスに生えているメソッドを書き換えられるため、テスタビリティを上げるためにDIを使わない。 個人的にはストラテジーパターン使いたいときぐらいしか、DI使わないんじゃないかなーって思っている。 Rubyでテスタビリティ向上のためにDIを使わない理由 DIを使う理由は、結合度の低下、テスタビリティの向上が主な理由だと思います。 一般的な言語の場合には、引数にインターフェースを指定して、インターフェースに依存するようにすることでテスト時にモックオブジェクトを注入できるようにすると思います。しかし、Rubyの場合には、動的にクラスに生えているメソッドを書き換えれるためテスタビリティを上げるためにDIをするのは意味がないです。 Rubyでは、rspecを用いて下記のように書くだけでクラスのメソッドを書き換えることができます。これによりテスト実行時にはクラスのメソッドの内容

                                • Dependency Injection: Python

                                  OverviewDependency Injection(DI) is a software engineering technique for defining the dependencies among objects. Basically, the process of supplying a resource that a given piece of code requires. The required resource is called dependency. There are various classes and objects defined when writing code. Most of the time, these classes depend on other classes in order to fulfill their intended pu

                                    Dependency Injection: Python
                                  • DI: 依存性逆転の原則

                                    モチベーション クリーンアーキテクチャやSOLIDを勉強して、記事書いたり個人開発や業務で活かしたりしてましたが、正直DIは上っ面しか理解できてませんでした。 しかし、業務や個人開発を通してようやくDIの威力が身に染みてわかるようになってきました。 というわけでDIについてまとめることにしました。 こちらと少し被るかも。今回はどちらかというと概念にフォーカスして進めていきます。 依存関係逆転の原則とは SOLIDの原則(The Dependency Inversion Principle)のDにあたります。個人的にSOLIDの中で最も印象的、重要で、難しいと思っています。 名前が非常に非直感的ですが、簡単に言ってしまえば抽象に依存しましょうということです。 具象(実装)に依存するとしんどいことが沢山あるのです。 補足 DIについてクリーンアーキテクチャでは、以下のように補足説明がなされてい

                                      DI: 依存性逆転の原則

                                    新着記事