把小软件当作大软件来写,把大软件当作小软件来做
黄国强 2008-9-9
我最初也是从写小的程序开始的。随着程序的规模越来越大,投入的精力越来越多,逐步意识到自己方法上肯定出了问题。从90年代中期开始,我逐步认识到一个好的软件需要一个好的领域模型。但是当时对分层没有概念。一个明显的问题就是,当时的程序在界面代码中也出现领域对象。进入到2000年,首先接触到微软的DNA架构,后来又接触到其他一些分层理论,我的设计思想才逐步完善。
“把小软件当作大软件来写,把大软件当作小软件来做”就是我对如何提高一个人的软件设计水平的一个总结。
我们一个人从开始接触软件开发这份工作开始,首先从事的都是比较小范围的开发工作。“把小软件当作大软件来写”的意思就是,虽然你现在写的小软件,但是自己也要把它当作大的软件一样,规范的去做。
比如,写一个计算器小程序,我们可以按照分层理论把它分成“用户界面层”、“应用层”和“领域层”三部分来写。在写得过程中,逐步体会这三个层次的内容以及层与层之间的关系。再结合相关书籍的学习。相信假以时日,定会将自己的层次提高一个档次。这样,很可能有机会进入到下一阶段,写一个大软件。
“把大软件当作小软件来做”的含义是,将大软件分层后,从中找出一个从“用户界面层”一直往下直到最底层的一些关键过程,把每个过程作为独立的小软件来做,这样项目的规模再大,也不怕。因为这时项目的复杂度只是算术增加而不是指数增加。这个开发过程我总结出这样一句话叫做“横向设计,纵向实施”。这里的横向设计含义表示我们应该按照分层理论的方法进行分层设计,纵向实施则表示我们在具体的开发过程应该按照从上到下一个一个过程来做。每次都做完一个完整的过程。下图为分层架构图。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/acloudhuang/393338/o_%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84%E5%9B%BE.jpg)