对于文档的设计,我觉得必须有一个普遍的规范,并且这个规范必须可以对项目的开发起到好的效果!
所以我认为(个人观点,仅限于开发部分的文档,至于需求部分大家可以共同讨论)
1.数据库的设计(或者说PO持久化层的设计),必须有一个明确的文档,这个文档中描述了各个表之间的关系
。每个属性对其他表中的数据是怎样影响的,对应关系是什么样的。比如说:一个属性对应另外一个表,并且
是一对多关系,我们就可以明显的看出通过这个属性获得的是一个List;如果是一对一关系,就可以知道,他们
共用一个ID,通过这个实体就可以获得另外一个实体(DAO.load("***Id));如果是多对一关系,我们就要考虑
在编写EJB的时候是否需要通过懒加载(Lazy
)的方法获得这个po。
2.Action和ActonForm的文档
必须重视他们,虽然他们有时看来很简单,如果可以有一个详尽的文档,对开发action来说很有帮助。
我举个我们写的文档 的例子吧:
2.1概述
在**详细信息页面(**Detail.jsp)上的保存按钮所调用的Action。
2.2数据session传输方式
从session获取数据列表:
获取名称 参数类型 参数说明
**Form **Form **Form
2.3 属性
无。
4.4 数据request传输方式
从request获取数据列表:
获取名称 参数类型 参数说明
在request存入数据列表:
存入名称 参数类型 参数说明
4.5调用ejb的接口描述
接口名称:ejb.**.**. **
方法名称:public void save**(PO po,List **,List **)throws
DataOperationException,RemoteException
方法说明:保存**单和**电路;
返回值:void
4.6 异常处理
异常:DataOperationException
错误号:处理异常时与输出信息相对应的错误编号
说明:数据操作异常
跳转路径:error(所有的出错信息都跳转到这个页面)
4.7 功能描述
**详细信息页面(**Detail.jsp)上的保存按钮所调用的Action,将修改后的受理单保存。
4.8 逻辑实现
1.获取**Form;
2.从**Form中提取出**单po信息,和需要删除的电路列表deleteList和要保存的列表saveList;
3.调用ejb方法public void save**(PO po,List save**List,List
**List)throws
DataOperationException,RemoteException,来保存受理单、接入电路;
4.如果保存成功则删除**Form;
5.如果成功,则forward=success, page=**Success.jsp;
6.否则,转向错误页面**Error.jsp
学习日记的Action和ActionForm的文档可以参照这个规范详细说明这个Action的作用,接受和输出的在application,session,request等各种作用域中的参数的情况,并把这个Action中的逻辑实现用自然语言(是伪代码吗?)描述出来。
这种文档应该放在每个Action类的类的说明中,还是放在Action类的excute()方法前呢?
想起来还是放在excute()方法前,因为,这些参数的传递和处理都在excute()方法中进行的。
实施阶段的、与代码有密切联系的文档应全部放在javadoc式的文档中,这样,便于维护和使用。
java程序主要是由类构成,而类的三个元素均可以用javadoc注释,如thinking in java中学到的:
There are three “types” of comment documentation, which correspond to the element the comment precedes: class, variable, or method. That is, a class comment appears right before the definition of a class; a variable comment appears right in front of the definition of a variable, and a method comment appears right in front of the definition of a method. As a simple example: Feedback
/** A class comment */
public class DocTest {
/** A variable comment */
public int i;
/** A method comment */
public void f() {}
}