Design Practices
Keep design patterns consistent within each layer
For example, if you choose to use the Table Data Gateway pattern to create an object that acts as a gateway to tables or views in a database, you should not include another pattern such as Repository, which uses a different paradigm for accessing data and initializing business entities.
However, you may need to use different patterns for tasks in a layer that have a large variation in requirements, such as an application that contains business transaction and reporting functionality.
Do not duplicate functionality within an application
There should be only one component providing a specific functionality—this functionality should not be duplicated in any other component.
This makes it easier to optimize the components if a specific feature or functionality changes.
Duplication of functionality within an application can make it difficult to implement changes, decrease clarity, and introduce potential inconsistencies.
Prefer composition to inheritance
Wherever possible, use composition over inheritance when reusing functionality because inheritance increases the dependency between parent and child classes, thereby limiting the reuse of child classes.
This also reduces the inheritance hierarchies, which can become very difficult to deal with.
Establish a coding style and naming convention for development
This provides a consistent model that makes it easier for team members to review code they did not write, which leads to better maintainability.
Maintain system quality using automated QA techniques during development
Use unit testing and other automated Quality Analysis techniques, such as dependency analysis and static code analysis, during development.
Define clear behavioral and performance metrics for components and sub-systems, and use automated QA tools during the build process to ensure that local design or implementation decisions do not adversely affect the overall system quality.
Consider the operation of your application
Determine what metrics and operational data are required by the IT infrastructure to ensure the efficient deployment and operation of your application.
Use automated QA tools during development to ensure that the correct operational data is provided by your application’s components and sub-systems.
No comments:
Post a Comment
Note: only a member of this blog may post a comment.