My software development principles.
- Do not violate the YAGNI principle. You aren't gonna need it.
- Do not violate the POLA principle. Principle of least astonishment.
My preferences
- Domain-Driven Design.
- Functional programming.
- Test & Behavior Driven Development
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin.
Domain assembly must
- Only have code defined by the ubiquitous language.
- Have pure functions. A function is called a pure function if it always returns the same result for the same argument values and it has no side effects like modifying an argument (or global variable) or outputting something. The only result of calling a pure function is the return value.
- Have tests covering all business rules.