Software Design Principles¶
The following principles are considered best practices and are good to know when you develop extensions for TYPO3.
- Object-Oriented Programming (OOP) organizes software design around data, or objects, rather than the functions and logic of procedural programming.
- Domain-Driven Design (DDD) is a collection of principles and patterns that help developers design elegant code around clearly defined conceptual models.
- Model-View-Controller (MVC) is a programming paradigm that leads to clear isolation of data, presentation layer, and business logic.
- Test-Driven Development (TDD) is a basic technique for generating code that is stable, resilient to errors, and legible — and therefore maintainable.
- Dependency Injection is a software design pattern that adds flexibility by removing the need for hard-coded dependencies.
- Separation of Concerns and Single-responsibility principle (SRP) are computer programming principles that help developers create modular, coherent, and maintainable software.
We also recommend to study common software design patterns.