大局事项
1.创建子程序的理由充分吗?
2.一个子程序中所有适于单独提出的部分是不是已经被提出到单独的子程序中了?
3.过程的名字中是否用了强烈,清晰的"动词+宾语"词组?函数的名字是否描述了其返回值?
4.子程序的名字是否描述了它所做的全部事情?
5.是否给常用的操作建立了命名规则?
6.子程序是否具有强烈的功能上的内聚性?即它是否做且只做一件事,并且把它做的很好?
7.子程序直接是否有较松的耦合?子程序与其他子程序之间的链接是否是小的(small),明确的(intimate),可见的(viaible)和灵活的(flexible)?
8.子程序的长度是否是由其功能和逻辑自然确定,而非遵守任何认为的编码标准?
参数传递事宜
1.整体来看,子程序的参数表是否表现出一种具有整体性且一致的接口抽象?
2.子程序参数的排列顺序是否合理?是否与类似的子程序的参数排列顺序相符?
3.接口假定是否已在文档中说明?
4.子程序的参数个数是否没超过7个?
5.是否用到了每一个输入参数?
6.是否用到了每一个输出参数?
7.子程序是否避免了把输入参数用作工作变量?
8.如果子程序是一个函数,那么它是否在所有可能的情况下都能返回一个合法值?