Software design Principle
- Should have Domain and software knowledge
- Give more time to rewrite the design of software
- Take the time to review design
- Keep the code simple. Simple help you to solve critical problem
- Make small method
- Single level of abstraction -
- YAGNI - You aren't gonna need it (or you don't have much idea about it) wait to implement it later (cost of implementation will be less if we postponed)
- High Cohesive - Like things stay together (indirectly one responsibility)
- Low coupling - Keep less dependency between the class
- DRY - Don't repeat the code
- Single Responsibility Principle - Give only one responsibility to single object
- Open Closed Principle - Open for extension but close for modification
- Liskov Substitution Principle - Derived class must completely substitutable for their base types
- Interface Segregation Principle - Clients should not be forced to depend upon interfaces that they do not use.
- Dependency Inversion Principle - removing direct dependencies between classes.
- If we can't name a variable or function properly it may be sign..we have not yet understood its true purpose.
- Modularity - dividing the software into uniquely named and addressable components
- Understand design pattern
https://msdn.microsoft.com/en-us/library/ee658098.aspx
http://www.oodesign.com/
https://code.msdn.microsoft.com/windowsapps/OOPS-Principles-SOLID-7a4e69bf
http://ecomputernotes.com/software-engineering/techniques-for-maintenance
Software Architecture and Design
http://msdn.microsoft.com/en-us/library/ee658093.aspx
Design Fundamentals
http://msdn.microsoft.com/en-us/library/ee658116.aspx
MSDN Library
http://msdn.microsoft.com/en-us/library/ms123401.aspx
Pattern and Practice
http://msdn.microsoft.com/en-us/library/ee658093.aspx
Design Fundamentals
http://msdn.microsoft.com/en-us/library/ee658116.aspx
MSDN Library
http://msdn.microsoft.com/en-us/library/ms123401.aspx
Pattern and Practice
http://msdn.microsoft.com/en-us/library/ff921345.aspx
No comments:
Post a Comment