首页 > 其他 > 详细

分析一套源代码的代码规范和风格并讨论如何改进优化代码

时间:2019-10-09 11:38:12      阅读:72      评论:0      收藏:0      [点我收藏+]

https://github.com/google/nomulus

 

读一些大厂的代码其实是一些很有帮助的事情,这不仅仅是技术层面上,更是在代码的使用规范层面上。在一些大型企业的大型项目中,同一段代码往往要经过很多人审阅和维护、时间跨度更是可能长达数年之久。因此使用一些通用的规范来约束,提升代码的可读性和可维护性是非常重要的。本文选择了GitHub上google的部分开源java代码,来探讨其中有哪些可以学习的地方。(由于代码较多,故贴上链接)

 

1.命名规则:

 

尽管java允许以_和$作为常量和变量的首字符,但是在google的代码中基本不将这两个字符用于命名的首部。

 

类名采取UpperCamelCase风格,而方法名,变量名普遍采用lowerCamelCase风格,而常量名采取MAX_COUNT全大写加下划线的形式,以作区分。也便于理解变量含义,增强可读性。

 

包名采用全小写,每个单词单独断句的形式。

 

接口的方法和属性则普遍不加任何的修饰符号,包括public,保持代码的简洁性。

 

2.常量定义:

 

有一个特别有意思的特征。使用Long为常量赋初值时,普遍采用大写的“L”,这和其他的数据类型有些不同。我猜测是因为l和数字1在IDE中不易区分。

 

3.规范格式:

 

大括号的使用有严格标准。左大括号前是不换行的,右大括号前换行。这应该纯粹是个习惯问题。

 

if/switch/for/while等保留字和括号之间都要加空格,为了美观和可阅读性。

 

运算符左右必须加空格,这也是个习惯问题,可以大大增强美观和可阅读性。

 

google规范里明确表示:禁止使用TAB字符!!!!!

 

 

其实google的代码里还有很多特征。比如对类方法和方法访问控制的要求、对集合方法重构的处理、并发线程处理、控制语句的要求等等。这些都是非常重要的。比如google的代码里就很少出现多层控制语句的嵌套,大多使用卫语句或者设计模式来实现。但这些特征往往需要通过大量代码的书写、或者公司专门的要求才能慢慢都总结出来。我目前还处在不断学习的阶段,希望在将来能对这些深入的特征做一些细致的总结。

 

 

技术分享图片

 

这是数据商店服务工具的部分源代码,可以对google的命名方式管中窥豹。可以看出包名、类名、方法名的命名都是严格遵守规范的。

 

 技术分享图片

 

再贴随机生成字符串序列的源代码。可以看出来在运算中对空格的使用有着非常严格的要求。该段并没有出现long数据类型,否则首字母也一定会大写。

分析一套源代码的代码规范和风格并讨论如何改进优化代码

原文:https://www.cnblogs.com/mrjoker97/p/11638945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!