GOT*_*O 0 2 c++ naming-conventions method-names
是否有任何官方C++建议涉及应在方法名称中披露的信息量?我问,因为我可以在互联网上找到大量的参考资料,但没有一个真正解释这一点.
我正在使用一个调用方法的C++类calculateIBANAndBICAndSaveRecordChainIfChanged,它很好地解释了该方法的作用.较短的名称将更容易记住,并且不需要智能感知或复制和粘贴来键入.它不那么具有描述性,是真实的,但应该记录功能.
bil*_*llz 12
calculateIBANAndBICAndSaveRecordChainIfChanged 被认为是一个糟糕的函数名称,它打破了单一功能做一件事的规则.
降低复杂性
创建例程的最重要原因是降低程序的复杂性.创建一个例程来隐藏信息,这样您就不需要考虑它了.当然,你在编写例程时需要考虑它.但是在写完之后,您应该能够忘记细节并使用例程而不了解其内部工作原理.创建例程的其他原因 - 最小化代码大小,提高可维护性和提高正确性 - 也是很好的理由,但如果没有例程的抽象功能,复杂的程序将无法在智力上进行管理.你可以简单地将这个函数分解为以下函数:
CalculateIBAN
CalculateBIC
SaveRecordChain
IsRecordChainChanged
Run Code Online (Sandbox Code Playgroud)
要命名过程,请使用强动词后跟对象
具有功能内聚的过程通常对对象执行操作.该名称应反映该过程的作用,对对象的操作意味着动词加对象名称.PrintDocument(),CalcMonthlyRevenues(),CheckOrderlnfo()和RepaginateDocument()是良好过程名称的示例.
描述例程所做的一切
在例程的名称中,描述所有输出和副作用.如果例程计算报告总计并打开输出文件,则ComputeReportTotals()不是例程的适当名称.ComputeReportTotalsAndOpen-OutputFile()是一个足够的名称,但是太长而且太傻了.如果你有副作用的例程,你会有许多冗长,愚蠢的名字.治愈不是使用描述性较少的常规名称; 治疗的目的是让你直接发生事情而不是副作用.
避免使用无意义,含糊不清或无意义的动词
有些动词是弹性的,可以伸展以涵盖任何意义.诸如HandleCalculation(),PerformServices(),OutputUser(),ProcessInput()和DealWithOutput()之类的例程名称不会告诉您例程的作用.这些名称最多只能告诉您例程与计算,服务,用户,输入和输出有关.例外情况是在处理事件的特定技术意义上使用动词"句柄"时.
上述大多数要点均来自Code complete II.其他的好书Clean Code,The Clean Coder从罗伯特·马丁