Here are some design principles, patterns, and standards that you should consider when developing software:
Design Principles
- Single responsibility principle: A class should have only one responsibility. This makes the class easier to understand, test, and maintain.
- Open/closed principle: Classes should be open for extension but closed for modification. This means that you should be able to add new features to a class without having to modify the existing code.
- Liskov substitution principle: Any subclass should be substitutable for its superclass. This means that you should be able to use a subclass in place of its superclass without having to change the code that uses it.
- Interface segregation principle: Clients should not be forced to depend on methods they do not use. This means that you should not expose methods in an interface that are not needed by all clients.
- Dependency inversion principle: A.K.A SOLID principle. Depend upon abstractions, not concretions. This means