Aims at reducing repetition of software development information, advocating for abstractions, or using data normalization to avoid redundancy.
Inversion of control is a design pattern in software engineering where custom-written portions of a computer program receive the flow of control from a generic framework.
A design principle that emphasizes the importance of simplicity in design and development.
Design principle for separating a computer program into distinct sections, where each section addresses a separate concern.
A mnemonic acronym for five design principles in software engineering aimed at making object-oriented designs more understandable, flexible, and maintainable.
Principle stating a programmer should not add functionality until deemed necessary.
In DI, dependencies are provided to it from an external source, typically through constructor injection, property injection, or method injection instead of a class creating itself.
These principles establish practices that lend to developing software with considerations for maintaining and extending as the project grows.