Everything About ___
Live briefing

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

  1. Read the overview: Inversion of controlA 5-minute orientation
  2. Skim a recent paper: Nonlinear Dynamic Inversion with Actuator Dynamics: An Incremental Control PerspectiveInfluential work since 2022
  3. Pick up a classic book: Fixed-point algorithms for inverse problems in science and engineeringThe most-reprinted book on the subject
  4. Read the landmark paper: Nonlinear inversion flight control for a supermaneuverable aircraftCited 481 times
  5. Go sideways: Dependency injectionA closely related topic
  6. 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.

🏆 Landmark papers (most cited)

🆕 Influential since 2022

📚 Books worth reading

Ranked by number of editions on Open Library, a rough measure of how lasting a book is.

🔗 Related topics