ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8-代码简洁之道

2019-07-20 20:04:28  阅读:176  来源: 互联网

标签:简洁 代码 之道 程序员 名称 使用 命名 变量名 类名


代码简洁之道

有意义的命名

1.1 介绍

软件中随处可见命名。我们给变量、函数、参数、类和包命名。我们给源代码及源代码所在目录命名。
这么多命名要做,不妨做好它。下文列出了取个好名字的几条简单规则。

1.2 名副其实,见名知意

​ 变量名太随意,haha、list1、ok、theList 这些都没啥意义

1.3 避免误导

​ 包含List、import、java等类名、关键字或特殊字;
​ 字母o与数字0,字母l与数字1等
​ 提防使用不同之处较小的名称。比如:XYZControllerForEfficientHandlingOfStrings与XYZControllerForEfficientStorageOfStrings

1.4 做有意义的区分

​ 反面教材,变量名:a1、a2、a3
​ 避免冗余,不要出现Variable、表字段中避免出现table、字符串避免出现nameString,直接name就行,知道是字符串类型
​ 再比如:定义了两个类:Customer类和CustomerObject类,如何区分?
​ 定义了三个方法:getActiveAccount()、getActiveAccounts()、getActiveAccountInfo(),如何区分?

1.5 使用读得出来的名称

​ 不要使用自己拼凑出来的单词,比如:xsxm(学生姓名);genymdhms(生成日期,年、月、日、时、分、秒)
​ 所谓的驼峰命名法,尽量使用完整的单词

1.6 使用可搜索的名称

​ 一些常量,最好不直接使用数字,而指定一个变量名,这个变量名可以便于搜索到.
​ 比如:找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。

1.7 避免使用编码

​ 2.7.1 匈牙利语标记法
​ 即变量名表明该变量数据类型的小写字母开始。例如,szCmdLine的前缀sz表示“以零结束的字符串”。
​ 2.7.2 成员前缀
​ 避免使用前缀,但是Android中一个比较好的喜欢用m表示私有等,个人感觉比较好
​ 2.7.3 接口和实现
​ 作者不喜欢把接口使用I来开头,实现也希望只是在后面添加Imp

1.8 避免思维映射

​ 比如传统上惯用单字母名称做循环计数器。所以就不要给一些非计数器的变量命名为:i、j、k等

1.9 类名

​ 类名与对象名应该是名词与名词短语。如Customer、WikiPage、Account和AddressParser。避免使用Data或Info这样的类名。
​ 不能使动词。比如:Manage、Process

1.10 方法名

​ 方法名应当是动词或者动词短语。如postPayment、deletePage或save

1.11 别扮可爱

​ 有的变量名叫haha、banana
​ 别用eatMyShorts()表示abort()

1.12 每个概念对应一个词

​ 项目中同时出现controllers与managers,为什么不统一使用其中一种?
​ 对于那些会用到你代码的程序员,一以贯之的命名法简直就是天降福音。

1.13 别用双关语

​ 有时可能使用add并不合适,比例insert、append。add表示完整的新添加的含义。

1.14 使用解决方案领域名称

​ 看代码的都是程序员,所以尽量用那些计算机科学术语、算法名、模式名、数学术语,
​ 依据问题所涉领域来命名不算是聪明的做法。

1.15 使用源自所涉问题领域的名称

​ 如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。
​ 至少,负责维护代码的程序员就能去请教领域专家了。

1.16 添加有意义的语境

​ 可以把相关的变量放到一个类中,使用这个类来表明语境。

1.17 不要添加没用的语境

​ 名字中带有项目的缩写,这样完全没有必要。比如有一个名为“加油站豪华版”(Gas Station Deluxe)的项目,
​ 在其中给每个类添加GSD前缀就不是什么好策略。

1.18 最后的话

 取好名字最难的地方在于需要良好的描述技巧和共有文化背景。

标签:简洁,代码,之道,程序员,名称,使用,命名,变量名,类名
来源: https://blog.csdn.net/qq_43420195/article/details/96622332

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有