Dependency Injection with Static Analysis and Context-Aware Policy

@article{Ekstrand2016DependencyIW,
  title={Dependency Injection with Static Analysis and Context-Aware Policy},
  author={Michael D. Ekstrand and Michael Ludwig},
  journal={The Journal of Object Technology},
  year={2016},
  volume={15},
  pages={1-1-1-31}
}
The dependency injection design pattern improves the configurability, testability, and maintainability of object-oriented applications by decoupling components from both the concrete implementations of their dependencies and the strategy employed to select those implementations. In recent years, a number of libraries have emerged that provide automated support for constructing and connecting dependency-injected objects. Our experience developing systems with these tools has led us to identify… Expand
1 Citations
LensKit for Python: Next-Generation Software for Recommender Systems Experiments
TLDR
The next generation of the LensKit project is presented, re-envisioning the original tool's objectives as flexible Python package for supporting recommender systems research and development. Expand

References

SHOWING 1-9 OF 9 REFERENCES
A Verification Strategy for Dependency Injection
TLDR
This work proposes an object reflection driven approach to provide DI verification based on static analysis of the classes that have dependency inversion and their wiring descriptions. Expand
Aspect-Oriented Programming Beyond Dependency Injection
TLDR
This paper proposes an aspect-oriented programming system named GluonJ, which allows developers to explicitly construct and associate an aspect implementation with aspect targets and points out that existing aspect- oriented programming languages/ frameworks are not perfectly suitable for expressing inter-component dependency. Expand
Dependency Injection
TLDR
This book is written for developers and architects who want to understand Dependency Injection and successfully leverage popular DI technologies such as Spring, Google Guice, PicoContainer, and many others. Expand
An Empirical Study into Use of Dependency Injection in Java
TLDR
This paper examines the use of "dependency injection", which is a design principle that is claimed to increase software design quality attributes such as extensibility, modifiability, testability, and reusability and develops operational definitions for it and analysis techniques for detecting its use. Expand
Effects of dependency injection on maintainability
Software maintenance consumes around 70% of the software life cycle. Improving software maintainability could save software developers significant time and money. This paper examines whether theExpand
Smart composition of game objects using dependency injection
TLDR
This article proposes the use of the dependency injection design pattern to safely initialize game objects and lessen the programmer's role in handling these issues both during the prototyping and production phases. Expand
Specifying Distributed Software Architectures
TLDR
The paper presents the Darwin notation for specifying this high-level organisation of computational elements and the interactions between those elements in distributed systems at the architectural level. Expand
Rethinking the recommender research ecosystem: reproducibility, openness, and LensKit
TLDR
The utility of LensKit is demonstrated by replicating and extending a set of prior comparative studies of recommender algorithms, and a question recently raised by a leader in the recommender systems community on problems with error-based prediction evaluation is investigated. Expand