每个程序员需掌握的20个代码命名小贴士
编程世界中,代码命名是一个至关重要的环节。它不仅关乎代码的可读性,更直接影响到代码的功能实现与维护。针对广大程序员朋友们,这里有关于代码命名的20个实用小贴士,帮助大家更好地掌握命名的精髓。
1. 意图明确的命名:一个名字应该能够清晰地表达其代表的实体或功能。比如变量、函数、类等,它们的名字应该描述其用途、含义及作用。例如,使用`elapsedTimeInDays`比单纯的`d`更加直观,更容易理解。
2. 投入时间在命名上:不要害怕在命名上花费时间。一个好的名字可以让其他阅读你代码的人(包括未来的你)更容易理解。良好的命名习惯从长远来看,利大于弊。
3. 重构不犹豫:当你在后续开发中意识到更好的命名方式时,不要犹豫,果断重构。现代IDE工具让重构变得异常简单。
4. 避免使用干扰词:如“Manager”、“Processor”、“Data”、“Info”等词汇过于泛化,应避免在命名中滥用。这些词汇可能会使命名变得冗余。
5. 警惕难以命名的类/功能:如果一个类或者功能很难命名,这可能是一个警示信号。这可能意味着这个类/功能的功能过于复杂或设计不清晰。
6. 类名设计:类名应该简洁且具有冲击力,使用名词或名词词组。对于继承的父类,名字要简短有力;子类的命名则通过形容词来描绘其特性,如`SavingsAccount`相对于`Account`。
7. 变量命名规范:变量名应以名词为主。它们通常与其指向的类相关联。布尔变量应采用谓词形式,如`isEmpty`、`isTerminated`,以便于在`if`语句中使用。
8. 方法命名原则:方法名应该是动词或动词词组,比如`postPayment()`、`deletePage()`。访问器和修改器方法应以前缀`get`和`set`区分。返回布尔值的方法应以前缀`is`,增加在`if`语句中的可读性。
9. 命名与范围匹配:变量名的长度应与其作用范围相匹配。局部变量可以使用简短的名字,而全局或模块级别的变量则需要更长的、更具描述性的名字。
10. 方法与类名的长度与范围的反比关系:公共方法的名字应该简短,因为它们可能被频繁调用。私有方法可以在类范围内使用较长的名字,作为文档使用。派生类的名字随着继承层次而增长。
11. 一个概念一个词:为某个概念选择一个明确的词汇,并坚持使用。避免混淆如`get()`、`fetch()`和`retrieve()`等表达相似功能的词汇。一致性是程序员驾驭代码的重要工具。
12. 避免同一词汇的多义性:遵循“一个概念一个词”的原则,可以避免使用同一词汇表示不同的概念。只有当参数列表和返回值在语义上等价时,才可以使用相同的词汇或方法名。混淆同一词汇所代表的不同概念会导致代码维护的困难。
掌握这些命名小贴士,不仅能让你的代码更加易读易懂,还能提高代码的可维护性。作为程序员,我们都应该注重代码的命名规范,让代码成为我们沟通的桥梁和工具。在编程世界中,命名是一项至关重要的技能,它不仅关乎代码的可读性,还关乎代码的长期维护。以下是关于如何更好地命名的一些建议,欢迎各位同行共同和指正。
当我们需要在类中引入一个新的方法,如add方法用于向集合中添加参数时,如果语义不明确可能会导致混淆。在这种情况下,将新方法重命名为insert()更为恰当。
使用解决方案领域的专业术语进行命名是一种很好的做法。其他程序员在阅读你的代码时,专业的命名方式会使他们更容易理解你的程序逻辑。例如,使用算法名称、设计模式名称和数学术语等。
如果找不到合适的技术术语,也可以从问题领域出发来命名。这样做可以为那些未来阅读你代码的程序员提供一些线索,帮助他们更好地理解代码意图。
添加有意义的语境也很重要。许多名字本身并无意义,只有在特定的语境(如类/函数/命名空间)中才能被理解。例如,将表示地址的多个变量封装到Address类中,这样可以更清晰地表达这些变量的含义。
要避免添加不必要的语境。只要名字的含义明确,简短的名字通常比冗长的名字更好。避免在名字前添加可以从类/包/命名空间中推断的不必要的信息。
现代IDE的强大功能使我们不再需要将类型和范围信息编码到变量名和类名中。对接口进行编码是不必要的,这只会增加代码的复杂性。如果对实现进行编码而非接口,会更为合理。
要避免使用误导性的信息。例如,如果一个变量实际上支持数组,却命名为aountList,这很容易造成误解。编程是一个社会化的活动,使用难以读懂的名字只会阻碍我们的沟通。应该避免使用那些读不出来的名字。使用短而通用的名字可能会妨碍我们在代码库中搜索事物,这对我们操作代码和重构都有影响。命名应具有描述性和具体性,以便我们在需要时能够轻松找到它们。
良好的命名习惯对于提高代码的可读性和可维护性至关重要。这些建议旨在帮助我们更好地命名,以更有效地与他人交流和合作。如有任何不同意见或建议,欢迎不吝赐教。想要了解更多相关内容可以访问原文链接查看完整文章(原文链接:[ 翻译作者为码农网 – 小峰。这些建议值得我们深入学习和实践。
编程语言
- 每个程序员需掌握的20个代码命名小贴士
- mysql 5.7.21解压版安装配置方法图文教程(win10)
- 详谈jQuery Ajax(load,post,get,ajax)的用法
- php cookie工作原理与实例详解
- javascript实现瀑布流列式布局
- 微信小程序 UI与容器组件总结
- window.location.hash知识汇总
- javascript如何实现360度全景照片问题汇总
- php实现签到功能的方法实例分析
- JS定义类的六种方式详解
- 基于canvas实现的钟摆效果完整实例
- php实现图片添加水印功能
- 非常好用的sql语句(日常整理)
- AngularJS中使用three.js的实例详解
- 体验Java 1.5中面向(AOP)编程
- PHP读取CSV大文件导入数据库的实例