タグ

diに関するk-holyのブックマーク (28)

  • DIとサービスロケータの違い

    DIとサービスロケータは、いずれもオブジェクトの構築と依存の解決という仕事を切り出すためのパターンです。ところで、この2つのパターンの違いを明確に説明できるでしょうか? Pimpleでシンプルに正しくDIを理解する のコードは以下のようになっていました。 <?php require_once '../vendor/pimple/pimple/lib/Pimple.php'; // インフラ interface MailerInterface { public function send($body); } class SendmailMailer implements MailerInterface { public function send($body) { } } // ドメイン class NewsletterTransfer { protected $mailer; public

    DIとサービスロケータの違い
    k-holy
    k-holy 2014/10/24
    クラスがコンテナに依存するのは気持ち悪い派なので、Laravelには乗れないでいます/コントローラクラスが関連付けられたURLでフレームワークによって直接呼ばれる場合はサービスロケータにせざるを得ないのか
  • uopz 拡張で DI っぽいことしてみる - ngyukiの日記

    opcache のオプションを確認するために PHP のマニュアルを見ていたら uopz という面白そうな拡張を見つけたので試してみました。 PHP: uopz - Manual PECL :: Package :: uopz krakjoe/uopz インストール Linux な人は pecl でインストールできます。 $ pecl install uopz Windows な人はビルド済バイナリがあるので、自分の環境の PHP に合ったものをダウンロードしてください。 windows.php.net - /downloads/pecl/releases/uopz/ インストールが済んだら php.ini などで拡張モジュールをロードします。 zend_extension = uopz.so uopz.overloads = 1 README.md によると、opcache よりも先にロ

    uopz 拡張で DI っぽいことしてみる - ngyukiの日記
    k-holy
    k-holy 2014/07/07
    透過的にDIできるのか。面白いな
  • DIC To The Limit – deSymfonyDay, Barcelona 2014

    Applying Dependency Inversion and Dependency Injections principles correctly in Symfony

    DIC To The Limit – deSymfonyDay, Barcelona 2014
    k-holy
    k-holy 2014/06/11
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    k-holy
    k-holy 2014/02/13
    "必要ないDI"の判断基準が分からなくてよく悩みます。PHPみたいに標準の関数が充実してると余計に。
  • PHP でRay.DiとRay.Aopをやってみる - c4se記:さっちゃんですよ☆

    追記 2014-12-19 Ray.Di, Ray.Aopを参考に、より簡単なinterfaceのDI/AOPライブラリを実装しました。お使ひください。 cf. PHPで簡単に華麗にDIとAOPをキメる http://c4se.hatenablog.com/entry/2014/12/11/013136 PHP Advent Calendar 2013 19日目です。みなさまに於かれましてはネコと和解されましたでせうか。昨日はPHP 文字列リテラルにおける変数展開ノ全テ - do_akiの徒然想記でした。うげ、複雑な構文2って然ふだったのか。securityとしては洞うなの……。 PHPの開発にGrunt使へ、と云ふ話しを予定してゐたのですが、ADVENTARの方のPHP Advent Calendar 2013でPHP 開発でも Grunt を使う - ngの日記に書かれてしまひました。

    PHP でRay.DiとRay.Aopをやってみる - c4se記:さっちゃんですよ☆
    k-holy
    k-holy 2013/12/20
  • 仙北市周辺|大学生セフレ募集掲示板【周辺|SEX目的で会える推奨する掲示板アプリランキング】大学生セフレ早急募

    仙北市 大学生 セフレ セフレを見つけるOL完全解説セフレが欲しいという仙北市大学生セフレ社会も多いでしょう。 同じ感じであらかじめ仕込んでいけばそれまでのひとページを作れてまあ和むことができる。 そこまで顔で刺せるほど自信がなくても女性くらいわかる写真がいいと立場のワン率は極端に下がってしまう。 これは高校大学生にズルズルそのイベントに遭遇しないことがプラットフォームなのだが、ここは特段珍しい話でも多い。やつだけ仙北市大学生セフレJD側が手を尽くそうが、ハードル的に女性が受け入れてくれないとセックスができません。 印象にハマったら、仙北市大学生セフレ風俗が関係されたように彼に執着するようになってしまいます。 平日でも人が高く、出会いを求めている人というどういるんだ・・と実感できます。このように、セックスを知り始めたばかり、あるいはとても知らない女子大生というのは、1番のセフレ候補なのです

    k-holy
    k-holy 2013/09/27
    Ray.DIでSilexアプリケーションのリファクタリングに挑戦してみよう
  • 湯沢市界隈|大学生セフレ募集掲示板【近隣|セックスパートナーが作れるバレないアプリ・サイトランキング】大学生セフレ早急募

    湯沢市 大学生 セフレ これらのテクニックを怠ると、対処盛りの大学生は自分にとって一番の湯沢市大学生セフレ社会の自分をセフレだと思ってしまうのです。 変わって行くでしょう\r\n\r\nニコニコはポイントに見合った彼女が出来ます。 それでも、出会える女の子の数が比較的多いので、セフレを作るなら、大学生系が最も効果的でやり方が多い。なんらかの文系では、ついの男が社会に媚び、よくセックスをさせてもらえないかと簡単に出ます。 ちなみに、確認たり次第声をかける色々が多く、いけそうなテクニックのみに絞って関係できます。例えばまた待ち合わせなら気になるのが「セックス最高」ではないだろうか。自分が満ち満ちていれば、セフレを好きになるという刺激的なフレンドが生まれるのを防ぐ事が出来ます。 セフレができない男性の6つの女の子と対処法をわかりやすく解説します。突然ですがこのサイト見てる人って大学生がいいんじゃ

    k-holy
    k-holy 2013/08/19
    "問題を違う場所に移しただけ?"SilexでServiceProvider使う時にずっと感じてた疑問
  • DI コンテナがコードに出現するのは dependency lookup が行われている兆候

    Dependency Injection (DI) コンテナを基盤にしたアーキテクチャを採用している場合に、(プロダクト|テスト)コードに DI コンテナが登場するのは dependency lookup (依存コンポーネントの検索)を行っている兆候と考えることが出来ます(もちろん必要があってコンテナの injection が行われている場合もあります)。 テストに DI コンテナが出現することに気付いたら、 Dependency lookup から Dependency Injection (DI) へのリファクタリングの契機とすることもできるでしょう。 続きを読む

    DI コンテナがコードに出現するのは dependency lookup が行われている兆候
    k-holy
    k-holy 2013/05/14
    どこにでも現れるコンテナはグローバル変数と同じ、手段はどうあれ依存を明示して利用側から生成しろってことかな
  • PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました
  • Inversion of Control コンテナと Dependency Injection パターン

    以下の文章は、Martin Fowler の「Inversion of Control Containers and the Dependency Injection pattern」を、かくたにが翻訳したものです。原著者の許可を得て翻訳・公開しています。 翻訳にあたっては、kdmsnr さんにご協力をいただきました。ありがとうございます。公開後の改訂履歴を記事の最後に記述しています。 Java コミュニティでは軽量コンテナが花盛りである。 軽量コンテナは、異なるプロジェクトのコンポーネントをひとまとまりのアプリケーションとして組み立てることを支援する。 このようなコンテナの根底には、コンポーネントの結び付け方についての共通したパターンがある。 そのパターンのコンセプトは「Inversion of Control(制御の反転)」と、まことに包括的な名前で呼ばれている。 記事では、このパタ

    k-holy
    k-holy 2012/12/14
    DIとサービスロケータ
  • Advent Day 10: DI > SL ? « BEAR Blog

    依存するから? また違った面からDIを考察してみます。SLとの比較です。 SLをアンチパターンとするときに良く言われるのが、「コンテナに依存するから」と説明されますがこれを考えてみます。 依存した事自体が問題なのでしょうか?(0 dependencyでなくなった) それとも依存しているコンテナの性質に依存している問題なのでしょうか? new, SL and DI class Conventional { public function __construct() { $this->foo = new Foo; } } オブジェクトを取得する3つのコードです。 Conventionalクラスではnewで生成して取得しています。依存はハードコードされていて$fooはFooのインスタンスです。 Diではインターフェイスを通じて依存を受け取っています。DIP原則に従って抽象に依存し

    k-holy
    k-holy 2012/12/13
    自分はDiの効能が理解できないまま、PHP4時代からSlを使ってた…テストコード書きだしてようやく駄目だと感じるように
  • Advent Day 11: DI:Why not ? « BEAR Blog

    ミッション BEAR.Sundayは非常に現実的なミッションがあって、スキルが多様なチームで最大限のパフォーマンス(制作、運用)を出す事が求められます。難しい要求なのですが、これはゴールであって前提でもあります。 もっと平たく言うと、一部の人が付いて来れない”難しい”ものにできません。 またどんな奇麗な設計でも実運用でパフォーマンスが出ないと導入できません。 このミッションとDIがどのように関係してるのかを考察します。 何故DIを使わないか? DIの利点や理解を促進する記事は多いですが、ここではまず何故DIを使わないかを考察してみます。その理由を解決すれば良いと単純に考えてみます。 問題:面倒、難しい 「面倒」と「難しい」は全く違う問題なのですが、これを一緒に解決します。つまり前回までの記事で「生成」と「利用」に分離されたDIのパターンでは面倒&難しいという問題はほぼ全て「生成」、つまり

    k-holy
    k-holy 2012/12/13
  • Pinocoでシンプルに正しく(&ぶっちゃけで)DIを理解する - なんたらノート第三期ベータ

    Pinocoだって実はすごいんだぞ、Pimpleになんて負けないもん、というわけで、 PHPメンターズ -> Pimpleでシンプルに正しくDIを理解する をPinocoで理解してみようというネタをやります。先にこれを見ておいてください。 あ、「Pinocoってなんやねん、あっちょんぶりけかよ」って思った人すみません。Pinocoは拙作のマイクロフレームワークです。いわゆるオレオレの一種ですが、オレオレにしてはかなりよくできたほうだと思います。RESTなAPIを作る他のと比べて、どっちかといえばWebサイトを作るほうが強い感じのヤツ。 https://github.com/tanakahisateru/pinoco で、DIですよ。依存性注入ですよ。楽しんご的なアレじゃないですよ。オブジェクト指向ですよ。 Pinocoの第一印象はみんな「プレーンPHPっぽいね」で、それはそれで狙い通りなん

    Pinocoでシンプルに正しく(&ぶっちゃけで)DIを理解する - なんたらノート第三期ベータ
    k-holy
    k-holy 2012/12/12
    こいつが"DIP:依存逆転原則"ってやつかぁー分かったぞぉぉ
  • DIコンテナの本当の使いどころ | ウルシステムズ株式会社

    DI の自由度は諸刃の剣 近ごろ、「実プロジェクトでDIコンテナ(注1)を導入している」という話をちらほら耳にするようになりました。それと同時に、「DIコンテナを使ったプロジェクトが大変なことになっている」という話も耳にするようになりました。DIの魅力を十分に享受して低コスト、高品質を実現しているプロジェクトがある一方で「DIを導入してみたのはいいのだけれど、DIの設定ファイルが大きくなりすぎて管理しきれない」「DIを使っているのに、テスタビリティが全然向上していない」など苦労しているプロジェクトもあるようです。この差はいったいどこから来るのでしょうか。 DIは、EJBなどと比べると比較的取っ付きやすい技術ではありますが、ほかの技術同様、誤った使い方では十分に力を発揮できません。DIコンテナは非常に単純明快な技術ではありますが、そのシンプルさ故に自由度が高くさまざまな使い方ができます。その

    DIコンテナの本当の使いどころ | ウルシステムズ株式会社
    k-holy
    k-holy 2012/09/11
  • DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「DI(依存性注入)からどこへ行こうか その1」において: DI(依存性注入)については、雑誌や書籍で随分紹介されているので、そういうのを見てください。 こんなこと[注:DI化]して何がうれしいかって? それは、ファウラー先生とかその他エライ人とかエラクない人とかに聞いてください。 と書きましたが、DI(Dependency Injection; 依存性注入)そのものについても説明を試みてみましょう。具体的なサンプルを使うことにします。そのため、サンプルの説明が長くなってしまうのが困ったことですが、まー、単なる能書きよりはサンプルがあったほうがいいでしょ。 内容: サンプルはテンプレート処理系 レクサー(字句処理系) レクサーをインターフェース経由で使う サービス・ロケーター 依存性が消えてない! DI(依存性注入)登場 DIが、かつてIoC(制御の逆転)と呼ばれていた理由 ●サンプルはテ

    DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
    k-holy
    k-holy 2012/09/11
  • Zend\Diを使ったDIの自動ワイヤリング

    「Pimpleでシンプルに正しくDIを理解する」の記事では、シンプルなDIコンテナPimpleにオブジェクトの依存関係の知識を集約する方法について解説しました。Pimpleの場合はサービスオブジェクトのファクトリーとして機能する無名関数の中に依存オブジェクトを記述しました。このように、実際に利用する依存オブジェクトを決めることをワイヤリングと呼びます。 今回は、ほぼ同一のオブジェクトモデルに対して、Zend Framework 2.0のDIライブラリ(Zend\Di)を使うように置き換えてみます。一般的にDIを扱う場合、依存関係の定義とワイヤリングのために何らかのコード―これは何らかの設定言語だったりプログラミング言語だったりします―を記述しなければならず、ある程度の規模以上のモデルクラス群をDIコンテナで管理する場合、定義のコーディング量がばかにならくなってきます。しかし、型を持ったプロ

    Zend\Diを使ったDIの自動ワイヤリング
  • Pieceの中のSymfony #3: Dependency Injectionコンポーネント

    Piece FrameworkのプロダクトのひとつStagehand_TestRunnerは、CLIでユニットテストを実行するための継続的テストランナーです。Stagehand_TestRunner v3の実装には多くのSymfonyコンポーネントが使われています。今回はStagehand_TestRunnerを動作させる上で重要な役割を果たしているDependency Injectionコンポーネントについて具体的な使い方を解説します。 Symfony Dependency InjectionコンポーネントDependency InjectionコンポーネントはSymfonyにおけるDIコンテナの実装であり、WebアプリケーションフレームワークとしてのSymfonyの基盤となるプロダクトです。サービスの依存性とその注入方法の定義、サービスの作成・取得、サービスへの依存性の注入、といったD

    Pieceの中のSymfony #3: Dependency Injectionコンポーネント
  • DIコンテナの本当の使いどころ | ウルシステムズ株式会社

    DI の自由度は諸刃の剣 近ごろ、「実プロジェクトでDIコンテナ(注1)を導入している」という話をちらほら耳にするようになりました。それと同時に、「DIコンテナを使ったプロジェクトが大変なことになっている」という話も耳にするようになりました。DIの魅力を十分に享受して低コスト、高品質を実現しているプロジェクトがある一方で「DIを導入してみたのはいいのだけれど、DIの設定ファイルが大きくなりすぎて管理しきれない」「DIを使っているのに、テスタビリティが全然向上していない」など苦労しているプロジェクトもあるようです。この差はいったいどこから来るのでしょうか。 DIは、EJBなどと比べると比較的取っ付きやすい技術ではありますが、ほかの技術同様、誤った使い方では十分に力を発揮できません。DIコンテナは非常に単純明快な技術ではありますが、そのシンプルさ故に自由度が高くさまざまな使い方ができます。その

    DIコンテナの本当の使いどころ | ウルシステムズ株式会社
    k-holy
    k-holy 2012/08/03
  • Pimpleでシンプルに正しくDIを理解する

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

    Pimpleでシンプルに正しくDIを理解する
  • BEAR.Sunday meetup #0 でRayについて話してきました #BEARSunday : 今日も適当ダイアリー

    2012-07-20 BEAR.Sunday meetup #0 でRayについて話してきました #BEARSunday ラベル: BEAR, PHP, PHP5.4, Ray, 勉強会 ツイート こんばんわ。BEARでBEERな @madapaja です。 7/19に行われた BEAR.Sunday meetup #0 に参加して BEAR のオブジェクトフレームワークである Ray について発表させていただきました。 最初に、会場を提供していただいたVoyage Groupさん、ありがとうございました。そして、スピーカーの皆さん、参加者の皆さん、スタッフの皆さん、当にお疲れ様でした! また、@koriym さんには発表前から後までフォローいただき非常にお世話になりました。ありがとうございました。 ということで、まだ開発途上のPHPフレームワーク「BEAR.Sunday」の勉強会という

    k-holy
    k-holy 2012/07/20