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