Everything about Inversion of control
Design principle of receiving control flow from external source
In software design, inversion of control (IoC) is a design principle in which custom-written portions of a computer program receive the flow of control from an external source. The term "inversion" is historical: a software architecture with this design "inverts" control as compared to procedural programming. In procedural programming, a program's custom code calls reusable libraries to take care of generic tasks, but with inversion of control, it is the external code or framework that is in control and calls the custom code. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Inversion of controlA 5-minute orientation
- Skim a recent paper: Nonlinear Dynamic Inversion with Actuator Dynamics: An Incremental Control PerspectiveInfluential work since 2022
- Pick up a classic book: Fixed-point algorithms for inverse problems in science and engineeringThe most-reprinted book on the subject
- Read the landmark paper: Nonlinear inversion flight control for a supermaneuverable aircraftCited 481 times
- Go sideways: Dependency injectionA closely related topic
- Go sideways: Dependency inversion principleA closely related topic
📖 Definitions
Noun Abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to the traditional architecture, getting the flow of control from a generic code part.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Nonlinear inversion flight control for a supermaneuverable aircraft
Control of inversion height by surface heating
Stability Analysis for Incremental Nonlinear Dynamic Inversion Control
Postural control following inversion injuries of the ankle
Non-Linear Dynamic Inversion Control Design for Rotorcraft
Non-volatile electric-field control of inversion symmetry
Fault-Tolerant Structured Adaptive Model Inversion Control
Nonlinear generalised dynamic inversion for aircraft manoeuvring control
🆕 Influential since 2022
Nonlinear Dynamic Inversion with Actuator Dynamics: An Incremental Control Perspective
Channel Inversion Power Control Aided Covert Communications in Uplink NOMA Systems
Time-Delay Margin and Robustness of Incremental Nonlinear Dynamic Inversion Control
Nonlinear Model Inversion-Based Output Tracking Control for Battery Fast Charging
Adaptive Incremental Nonlinear Dynamic Inversion Control for Aerial Manipulators
📚 Books worth reading
Fixed-point algorithms for inverse problems in science and engineeringHeinz H. Bauschke · 2011
Surveys on Solution Methods for Inverse ProblemsDavid L. Colton, Heinz W. Engl · 2000
Geometric Methods in Inverse Problems and PDE ControlChristopher B. Croke · 2004
Large-Scale Optimization with ApplicationsLorenz T. Biegler · 1997
Large-Scale Optimization with ApplicationsLorenz T. Biegler · 1997- 📕A panorama of mathematicsCarlos M. da Fonseca · 2016
Spectral analysis, differential equations, and mathematical physicsFritz Gesztesy, H. Holden · 2013- 📕Identification and Control : Some New Challenges : Summer School on Identification and ControlKaïs Ammari, Stéphane Gerbi · 2020
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Dependency injection In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires…
- Dependency inversion principle In object-oriented design, the dependency inversion principle is a specific methodology for loosely coupled software modules. When following this principle…
- Software framework In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional…
- List of Kotlin software and tools This is a list of software and programming tools for the Kotlin programming language, which includes frameworks, libraries, integrated development environments…
- Spring Framework The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by…
- FastAPI FastAPI is a web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize…
- Dart (programming language) Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server…
- List of TypeScript software and tools This is a list of TypeScript software and tools, including transpilers, runtimes, web frameworks, compilers, integrated development environments, libraries…