What Problems Does System Design Normalization Solve?

What problem does system design standardization solve ( 1 )

Hello everyone , today I will summarize my thoughts and feelings about project standardization in the past few years of my development work .

In the author's mind , specifications exist to solve problems , and some specifications exist to correspond to problems . So as long as they are documents that can solve problems , declarations are specifications .

  When I started to design the system at a certain time and led people to make the system . The author considered the following issues :

  1. The system needs to be designed as a modular process .

  2. It is necessary to extract the common operations of the system into a unified interface

  3. Need to design a set of code specifications for the system

  4. The system needs to be designed to better meet future needs

 

What problems does question 1 solve:

  • For the system directory : I have encountered some projects before, and I have suffered a lot when I am familiar with the system, and spent a lot of time to study . The worst thing is that there are many difficulties when the system environment is set up and started. 10 projects may have 10 construction methods, so if your project construction is relatively alternative, please provide a system directory construction description. If you don't want to spend time writing documentation, you can use the MAVEN construction project that many people are using , so that every developer can quickly familiarize themselves with the project and build the project environment.

  • For the system level : if you need to maintain a system , jsp is mixed with code , another class has a thousand lines , and a function has hundreds of lines , you will immediately feel dizzy and feel like the sky is falling . Divide the various levels. Functions can effectively reduce the occurrence of this situation , actin/web is only responsible for request forwarding , service is only responsible for business processing , dao is only responsible for database operations , jsp is only responsible for page display , domain is only responsible for object relationship mapping , and util is only responsible for providing tool classes , constant is only responsible for providing constants , and model is only responsible for the transfer of page information objects . In this way, each layer is only responsible for the specified functions , and a process-oriented development mode is formed . It reduces the difficulty of maintenance and the probability of errors .

     

Question 2 solves what problems:

  • Reduce the workload of developers : In a system, there are things that can be encapsulated , such as the operation of the database , the author encapsulates all the operation methods of the data into an interface class , and provides an abstract class to implement the interface . Or provide a unified front-end verification js file for the jsp page, and provide the default transaction isolation level and propagation mechanism for the service layer . This reduces the workload of each developer .

  • Reduce repetitive work for developers : as above .

 

Question 3 what problems are solved

  • It is convenient for the global control of the system : For example, the method name is based on the specification. In transaction control , it is very convenient to set different control levels for different method names . For example, to achieve read-write separation in the future , it is necessary to It is very convenient to select different data sources according to the method name , otherwise it will require a lot of changes .

  • 节省时间:看到一个变量名就知道类型,看到方法名就能知道功能,看到类名就知道代表的事务,这样可以节省大量的时间.

  • 笔者在2012年总结的一份规范文档博客:http://blog.csdn.net/cuiyaonan2000/article/details/8331002.本人的联系方式[email protected]

 

问题4解决了哪些问题

  • 技术上的需求:做系统设计需要提前想到开发人员,将来在开发过程中可能遇到的问题,需要提前想到解决方案,比如需要webservice,可以提供cxf实现方案.又或者需要进行前台/后台的数据校验证,可以提前提供jquery validate实现方式.需要进行系统间的系统交互可以使用jsm实现方案.

  • 性能上的需求:随着项目经验的增加,笔者发现如果需要提升项目性能,比如加入页面缓存,数据缓存,读写分离,全文检索,业务拆分,集群化,都会改动系统的框架.如果前期设计的不好,就需要相当于重做.所以建议项目在开始设计的时候就需要考虑到项目将来的性能问题.

 

总体来说笔者想到这些问题的原因有3方面.

  1. 让开发人员用最少的时间熟悉系统,了解系统.

  2. 增强系统的可维护性,扩展性.

  3. 增加系统的性能.

 



 

                                                                                                           

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325822868&siteId=291194637