分析一套源代码的代码规范和风格并讨论如何改进优化代码
Posted lm273
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析一套源代码的代码规范和风格并讨论如何改进优化代码相关的知识,希望对你有一定的参考价值。
- 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;
我选择的是Siddhi的源代码,该项目使用的编程语言是Java.其目录结构如图1所示。目录结构清晰明了,各个模块负责什么功能,仅从名称就可以大致猜出。
图1
该项目中,根据模块划分了若干个不同过的目录。命名规则为,项目名siddhi为前缀,以‘-’隔开,加上各模块实现的功能。
如图2所示,是siddhi-core模块中包名的格式。将各个相关的类放入一个包进行管理。
图2
图3到图5展示的是项目中类名的命名风格。类名使用 UpperCamelCase 风格,遵从驼峰形式。异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 TestCase 结尾。
图3
图4
图5
图6、图7是变量名和方法名的命名风格。方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,遵从驼峰形式。为了达到代码自解释的目标,任何自定义编程元素在命名时,都使用尽量完整的单词组合来表达其意。
图6
图7
- 列举哪些做法符合代码规范和风格一般要求;
- 类名、方法名、变量名遵从驼峰形式,名称本身含有意义,可以达到自注释的目的;
- 常量命名全部大写,单词间用下划线隔开;
- 抽象类命名以Abstract开头,异常类以Exception结尾,测试类以TestCase结尾。各个类的作用一目了然;
- 如果使用了设计模式,类名会以Factory、Listener等结尾,有利于读者理解代码含义。
- 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
- 将某些类命名为Executor,与JDK中多线程的部分类名重合,容易让开发者产生误解。建议命名为Operator.
- 注释少,没有Javadoc,有时要想知道方法的参数和返回值的含义,需要进入方法,看具体实现才能搞清楚。
- 总结同类编程语言或项目在代码规范和风格的一般要求
现代软件架构都需要协同开发完成,高效协作即降低协同成本,提升沟通效率,所谓无规矩不成方圆,无规范不能协作。所以项目中的成员应该选择一套统一的代码规范。
常见的有
- 名称要以驼峰形式,方法名、参数名、成员变量、局部变量都统一使用首字母小写的驼峰风格,类名使用首字母大写的驼峰风格;
- 命名要有意义。代码中的命名禁止使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义
- 缩进要统一。比如,采用 4 个空格缩进,禁止使用 tab 字符。if/for/while/switch/do 等保留字与括号之间都必须加空格等。
对于Java这门编程语言来说,阿里巴巴公司为了规范Java的代码风格,推出了《阿里巴巴Java开发手册》。Java程序员可以根据该手册上的说明进行编码。不仅如此阿里还在IDEA上开发了一款名为阿里编码规范的插件,只要下载并安装此插件,可以自动对代码进行编码规范检测,可以说是十分方便了。
图8 不符合编码规范会有提示
以上是关于分析一套源代码的代码规范和风格并讨论如何改进优化代码的主要内容,如果未能解决你的问题,请参考以下文章