对XP编程的一点理解

曾经深深的为软件项目怎么做而苦恼,看过很多书,国内的,国外的。看着,怀疑着,思考着,或者感觉很多方法很好,但又难以把握,总觉得缺少点什么,直到XP的出现。不敢说XP是真现,不敢说XP就一定比其他软件方法好,但我知道,,对很多自己的问题,它有能够让我接受的答案。

    看很多软件工程的书,常常会拿软件工程与土木工程,也就是传统的建筑相比较,并试图用建筑学的方式来诠释软件的制作方法。 然而,就我个人所涉及到的项目或者软件,拿这些方法去套,总有套不上去的感觉。看完XP的介绍以后,突然领悟,原来问题出在软件与建筑本身的区别上。建筑,众所周知,最重要的是设计师,于是软件也套上一个最重要的设计师。但是建筑与软件最大的区别却在于,建筑一旦设计完成,建造成功,其后产生的变化是很少的,至少,产生根本性的变化是不可能的,至多就是房间重新装修。但不可能说,再在这个建筑上加十层,或者,让自由女神换只手举火把,建筑再变化,它的地基,它的支撑系统,很少变化。而软件则不然,软件最与众不同的一点是它的灵活性,也就是变化性以及因此产生的复杂性。一个运行得很好的软件,很可能产生新的需求,新的变化,从而要求根本性的变化,而再好的设计师,也做不到设计得面面俱全。那么什么可以称之为软件的地基,称为软件的支撑系统。如果是基本编码系统和数据库,那么当用户从一个应用扩展到第二个应用的时候就很可能发生变化。比如说,一个系统本来在一个企业应用,现在要扩展到另一家企业,而这两家同属一个集团,需要共同核算。然而,遗憾的是,这两家企业的编码有重复,怎么办?必须给软件增加功能能区分这两家企业。此时,需要变化的有基本编码、数据库结构。或者还有很多的判断规则的程序代码。这样的情况可能类似于要求再建一幢新的房子,但最好这两幢房子共用一个顶,请问,哪个建筑工程师能办到?还有,比如有新的企业要用老系统,但只要其中的一些功能,并想增加一些功能。这就好象我从一幢楼买了201、402和604并且我还要买两间新房,但是我要求这些房间能有自己单独的楼梯,或者是有自己的门,这也可能吗?这些在软件界最普通的事,在建筑界根本行不通,因此,从建筑界借鉴来的方法,就未必真实可行。这就是我对传统软件方法产生疑问的根本所在。

    而XP编程恰在此时给了我问题的解答。XP最强调的是设计和代码的简单,其目的是保持代码的轻灵和活力。以简单对抗复杂,以轻灵对应变化。如果你的代码不再需要修改,那么恐怕十之八九已经不再被使用了。那么让我们一起进入XP十二大原则吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值