Principles
Principles
Consistently following good principles is important to good code. This means applying coding principles whether or not a project is rapidly approaching an important deadline.
Principles
- Architectural Agility
- Boy Scout Rule
- Dependency Inversion
- Don’t Repeat Yourself
- Encapsulation
- Explicit Dependencies
- Hollywood
- Interface Segregation
- Inversion of Control
- Keep It Simple
- Least Astonishment, Principle of
- Liskov Substitution
- Make Illegal States Unrepresentable
- Once and Only Once
- Open-Closed
- Parse, Don’t Validate
- Persistence Ignorance
- Progressive Disclosure
- Separation of Concerns
- Single Responsibility
- SOLID
- Stable Dependencies
- Tell, Don’t Ask
- Tolerance for Imperfection
- YAGNI
Lean Software Development
Lean Software Development adapts the principles of lean manufacturing to software. It was popularized by Mary and Tom Poppendieck in their book Lean Software Development: An Agile Toolkit.
- Eliminate Waste
- Build in Quality
- Amplify Learning
- Delay Commitment (Last Responsible Moment)
- Deliver Fast
- Respect People
- Optimize the Whole