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

  • 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;

  我选择的是Siddhi的源代码,该项目使用的编程语言是Java.其目录结构如图1所示。目录结构清晰明了,各个模块负责什么功能,仅从名称就可以大致猜出。该项目中,根据模块划分了若干个不同过的目录。命名规则为,项目名siddhi为前缀,以‘-’隔开,加上各模块实现的功能。比如,siddhi-core中,存放的是Siddhi的核心模块,主要功能在这里实现。siddhi-samples存放的就是官方提供的一些示例,可以供开发者进行测试使用。

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第1张图片

图1

  如图2所示,是siddhi-core模块中包名的格式。将各个相关的类放入一个包进行管理。从图2可以看出,siddhi-core中的主要模块有,聚合模块、查询模块、存储模块等等。负责管理全局的类就直接放在siddhi-core这个包下,比如SiddhiManager、SiddhiRuntimeImpl.从类名就可以看出SiddhiRuntimeImpl类是SiddhiRuntime接口的实现。

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第2张图片

图2

  图3到图5展示的是项目中类名的命名风格。类名使用 UpperCamelCase 风格,遵从驼峰形式。异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 TestCase结尾。这样做的好处显而易见,开发者仅从类名就能很清楚地知道该类是属于测试还是异常。

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第3张图片

 图3

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第4张图片

图4

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第5张图片

图5

  图6、图7是变量名和方法名的命名风格。方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,遵从驼峰形式。为了达到代码自解释的目标,任何自定义编程元素在命名时,都使用尽量完整的单词组合来表达其意。

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第6张图片

   图6

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第7张图片

图7

  • 列举哪些做法符合代码规范和风格一般要求;
  1. 类名、方法名、变量名遵从驼峰形式,名称本身含有意义,可以达到自注释的目的;
  2. 常量命名全部大写,单词间用下划线隔开;
  3. 抽象类命名以Abstract开头,异常类以Exception结尾,测试类以TestCase结尾。各个类的作用一目了然;
  4. 如果使用了设计模式,类名会以Factory、Listener等结尾,有利于读者理解代码含义。
  • 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
  1. 将某些类命名为Executor,与JDK中多线程的部分类名重合,容易让开发者产生误解。建议命名为Operator.
  2. 注释少,没有Javadoc,有时要想知道方法的参数和返回值的含义,需要进入方法,看具体实现才能搞清楚。
  3. 有些地方注释含义模糊,方法太长,不利于源码阅读。建议将代码进行重构,过长的代码段可以拆分成多个小的方法。
  • 总结同类编程语言或项目在代码规范和风格的一般要求

  现代软件架构都需要协同开发完成,高效协作即降低协同成本,提升沟通效率,所谓无规矩不成方圆,无规范不能协作。所以项目中的成员应该选择一套统一的代码规范。

  常见的有

  1. 名称要以驼峰形式,方法名、参数名、成员变量、局部变量都统一使用首字母小写的驼峰风格,类名使用首字母大写的驼峰风格;
  2. 命名要有意义。代码中的命名禁止使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义
  3. 缩进要统一。比如,采用 4 个空格缩进,禁止使用 tab 字符。if/for/while/switch/do 等保留字与括号之间都必须加空格等。

  对于Java这门编程语言来说,阿里巴巴公司为了规范Java的代码风格,推出了《阿里巴巴Java开发手册》。Java程序员可以根据该手册上的说明进行编码。不仅如此阿里还在IDEA上开发了一款名为阿里编码规范的插件,只要下载并安装此插件,可以自动对代码进行编码规范检测,可以说是十分方便了。

  图8 不符合编码规范会有提示

 

你可能感兴趣的:(分析一套源代码的代码规范和风格并讨论如何改进优化代码)