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
The Composer Asset Plugin allows you to manage project assets (css, js, etc.) in your composer.json without installing NPM or Bower. This plugin works by transposing package information from NPM or Bower to a compatible version for Composer. This allows you to manage asset dependencies in a PHP based project very easily. Important: The next major version of Composer Asset Plugin is so different, b
peer dependencyとは Peer dependencyは,パッケージ間の依存の一種であり,依存先が自動的にはインストールされないものを指します. パッケージAがパッケージBに(peerではない通常の)依存をする場合,Aをnpmでインストールすると依存関係が解消され,自動的にBもインストールされます.一方,AからBへの依存がpeer dependencyである場合,AをインストールしてもBは自動的にはインストールされません. Peer dependencyの使い所はいくつかありますが,peer dependencyはAがBをrequireするわけではないような場合に適しています.むしろ逆に,直接的もしくは間接的にBがAをrequireするような場合に,AからBへのpeer dependencyを設定するべきです.npmのドキュメントでも言及されているように,このような状況はAがB
DIってなんだ Dependency Injectionの略で、依存性の注入と訳すらしいです。なんか依存性注入って訳すんじゃないよって記事を見た気がしますが、話がややこしいのでスルーします。 Dと呼ばれるモノは基本的にはライブラリがなくても、外からモジュール等を注入できる構造になっていればいいようですが、プログラムの構造に影響を与えたり、AndroidのActivityやFragmentなどの癖の強いオブジェクトの類だとしんどそうな印象です。 Daggerは、DIコンテナと呼ばれるDIのお助けツールで、@OverrideなどでおなじみのJavaのアノテーションと一部のクラスの追加でお手軽にDIができてしまうという代物です。 google.github.io DIコンテナは、リフレクションに置き換えて実行時にリフレクションしまくるという方法で実装されているものがありますが、リフレクションなの
require_dependencyってなんなんだろ。しょっちゅうrailsソース内ででてくるけど。ということで調べてみた。 require_dependencyを定義している場所 activesupport/lib/active_support/dependencies.rbの Object.send(:define_method, require_dependency) { |file_name| Dependencies.depend_on(file_name) } define_methodで定義してる。最初 'def require_dependency' で検索したけどひっかからなくてここにたどり着くまでそこそこ時間がかかった、、、。 requireとの違い require_dependencyで呼び出しているメソッド、depend_onは <code> def depend_
A revised public draft of JSR-299 is now available. This draft was produced with input from several people from the EE 6 expert group and aims to address a number of criticisms surrounding the relationship between 299 and the rest of the EE platform. Terminology and name changes The name of the spec - along with some terminology - has been changed to better reflect the fact that the focus of 299 i
2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-World Scala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦での Scala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存の Java DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した
以下のブログ記事の翻訳です1。 Dependency Injection Framework for Swift - Simple Weather App Example with Swinject Part 1/2 前回のブログ記事では、dependency injection (依存性の注入) のコンセプトとSwift用のフレームワークであるSwinjectの基本的な使い方を見てきました。今回の記事では、前回スクリーンショットだけお見せしたシンプルな天気アプリを開発していきます。シンプルですが本質をついた開発手順の中で、dependency injectionパターンとSwinjectを利用し、密結合した依存性を疎結合にする方法を見ていきます。 このブログ記事で使用するソースコードはGitHubのリポジトリからダウンロードできます。 要求事項 Xcode 7 (beta) OpenWe
AngularJSの「サービス」で理解するDI(Dependency Injection:依存性注入)の基本:MEANスタックで始めるWebアプリ開発入門(9)(2/2 ページ) AngularJSでDIを使ってみよう 登録した各サービスは他のサービスとの依存関係を持っている場合もあります。AngularJSではDIを使ってサービス同士の依存関係を簡単に記述できるので、それについて解説します。 そもそも、DIとは、そのメリットは AngularJSのDI機能について解説する前に、DIについて簡単に説明します。連載第6回の「いまさら聞けないAngularJSの基礎知識と5つの主な特徴、インストール、簡単な使い方」でも説明していますが、DIとは「Dependency injection(依存性の注入)」の略で、モジュール同士の依存関係をコードから除外し、設定ファイルやアノテーションなどで依存関
No trial. No credit card required. Just your GitHub account. Dependency Injection (DI) is a software design pattern, a particular case of the Inversion of Control pattern, in which one or more dependencies are injected into dependent objects. The pattern is used to create program designs that are loosely coupled and testable. This article assumes that you are already familiar with DI. If not, you
wsrun [options] -c <command> [<arg1> <arg2> ...] Mode (choose one): --parallel, -a Fully parallel mode (default) [boolean] --stages, -t Run in stages: start with packages that have no deps [boolean] --serial, -s Same as "stages" but with no parallelism at the stage level [boolean] Package Options: --recursive, -r Execute the same script on all of its dependencies, too [boolean] --package, -p Run o
How We Fixed the Dependency Confusion Vulnerability in Over 600 Ruby ApplicationsHow Shopify solved the dependency confusion vulnerability in over 600 Ruby applications and created tailored large-scale migration tooling to make it easier. Shopify has grown significantly over the years, and our success makes us an attractive target for malicious actors. We take the safety of our merchants seriously
HTML imports are cool. If you haven’t heard of them before, you should read Eric Bidelman’s excellent introduction to them, but they’re pretty self explanatory with a bit of code. For example the following is how a jQuery UI dialog works in my proof-of-concept web components port: <link rel="import" href="ui-dialog.html"> <ui-dialog title="Hello World"></ui-dialog> The cool thing here is not what
前から使っていたTomcatの起動スクリプトをDebian 6.0(Squeeze)に作成し、 update-rc.dを使って自動起動させようと思ったら警告が表示されました。 どうやらDebian 6.0から「update-rc.d」ではなく「insserv」を使う作法に変わったようです。 何が変わっているのか気になったので、 http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot ここの冒頭をざっくり翻訳してみました。 Dependency based boot sequence - 依存関係ベースのブートシーケンス Debianは、各々のinit.dスクリプトのヘッダーに記載されているLSB fields(*1)を参照し、 サービスの起動順序を制御する仕様を満たしています。 この機能は、前からある起動順序を制御する不具合を解消
RubyGems のバージョンを 1.3.6 に上げたら、Rails アプリケーションの起動時に次のような警告メッセージが出るようになった。 Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010. Use #requirement 次のコードを config/environment.rb に挿入するとこの警告を消せる。 if Gem::VERSION >= "1.3.6" module Rails class GemDependency def requirement r = super (r == Gem::Requirement.default) ? nil : r end end end end 挿入する位置は、require File.join(F
組込みソフトウェアを考える。状態マシン図、プロダクトラインも考える。HaskellとElixir大好き、Rubyも好き。島敏博のブログ。 プロダクトライン開発で優れたフレームワークや共通部を作れたとしてもそれが崩れてゆくのを防ぐのが実はとてもたいへんである。崩れてゆくのをできるだけ早期に発見するために、依存性解析も毎日のプロセスに加えるとよいだろう。 DTangler は、DSM(Dependency Structure Matrix)依存構造マトリクスを作成表示したり、循環参照を検出することができるオープンソースのツールである。(Eclipse Public License) GUI版とコマンドライン版2つのツールがある。 GUI版は 依存関係を定義したdtファイル(後述)を読み込んで依存関係をGUIで表示する。循環参照を許可する設定などあとでコマンドライン版で使うときの条件を簡単に設定
Cargo's goal is to make modern application package management a core value of the Rust programming language. In practice, this goal translates to being able to build a new browser engine like Servo out of 247 community-driven libraries—and counting. Servo's build system is a thin wrapper around Cargo, and after a fresh checkout, you're only one command away from seeing the whole dependency graph b
ConcernsディレクトリはRailsが標準では読み込まないため、条件によってはCircular dependencyになってしまうようです。 activesupport-4.0.1/lib/active_support/dependencies.rb:461:in `load_missing_constant': Circular dependency detected while autoloading constant Abc::AbcAccessible (RuntimeError) この例外は本番(production)モードで動かした時だけでたりするので注意が必要です…! 対策は簡単で、Concernsディレクトリまでモジュールのネームスペースに含んでしまえばOKです。 Circular dependencyの対策コード 元のコードが↓こういう感じだとして、
Much has been written on Dependency Injection lately, mostly by Padraic Brady (1, 2) and Fabien Potencier (1, 2, 3, 4, 5). My subjective feeling tells me there are now more PHP DI containers out there than CMS or ORMs implemented in PHP, including two written by myself (an overengineered and a useful one). Its an awesome pattern if used on a larger scale and can (re-) wire a complex business appl
A New, Simpler Way to Do Dependency Injection in Go Dependency injection (DI) is a great thing. Even if you haven’t heard of the term, it’s likely that you have already used it. This article assumes zero existing knowledge of DI. However, a basic understanding of Go. I will work from fundaments, challenges, solutions and eventually lead to how to build a complete service container. Anatomy of This
#はじめに 「Dependency Injection: 依存性の注入」 って、とっても分かりづらくないですか? 色んなところに解説記事があって、Qiitaでも検索すると沢山見つかりますが筆者は文章を読んだだけでは全然分かりませんでした。 「直接呼び出すのではなく、インターフェースを介して実装する?」「制御の反転(inversion of control)? 中から外ではなく外から中?」「サンプルを真似てみたけど複雑な実装している。これ何が嬉しいの?」そんな疑問ばかりでした。言葉は知っているけど使えないってやつです。 ようやく理解できたのは、実際に「あれ?困ったぞ」となって「ここでDIを使うと便利なのか!」と実感してからでした。 「ここで便利なんだ!」や「こういう時に使うといいんだ!」という使い所が分かると応用が効き、これが本当に理解することなんだなと思いましたので、それを書いてみたいと思
こちらはJava Advent Calendar 2021の11日目です。 はじめに 「Apache Log4j」ライブラリに致命的なリモートコード実行の脆弱性が発見され現在絶賛対応中の方もいらっしゃるかと思います。 ここで重要になってくるのが影響調査には自分たちの改修しているコード本体だけではなく、OSSの依存ライブラリも含まれることです。log4j2は超広範囲に利用されていますから、逆にJavaのコードは潜在的に対象、くら言ってしまっても良いですが、もう少しマイナーなライブラリだとそもそも対象となるコードを探すのが大変です。pom.xmlをgrepしただけでは見つけれないですから。 この手の依存性チェックをするツールはありそうだと思ってたけど、特に今まで使った事はなかったので今回はMavenプラグインのOWASP Dependency-Checkを試してみました。 今回サンプルに利用舌
Dependency Injection: Vitally Important or Totally Irrelevant?
Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Anyone building up a project with many dependencies—especially in the Ruby community, where so much functionality is wrapped up in gems and plugins—must face the issue of managing the situation in source code control. During a recent coding workshop, the instructor used an analogy comparing dependency management to the fle
vdm is an alternative to e.g. Git Submodules for managing arbitrary external dependencies for the same reasons, in a more sane way. Unlike some other tools that try to solve this problem, vdm is language-agnostic, and can be used for any purpose that you would need remote development resources. vdm can be used for many different purposes, but most commonly as a way to track external dependencies t
I recently wrote some code to interface with Stripe’s webhooks. After looking at the code and tests, I decided I needed to do something to make it easier to test all pricing tiers— something I wasn’t able to easily do from the start. Dependency injection was a necessary piece of that puzzle. I’ve always been curious about the various forms of dependency injection and the effects each would have on
概要 「Dependency Injection=依存性の注入」と言われますが、依存したオブジェクトを外部から入れることで何がメリットなのかを感じ取るのは実際に書いてみて分かると思うので、勉強としてまとめてみました。 Dependency Injectionとは デザインパターン 「依存性の注入」ではなく「依存するオブジェクトを注入」 DIコンテナとは別。デザインパターンなのでどの言語でもできる A dependency is an object that can be used (a service). An injection is the passing of a dependency to a dependent object (a client) that would use it. The service is made part of the client's state.[
機能のエントリで作ったDIフレームワークをもうちょっとちゃんとしました。 長いですけど引用します。 コンポーネントの循環参照を自動的に解決できるようになりました! 1 import scala.collection.immutable.Map 2 import scala.collection.immutable.Stack 3 4 trait Key[+T] 5 6 class Component(val entries:Map[Key[Any],(Injector)=>Any]) { 7 8 def define[T](key:Key[T], factory: (Injector)=> T) = 9 new Component(entries + (key -> factory)) 10 11 def define[T](key:Key[T], fact
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く