並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 104件

新着順 人気順

aopの検索結果41 - 80 件 / 104件

  • 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
    • GoのDIツールwireで知っておくと良いこと - Carpe Diem

      概要 christina04.hatenablog.com こういった設計のようにレイヤ間の依存関係を抽象化していると、DIの初期化処理が段々冗長になっていきます。 google/wireはそういったDIの初期化を自動的にやってくれるコード生成ツールです。 今回はwireを使う上で知っていると便利なところをまとめます。 環境 golang 1.13.5 wire 0.4.0 wireの使い方知らない人 以下のチュートリアルが非常に分かりやすいので一度やってみてください。 github.com 実務で知っておくと良いポイント Injectorの用意の手順 小さい依存関係であれば頭の中で把握できてサクッとかけますが、巨大なリポジトリになってくると何が何に依存しているか分からなくなってきます。 そういった場合まず最終的に用意するInjectorを生成するProviderだけwire.Buildす

        GoのDIツールwireで知っておくと良いこと - Carpe Diem
      • Visual Studio Code + Docker + Remote DevelopmentでTomcat上のWebアプリを超簡単にデバッグ | SIOS Tech. Lab

        こんにちは、Visual Studio Codeを愛してやまないサイオステクノロジー技術部 武井(Twitter:@noriyukitakei)です。今回は、Tomcat上のWebアプリケーションをVisual Studio Codeを使ってデバッグしたいと思います。しかも従来の方法とは違い、ローカルPCの環境を全く汚さない方法でトライします。 Tomcat上で動くWebアプリのデバッグ Tomcat上で動作するWebアプリケーションのIDEといえばEclipseですよね。でもVisual Studio Codeでも、それ出来ます!! まずは「従来のやり方」をご紹介します。その後で、ローカルPCの環境を汚さない「すごいやり方」をご紹介します。 従来のやり方 Visual Studio Codeには「Tomcat for Java」という便利なプラグインがあり、これを使うことで、Tomcat

          Visual Studio Code + Docker + Remote DevelopmentでTomcat上のWebアプリを超簡単にデバッグ | SIOS Tech. Lab
        • Laravelで始める依存性の注入(DI) - Qiita

          「依存性の注入」(Dependency injection) をご存知でしょうか。あるクラスが依存している別のオブジェクトを外部から渡すことで、クラス間の依存度を下げる設計パターンです。 Laravelには サービスコンテナ と呼ばれる機能が備わっており、依存性注入を簡単に扱うことができます。本記事で架空のコードのリファクタリングを通して、Laravelにおけるサービスコンテナと依存性注入の仕組みを理解しましょう。 サンプルユースケース 「あるURLにアクセスすると、ダイスを2回振って出た目を合計した数値を返す」 まずは動くように作る 手始めに、とにかく動くコードを書いてみましょう。 class DiceController extends Controller { public function rollDouble() { return mt_rand(1, 6) + mt_rand(

            Laravelで始める依存性の注入(DI) - Qiita
          • VContainer v0.0.1 - Unity用の速くて軽いDIライブラリをリリースしました - @hadashiA

            github.com Unity (ゲームエンジン) で動作する自作DIライブラリを公開しました。 特徴は、 速くて薄くて軽い GCゴミがとても少ない コードファーストでスコープを切れる機能 (Autofac の影響) MonoBehaviourに依存しないカスタムクラスをUnityのライフサイクルに割り込ませる (Zenjectの影響甚大) 独自の PlayerLoopSystem のサブシステムを利用しているので、不特定タイミングでつくったスコープの IInitializable とかも動作する。 コンテナがイミュータブル なのです。 Zenject と比較すると、メソッドチェインをつなげるとなんでも宣言できる(Fluent API) は最低限に、使い方の迷いようがなく透明度の高いAPI を心掛けています。 APIの比較表をつくりました Scopeの親子関係はある程度(ていうかかなり)

              VContainer v0.0.1 - Unity用の速くて軽いDIライブラリをリリースしました - @hadashiA
            • Rust で競技プログラミングの作問支援ツールを作った話 - Qiita

              $ cd problem-directory/ $ ls -l total 8 -rw-r--r-- 1 koba_mac xxx 315 11 26 01:38 creo.toml drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 etc drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 in drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 out drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 sol drwxr-xr-x 2 koba_mac xxx 64 11 26 01:38 task creo.toml が唯一の設定ファイルです。リポジトリの sample_aplusb を参考に、creo.toml に然るべき行を追加したり、然るべきディレクトリに

                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 *
                • Zenjectを使うときに気を付けていること - imog

                  このエントリはUnity Advent Calendar 20194日目のやつです。 Zenjectは便利ですが、実際に扱っている人の知見やtipsがまだまだ世に出回ってない印象です。APIの使用方法も欲しいですが実際に使ってる人たちがどういうお気持ちで使っているのかというのはどんどん出回って欲しいので、今回は僕がZenjectを使う際にチョットだけ気を付けていることを列挙します。 そんなにテクニカルなことではなく心持ちみたいなのが多めです。 これが正しい!というのは中々決められないと思うので、1つの考え方として参考になれば幸いです。 基本的にコンストラクタインジェクションを行う intefaceをBindする primitiveな型をBindしない ListをBindしない 手動でもDIできるようにする Validateを使う DiContainerを持ち歩かない 積極的にSubCont

                    Zenjectを使うときに気を付けていること - imog
                  • 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
                      • 依存性注入(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)について理解する
                        • デコレータを使わずコールバック関数に依存性を注入できるDIヘルパーをたった15行のTypeScriptで作った話 - Qiita

                          一般的にTypeScriptでDIをしようとするとクラス+デコレータを避けて通れません しかし個人的には関数型っぽくコーディングするのが好きなのでクラスもデコレータも使わず関数だけでDIする方法を考えました たった15行なので解説の前にコードを紹介します type Deps<T extends Record<string, any>> = { [P in keyof T]: T[P] extends { _velona: boolean } ? (...args: Parameters<T[P]>) => ReturnType<T[P]> : T[P] } export const depend = <T extends Record<string, any>, U extends any[], V>( dependencies: T, cb: (deps: Deps<T>, ...arg

                            デコレータを使わずコールバック関数に依存性を注入できるDIヘルパーをたった15行のTypeScriptで作った話 - 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
                              • Hilt

                                Hilt provides a standard way to incorporate Dagger dependency injection into an Android application. The goals of Hilt are: To simplify Dagger-related infrastructure for Android apps. To create a standard set of components and scopes to ease setup, readability/understanding, and code sharing between apps. To provide an easy way to provision different bindings to various build types (e.g. testing,

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

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

                                              Every annotation has a point 🔍! Check out these cheat sheets to understand how Dagger interprets them and the code it generates for you. Explanations about the generated code and Dagger annotations can be found in the cheat sheets as comments. For more information about dependency injection, why you might use Dagger in your Android app, and how to use it, check out the official Android documentat

                                                Dagger code generation cheat sheets
                                              • DIと単体テストと私: 緩やかな依存関係がもたらすメリット

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

                                                  DIと単体テストと私: 緩やかな依存関係がもたらすメリット
                                                • PHPの各種フレームワークにおけるDIについて - hikyaru-suzuki’s blog

                                                  qiita.com QualiArts Advent Calendar 2019、2日目担当の鈴木光です。 タイトルの通り、今回はPHPの各種フレームワークにおけるDIについて書いていこうと思います。 Dependency Injection(DI) あるクラスが依存するオブジェクトをコンストラクタ、メソッド、セッターなどの引数から注入することでクラスから依存関係を減らすという手法です。テストや仕様変更に強くなるという特徴があり、10年以上前から用いられてきたデザインパターンとなります。 ちなみにDIの説明のためにこちらの記事をとても参考にさせていただきました。 やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something DIとは DI自体はそ

                                                    PHPの各種フレームワークにおけるDIについて - hikyaru-suzuki’s blog
                                                  • 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
                                                    • あなたも使ってるDIから理解するDIパターン - Qiita

                                                      こう言うと「私はDIコンテナーなんて使っていない!アンチDIだ!」とおっしゃる人もいるかもしれません。 まぁ落ち着いてください。今回は、DIコンテナーは登場せず、Dependency Injection(以後DI)パターンのお話です。 DIパターンとは、つぎのようなものだと私は考えています。 「依存性を外部から注入することで、ふるまいを変更する設計パターン」 詳細はコードを見つつ解説します。コードはC#で記載していますが、だれでも読めるレベルです。たぶん言語が違えど似たようなコードは誰もが書いたことがあるはずです。 ということで、さっそく見ていきましょう! あなたも使っているDIパターン お題 「何らかのリソースから文字列を読み取り、コンソールに出力する」 もうネタはバレたかもしれません。 ひとつめのDI さて、まずはローカルストレージ上のテキストファイルを読み込んでコンソールに出力してみ

                                                        あなたも使ってるDIから理解するDIパターン - 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」をリリースしました
                                                        • 段階的に理解する Dependency Injection - Qiita

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

                                                            段階的に理解する Dependency Injection - Qiita
                                                          • A Dependency Injection Showdown

                                                            Choosing a dependency framework for your Android app is a big decision, it’s not something that you can easily replace later on. Dependency injection spans all layers of your app so it’s important that the DI framework that you choose meets all your requirements and that includes testing. I am going to compare 4 popular frameworks: Dagger, Koin, Kodein, and Toothpick. It’s interesting that all of

                                                              A Dependency Injection Showdown
                                                            • Scala cake pattern

                                                              BackgroundIn this post I’m gonna discuss about scala cake pattern, its usage and some real world examples of cake pattern. One of the main usage of cake pattern is for dependency injection(there are other usages as well). As an alternative for cake pattern we can use Reader Monad for the dependency injection. I have discussed about using Reader Monad for dependency injection in another post. Follo

                                                                Scala cake pattern
                                                              • どうしても Eloquent Model をモックしないといけないあなたへ

                                                                はじめに Laravel を使っていると避けては通れない ORM の Eloquent. データベースをオブジェクト指向っぽく扱えるため非常に便利で,複雑なリレーションも簡単に扱えちゃう魔法の道具です. 例えば,主キーでモデルを取得するには以下のように書けば簡単に DB からデータが取得できます. 簡単ですね😁 さて,Laravel を使ったプロジェクトに限らず,プロダクトを開発する中で「テストコード」を書くことがありますが,テストを書く際にしばしば モック を使うことがあります. モック(オブジェクト)は,テスト対象となるクラスが依存する外部クラスの振る舞いを定義するもので,本来使われるはずのオブジェクトの代わりに差し込むことで,テスト結果が外部のロジックによって左右されるのを防ぐことができます. Laravel 使って開発をしているなら, Mockery というモックライブラリを使っ

                                                                  どうしても Eloquent Model をモックしないといけないあなたへ
                                                                • CakePHP4.1に導入されるかもしれないDIコンテナ「phpleague/container」を試す - Qiita

                                                                  本記事は CakePHP Advent Calendar 2019 の19日目のエントリーになります。 はじめに 先日、待ちに待ったCakePHP4.0.0が 正式リリース されましたね そして、気が早いのですが4.0系がリリースされたということは、次の大きなアップデートは4.1系のリリースということになります。(本当に気が早くてごめんなさい) そんなこともあり早速 4.1のロードマップ をチラ見してみたのですが Application の欄に以下のような記述があり、何やら面白そうな変化が起きそうだなと感じました。 Experimental support for PSR11 compliant dependency injection container. Potential libraries that we could use are: phpleague/container - h

                                                                    CakePHP4.1に導入されるかもしれないDIコンテナ「phpleague/container」を試す - Qiita
                                                                  • DI(Dependency Injection) の解説 - Qiita

                                                                    DI とは何か DI を利用するメリット・デメリット Autofacを利用した例 Autofacのさらなる機能 その他 DI とは何か Wikipediaでは以下のように説明されている。 コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターンである。 言い換えると あるコンポーネントAが利用している別のコンポーネントBを外部から注入することにより、コンポーネントAがコンポーネントBの実装との依存関係を排除するデザインパターン。 となる。 例 まずは DIを使わない場合 ///<summary>メインプログラム</summary> class Program{ public void Main(){ var client = new FooClient(); client.Execute(); } } ///<summ

                                                                      DI(Dependency Injection) の解説 - Qiita
                                                                    • 「AOP(アスペクト指向プログラミング)」とは?Springフレームワークで使ってみよう|Udemy メディア

                                                                      アプリ開発 2024/05/20 「AOP(アスペクト指向プログラミング)」とは?Springフレームワークで使ってみよう 「AOP」とは、アスペクト指向プログラミングのことです。有名なWebフレームワークであるSpringでも使うことができるため、「実際にどのような手法なのかあらためてチェックしておきたい」という方も多いのではないでしょうか?今回は、AOPの基本概要やメリット、Springフレームワークを使用した実例について解説します。 AOP:Aspect Oriented Programming(アスペクト指向プログラミング)とは? 「AOP」とは、Aspect Oriented Programmingの略称で、直訳するとアスペクト指向プログラミングのことです。プログラミングに用いられる手法の概念を意味します。 具体的には、あらゆるオブジェクトに散在する共通処理を抜き出し、それを一つ

                                                                        「AOP(アスペクト指向プログラミング)」とは?Springフレームワークで使ってみよう|Udemy メディア
                                                                      • [.NET]これがないとDIなんてやってられない!アセンブリスキャンによるサービスの自動登録 - Qiita

                                                                        目的 ASP.NETにおけるDI(Dependency Injection)時に、ConfigureServicesで個々の型をひとつひとつ登録しているときりがないし、これが開発のボトルネックになりかねません。 そこで必要となるのが、アセンブリスキャンによるサービスの自動登録です。AutoFacなどのDIコンテナでは標準搭載していますが、MicrosoftのDIコンテナでは今のところ未搭載です。 また、例えAutoFacを使ったとしても、「C#でアセンブリを取得するのはあなたが考えるより難しい(Getting Assemblies Is Harder Than You Think In C#)」でも書かれているとおり、スキャン対象のアセンブリを取得するのはなかなか面倒な作業でもあります。 この記事では、アセンブリをスキャンして登録対象の型を自動的にDIにサービス登録する為の適切な方法につい

                                                                          [.NET]これがないとDIなんてやってられない!アセンブリスキャンによるサービスの自動登録 - Qiita
                                                                        • 【Swift】Bastard Injection の問題点、あるいは依存性逆転の原則について。または needle というDIコンテナの紹介。 - Qiita

                                                                          class FeatureA { func foo(): String { let b = FeatureB() // Use `FeatureB` return b.bar() + "!!" } } class FeatureB { ... func bar(): String { // do something } } ここでは、FeatureA クラスが FeatureB クラスを利用している。こういう時、 FeatureA は FeatureB に依存していると表現される。FeatureB が存在しなければ、FeatureA は利用できないからだ。 前述のコードは問題なく動作するが、FeatureA のユニットテストをしたい時に問題が起こる。FeatureB をテスト用のモックに差し替えられないのだ。 だから、私達は Protocol という道具を使って、FeatureB を差し替

                                                                            【Swift】Bastard Injection の問題点、あるいは依存性逆転の原則について。または needle というDIコンテナの紹介。 - Qiita
                                                                          • 【C#】Dependency Injection(依存性の注入)とは - Annulus Games

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

                                                                              【C#】Dependency Injection(依存性の注入)とは - Annulus Games
                                                                            • 今こそ知りたいSpring DI×AOP / spring-di-aop-for-every-developers

                                                                              動画はこちら→ https://www.youtube.com/watch?v=LGtdpsmMfvI #jsug Spring Fest 2020での発表資料です。 Springの根幹機能はDIとAOPです。しかし、普通に使っているだけだと「@Autowiredを付ければ代入されるんでしょ?」「@Transactionalを付ければ割り込みされるんでしょ?」くらいの曖昧な理解に陥りがちです。 このセッションでは、DIやAOPの重要機能や仕組みを丁寧に解説します。Springの根幹を理解して、初級者から中級者へ、中級者から上級者へステップアップしましょう! ※発表では無かった内容を[おまけ]として加えました

                                                                                今こそ知りたいSpring DI×AOP / spring-di-aop-for-every-developers
                                                                              • 5.7 サービスコンテナ Laravel

                                                                                イントロダクションIntroduction Laravelのサービスコンテナは、クラス間の依存を管理する強力な管理ツールです。依存注入というおかしな言葉は主に「コンストラクターか、ある場合にはセッターメソッドを利用し、あるクラスをそれらに依存しているクラスへ外部から注入する」という意味で使われます。The Laravel service container is a powerful tool for managing class dependencies and performing dependency injection. Dependency injection is a fancy phrase that essentially means this: class dependencies are "injected" into the class via the constru

                                                                                • Pimpleでシンプルに正しくDIを理解する

                                                                                  オブジェクト指向でソフトウェアを実装していると、オブジェクトの生成に一連の手続きが必要なものがでてきます。このような生成に関する手続きがあちこちのソースコードへ散在すると、望ましくない状況になることは想像に難くないでしょう。この問題に対処するために、Simple FactoryやFactory Methodといったデザインパターンがあり、オブジェクトの生成に関する手続きや関連オブジェクトも含めたオブジェクトの構成(オブジェクトコンストラクション)に関する知識は1箇所にまとめるということが定石となっています。 しかし、単にファクトリーを導入するだけだと、オブジェクトの構成処理は分離・隠蔽できても、利用オブジェクトがファクトリー自体に依存してしまうことになります。このような試行錯誤の歴史から登場したのがDependency Injection(依存性の注入)パターンです。Dependency

                                                                                    Pimpleでシンプルに正しくDIを理解する

                                                                                  新着記事