SOLID Principles
SOLID is a set of five object-oriented design principles that help produce maintainable, extensible and loosely coupled software. In a large codebase, I use SOLID as a set of design heuristics rather than rigid rules. The goal is to make responsibilities clear, minimize unnecessary dependencies and make change safer.
SRP: A class should have one primary responsibility and one reason to change.
OCP: Software entities should be open for extension but closed for unnecessary modification.
LSP: Subtypes must remain substitutable for their base types without breaking expected behavior.
ISP: Clients should not be forced to depend on methods they do not need.
DIP: High-level policy should depend on abstractions rather than concrete low-level details.