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

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

  主要分析了elasticsearch:Open Source, Distributed, RESTful Search Engine,文件结构:

 

 

   这款软件主要是按照不同的功能划分了不同的Java包名,每个包里面的类都分别完成这个软件的某个模块。

2.列举哪些做法符合代码规范和风格一般要求;

  这款软件有一些专门的单元测试,每一个类和一些主要的public方法都会进行注释,方便了以后代码的更新和维护。

3.总结同类编程语言或项目在代码规范和风格的一般要求。

  这里主要总结一些Java的编程规范:

  1.对于具有特殊转义序列的任何字符(\b, \t, \n, \f, \r, ", '及\),我们使用它的转义序列,而不是相应的八进制(比如\012)或Unicode(比如\u000a)转义;对于剩余的非ASCII字符,是使用实际的Unicode字符(比如∞),还是使用等价的Unicode转义符(比如\u221e),取决于哪个能让代码更易于阅读和理解.

  2.一个源文件包含(按顺序地):许可证或版权信息(如有需要),package语句,import语句,一个顶级类(只有一个),以上每个部分之间用一个空行隔开。

  3.当一个类有多个构造函数,或是多个同名方法,这些函数/方法应该按顺序出现在一起,中间不要放进其它函数/方法。

  4.一个空的块状结构里什么也不包含,大括号可以简洁地写成{},不需要换行。例外:如果它是一个多块语句的一部分(if/else 或 try/catch/finally) ,即使大括号内没内容,右大括号也要换行。

  5.不要在一个代码块的开头把局部变量一次性都声明了(这是c语言的做法),而是在第一次需要使用它时才声明。 局部变量在声明时最好就进行初始化,或者声明后尽快进行初始化。

  6.在一个switch块内,每个语句组要么通过break, continue, return或抛出异常来终止,要么通过一条注释来说明程序将继续执行到下一个语句组, 任何能表达这个意思的注释都是OK的(典型的是用// fall through)。这个特殊的注释并不需要在最后一个语句组(一般是default)中出现。

  7.注解紧跟在文档块后面,应用于类、方法和构造函数,一个注解独占一行。这些换行不属于自动换行,因此缩进级别不变。

  8.块注释与其周围的代码在同一缩进级别。它们可以是/* ... */风格,也可以是// ...风格。对于多行的/* ... */注释,后续行必须从*开始, 并且与前一行的*对齐。

  9.只要是合法的,就把@Override注解给用上。

  10.标准的Javadoc标记按以下顺序出现:@param@return@throws@deprecated, 前面这4种标记如果出现,描述都不能为空。 当描述无法在一行中容纳,连续行需要至少再缩进4个空格。

posted on 2019-10-10 14:41  galvinchan  阅读(150)  评论(0编辑  收藏  举报

导航