Extreme Programming (1)

Extreme Programming ,极限编程,有个很好听的缩写名称,为XP。

呃,不过显然不是去模仿 Microsoft Windows XP操作系统名称,因为极限编程理念的提出是1996年,远远早于XP系统的出现。

我目前是大一软件工程学院的学生,虽说是只有大一,不过我们学院程序设计老师,呃,在教我们 Java 的同时,一直向我们灌输软件工程的思想。

对我们的编程风格反复要求,甚是严格。

软件工程? 嗯……当然是强调 Teamwork 。我们又不是一个人在战斗,嘿嘿,所以合作非常重要。

软件工程的基本思路是面对一个项目,先做需求分析,然后是设计,然后是写代码,最后当然少不了测试和维护

一群人写代码,用坐一起不?

根据传统的软件工程理论,显然是不用。因为嘛,写代码是自己的事情,偶尔交流用下QQ,嘿嘿,多方便!

一群人写代码,分工一定要非常明确吗?

根据传统的软件工程理论,显示是,否则……各写各的,将来怎么可能凑成一个完整的程序呢。

这确实是个问题,于是乎,有人专门做面向对象的分析与设计(OOAD),建立出一个完整的 UML 图。然后明确分配任务——

A 同学,你写这一块,B同志,你完成那一块……

不过问题还是有,不过也没关系,暂时这里不列举了,因为解决方案也已经是相当完善的啦。

有了并发版本控制系统(CVS)Microsoft Visual SourceSafe ,有了许多逆向软件工程的辅助软件,代码框架是现成的,只需要写如何去实现,而且多多复用,这个才是程序员的事情,嘿嘿,反正我不去规划这个什么什么的。

代码写好,需要相互交流了,用什么?

呃,这里先不管传统软件工程项目怎么解决,先说说我们学校我们学院早已习惯的——

规格化说明。

规格化说明(Specification)可以理解多是注释,而且格式相当整齐,抽去实现代码不看,看上去比 javadoc 提取后的规格文档还要清晰,每一个方法头,加上注释,给了我们许多信息:

1,方法名

2,参数及其类型

3,异常规格说明

 (Java 中的 throws 子句 或者 C++ 的 throw 子句,不过 C++ 不加声明表示可能抛出任何异常,绝非像 Java 那样承诺不抛任何异常!)

4,注释中的  Requires-clause 告诉了方法调用的限制,比如引用参数不能为 null 等。

5,注释中的  Modifies-clause 告诉了方法可能会对你传入的参数做哪些变动。

(姑且我们把 this 也认为是一个参数吧,起码是一个隐喻的)

6,注释中的 Effects-clause ,这个才是关键。就是这个方法是用来做什么的。

……

那么一个人写完代码,只要让同伴看下这所谓的 Specification ,交流就方便多了。

呃 ……

说了,这么多,怎么越扯跟标题 XP 越远啊 ……

表打我,这里嘛,主要是做个铺垫,嘿嘿

关于XP的一些个人理解,就写在 (2) 部分咯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值