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

Posted russian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析一套源代码的代码规范和风格并讨论如何改进优化代码相关的知识,希望对你有一定的参考价值。

我的工程实践为《智能wifi无线通信系统的分析与设计》,由于工程偏向硬件,所以找了树莓派机器人相关的源码,包括andriod控制端和wifi模块的设计。     技术图片

   如图为目录结构。

技术图片

 

 如图为类名定义和函数定义,均符合命名规范。

技术图片

 如图为socket连接,注释简洁明了。

 此段为python代码,树莓派配置AP热点,实时上传视频流到固定的网址。

如下介绍python代码的风格规范:

代码规范:

  1 .缩进:4个空格实现缩进,尽量不使用Tab,禁止混用Tab和空格

  2.行:每行最大长度不超过79,换行可以使用反斜杠()。最好使用圆括号将换行内容括起来,不建议使用“;”

  3.导入:

     imports 仅仅用做包和模块的导入,包的导入每个尽量独占一行

    推荐使用绝对导入,标准库代码应总是使用绝对导入。在包结构比较复杂时,可以使用相对导入。

  4.注释:

    行注释:行注释和代码声明间至少间隔两个空格。

    块注释:同等级别的一块代码的注释,块注释内每行注释以 # 开头,内部注释段落之间使用以 # 开头的空行注释隔开。

    避免无谓的注释

  5.命名:

    类名:类名通常使用驼峰式命名习惯,使用驼峰式时,缩写全部大写,例如:HTTPServerError 好于 HttpServerError。

    函数与方法参数:实例方法第一个入参一定要是 self。类方法第一个入参一定要是 cls。如果函数入参名和保留关键字冲突,则后缀下划线好过缩写或者糟糕的拼写。

         常量:  常量一般定义在模块级别。命名风格如:MAX_OVERFLOW 或 TOTAL 。

    公共和内部接口:模块应该使用 __all__ 属性明确声明公共 API 名,如果 __all__ 为空,则表明模块没有公共 API。尽管使用了 __all__ 属性,内部接口仍然需要使用前缀下划线。

  6.非ASCII字符:尽量不使用非 ASCII 字符, 使用时必须使用 UTF-8 编码.即使是英文, 也不应将用户界面的文本硬编码到源代码中, 因此非 ASCII 字符应当很少被用到. 特殊情况下可以适当包含此类字符. 

  7.函数调用:要么一行写完函数调用, 要么在圆括号里对参数分行, 要么参数另起一行且缩进四格. 如果没有其它顾虑的话, 尽可能精简行数, 比如把多个参数适当地放在同一行里.

  8.预处理指令/命名空间不使用额外缩进, 类/结构体/枚举/函数/语句使用缩进;

  技术图片

 

  如图,在此项目中 行注释应该在一句代码后记注释,他将注释放到代码上方有悖规范。

 

技术图片

 

也多了不少无谓的注释,不够简洁。此代码优化则要规范行代码的注释,因为是硬件模块所以在代码也需要模块化注释以下,另外删去无谓的代码。

 

总结同类编程语言c++在代码规范和风格的一般要求:

  1.大括号使用规则:左括号前不换行;右括号后有else等代码时不换行。

  2.if、for、while、switch、do等关键字与左右括号之间必须加空格;任何运算符左右必须加空格。

    建议:即使if判断后只跟一个语句也要加上大括号。

    原因:便于阅读;就算日后要修改if的执行语句也比较方便。

  3.换行规范:单行字符数最好不超过80个字符。

     第二行相对第一行缩进4个空格,其余行与第二行对齐;运算符与下文一起换行;多个参数则在逗号后换行;小括号前不得换行。

  4.在方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间要插入空行;换而言之,具有相同语义、功能的语句要尽量放在一起。

  5.当一个类有多个同名方法时,按顺序放置,便于阅读。

  6.类内方法的定义顺序推荐采用:公有或保护>私有>getter、setter。

     原因:公有类的调用和维护是最为重要的,首屏展示最好;保护方法虽然只是应用于子类,也可能是“模板设计模式”下的核心方法(抽象类知识点);私有方法外部一般不关心;而其余方法信息价值相对较低。

 

 

以上是关于分析一套源代码的代码规范和风格并讨论如何改进优化代码的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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