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