44 软件开发中的一些思考
0 引言
一直以来,对自己开发的软件并不满意,看了很多规则性的东西,但是并不能真正理解。在具体实施的时候,往往还是选择了比较容易实现的、自己看起来清晰的方法,结果一旦需求变更就出现诸多问题,或者在界面设计的时候感觉力不从心,对自己画出来的丑逼界面无可奈何。姑且先把问题记录下来,留待以后慢慢学习、体会、解决。
1 关于降低软件各部分的耦合性
最常用的理论是MVC架构理论,即软件的模型-视图-控制器分离架构。另外一种说法是软件的三层架构理论,感觉与此类似,说的是软件的数据、业务和界面分离,以实现“高聚合,低耦合”的目的。
(1)数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务
(2)业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
(3)界面层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
2 关于类的抽象化设计
什么时候需要重新定义一个类?
类的范围?
类的成员与函数?
3 敏捷开发中的极限编程思想
极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。