您所在的位置:开发 > 项目&管理 > 敏捷开发中如何将注释转换为代码(1)

敏捷开发中如何将注释转换为代码(1)

2007-12-28 17:35 Tong Ka Iok/Kent/王伟杰 编译 清华大学出版社 字号:T | T
一键收藏,随时查看,分享好友!

本文讲述了敏捷开发中将注释转换为代码的必要性,需要注意的问题和具体的实例源代码,供大家参考!

AD:

示例

这是一个会议管理系统。在会议中,每个参会者都会戴一个牌子,牌子上面有该参会者的信息(比如姓名等)。在该系统中,Badge类用来存放参会者的信息。请看下面的代码跟注释:

//存放参会者所戴的牌子显示的信息
public class Badge {
String pid; //参会者ID
String engName; //英文全名
String chiName; //中文全名
String engOrgName; //所在部门英文名称
String chiOrgName; //所在部门中文名称
String engCountry; //部门所在国家的中文名称
String chiCountry; //部门所在国家的英文名称

//***********************
//构造函数
//根据参会者ID,从数据库取出该参会者信息
//***********************
Badge(String pid) {
this.pid = pid;
//***********************
//取出参会者
//***********************
ParticipantsInDB partsInDB = ParticipantsInDB.getInstance();
Participant part = partsInDB.locateParticipant(pid);
if (part != null) {
//取出参会者的英文全名
engName = part.getELastName() + ", " + part.getEFirstName();
//取出参会者的中文全名
chiName = part.getCLastName()+part.getCFirstName();
//***********************
//取出所在部门跟国家
//***********************
OrganizationsInDB orgsInDB = OrganizationsInDB.getInstance();
//取出所在部门的ID
String oid = orgsInDB.getOrganization(pid);
if (oid != null) {
Organization org = orgsInDB.locateOrganization(oid);
engOrgName = org.getEName();
chiOrgName = org.getCName();
engCountry = org.getEAddress().getCountry();
chiCountry = org.getCAddress().getCountry();
}
}
}
...
}

将注释转换为代码,让代码足够清楚到可以表示注释?

我们先看一下第一个注释:

//存放参会者身上戴的牌子所显示的信息
public class Badge {
...
}

我们为什么需要这个注释呢?因为程序员认为“Badge”这个类名不足以让读代码的人清楚这个类的作用,所以写了这个注释。如果我们直接将注释所表达的一些信息放在类名里面的话,就没有单独写注释的必要。比如:

public class ParticipantInfoOnBadge {
...
}

其实很多人肯定会问难道写注释不是一个好的编程习惯吗?这问题很好,我也想知道。在解释之前,我们先把这个示例中所有的注释都转为代码看看。

将注释转换为变量名

比如:

public class ParticipantInfoOnBadge {
String pid; //参会者ID
String engName; //英文全名
String chiName; //中文全名
String engOrgName; //所在部门英文名称
String chiOrgName; //所在部门中文名称
String engCountry; //部门所在国家的中文名称
String chiCountry; //部门所在国家的英文名称
...
}

这里,我们将对属性的注释转化为属性名。比如:

public class ParticipantInfoOnBadge {
String participantId;
String participantEngFullName;
String participantChiFullName;
String engOrgName;
String chiOrgName;
String engOrgCountry;
String chiOrgCountry;
...
}

又如,可将对参数的注释转化为参数名:

public class ParticipantInfoOnBadge {
...
//***********************
//构造函数
//根据参会者ID,从数据库取出该参会者信息
//***********************
ParticipantInfoOnBadge(String pid) {
this.pid = pid;
...
}
}

可以转化为:

public class ParticipantInfoOnBadge {
...
//***********************
//构造函数
//从数据库取出该参会者信息
//***********************
ParticipantInfoOnBadge(String participantId) {
this.participantId = participantId;
...
}
}



分享到:

  1. 彻底透视CDN痛点,互联网老兵聊聊CDN的那些事儿!
  2. 3行Python代码完成人脸识别

热点职位

更多>>

热点专题

更多>>

读书

基于Eclipse的开源框架技术与实战
当前,开源框架层出不穷,它为用户提供了通用的解决方案,同时也增加了用户的学习难度。开源是一把“双刃剑”,一方面它共享了资

最新热帖

更多>>

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院