我最初也是从写小的程序开始的。随着程序的规模越来越大,投入的精力越来越多,逐步意识到自己方法上肯定出了问题。从90年代中期开始,我逐步认识到一个好的软件需要一个好的领域模型。但是当时对分层没有概念。一个明显的问题就是,当时的程序在界面代码中也出现领域对象。进入到2000年,首先接触到微软的DNA架构,后来又接触到其他一些分层理论,我的设计思想才逐步完善。
“把小软件当作大软件来写,把大软件当作小软件来做”就是我对如何提高一个人的软件设计水平的一个总结。
我们一个人从开始接触软件开发这份工作开始,首先从事的都是比较小范围的开发工作。“把小软件当作大软件来写”的意思就是,虽然你现在写的小软件,但是自己也要把它当作大的软件一样,规范的去做。
比如,写一个计算器小程序,我们可以按照分层理论把它分成“用户界面层”、“应用层”和“领域层”三部分来写。在写得过程中,逐步体会这三个层次的内容以及层与层之间的关系。再结合相关书籍的学习。相信假以时日,定会将自己的层次提高一个档次。这样,很可能有机会进入到下一阶段,写一个大软件。
“把大软件当作小软件来做”的含义是,将大软件分层后,从中找出一个从“用户界面层”一直往下直到最底层的一些关键过程,把每个过程作为独立的小软件来做,这样项目的规模再大,也不怕。因为这时项目的复杂度只是算术增加而不是指数增加。这个开发过程我总结出这样一句话叫做“横向设计,纵向实施”。这里的横向设计含义表示我们应该按照分层理论的方法进行分层设计,纵向实施则表示我们在具体的开发过程应该按照从上到下一个一个过程来做。每次都做完一个完整的过程。下图为分层架构图。
分享到:
相关推荐
描述中提到的“办公增强软件”可能是一个利用.NET框架开发的应用,它创新性地将通常的大小写键(Caps Lock键)转换为快捷键的功能。Caps Lock键在标准键盘布局中主要用来切换字母的大小写输入状态,但在这款软件中,...
总的来说,"非常好用的手机当作电脑摄像头软件"是一种利用现有资源提升视频体验的技术,适用于远程工作、在线学习、视频会议等多种场景。通过iVCam这样的应用,用户可以在不增加额外硬件成本的情况下,享受到高质量...
总结来说,这个C编写的“小软件”是一个实用且有趣的工具,它能提供学习C语言的实例,特别是对那些想要了解如何在实际环境中运用C语言的人来说。尽管它的主要功能可能偏向娱乐,但其源代码可以作为教学素材,帮助...
【标题】"大学时做的小游戏,就当作回忆了" 暗示这是一款在学习阶段创建的小型游戏项目,可能是为了学习编程或者娱乐而制作的。这款游戏可能包含了开发者早期的编程技术和创意,对于他个人来说具有一定的纪念价值。 ...
用来连接手机和电脑 让手机当摄像头用 把安卓手机当作摄像头
将电视机作为电脑屏幕,这是一种利用电视作为显示器的技术,可以带来更大的视觉体验,尤其适合在家庭环境中分享多媒体内容。实现这一功能的关键在于硬件设备的连接和软件设置的调整。以下是详细的步骤和注意事项: ...
软件工程的中心思想是把软件当作一种工业产品,而不是某种个体或小作坊的神秘技巧。 软件危机是指软件开发和维护过程中遇到的严重问题,如软件开发的复杂度大大上升,导致大型软件的开发费用经常超出预算,完成时间...
它的中心思想是把软件当作一种工业产品,而不是某种个体或小作坊的神秘技巧,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。 什么是软件?软件是程序再加上程序实现和维护程序时所必需的文档的总称。...
有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。 给软件带来...
注意:要是杀毒软件把它当作病毒,请不要杀毒。允许其通过,并把它设置为信任即可。 3.安装完广联达安装算量软件后没有清单库定额库,再安装广联达计价软件GBQ4.0,安装时不勾选广联达计价软件GBQ4.0,其他组件全选...
这个软件实现了用PPC通过WiFi/蓝牙实现无线鼠标和键盘的功能,有了这个软件你的电脑就多了一个鼠标和键盘了,还是无线的。 家里的笔记本经常接电视看片子,每次换片子很麻烦,总是要人跑到电脑跟前操作,好累。刚好...
软件介绍: 警翼执法记录仪专用的视频和图片读取软件,可以安装在XP和WIN7的计算机上,连接上执法仪后,打开管理软件,输入密码000000点击确认密码,再点击设置为移动磁盘,执法仪进入 移动磁盘模式,这时可以将...
软件生存周期由立项、需求分析、策划、概要设计、详细设计、编程、测试、发布、维护、退役等阶段所组成,把每个阶段当作瀑布中的一个台阶。所谓好模型就是既能反映现实系统的本质特征,又尽量地简化,且能以直观形式...
2.C语言是区分大小写的,如果前面定义的是大写函数名或者变量,后面引用的时候用小写,肯定是不对的。 3.关于子函数交叉调用的问题,一般原则是禁止这样做。解决的方法就是写2个相同的子函数,函数名区分开,用在...
◆ 本书没有将软件测试当作一项孤立的技术,而是将其视为完整的软件验证和确认原则的组成部分。 ◆ 根据边际效用递减规律,建议在同一个数学模型基础上开展程序测试和程序正确性验证工作,从而能够协调应用两种...
是一款针对于移动流量劫持而开发的手机抓包软件,可以当作是Android版的‘Fiddler’ 主要功能包括:手机端抓包、PING/DNS/TraceRoute诊断、抓包HAR数据上传分享 使用前请确保手机HTTP代理的关闭