本文分析的源代码是keepalived,keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
一、结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点。
keepalived是用c语言实现的,代码目录结构是按照模块划分的,有安装bin目录,doc目录和lib目录等。文件名是以文件实现的一组功能集命名,一个文件里的函数为实现一个模块功能的接口函数,函数名是更具体的功能含义,一般要做到见名知意。变量名和函数名定义规范一样,也是根据变量的含义功能来命名变量。单独有目录为测试接口API,作用是测试接口,即单元测试。
二、列举哪些做法符合代码规范和风格一般要求
keepalived在函数命名,文件命名,变量命名都符合代码规范,并且命名风格采用下划线来分割变量名或函数名,便于阅读,做到见名知意。keepalived源码是一个学习良好代码规范和良好代码风格的好的范例。
三、列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
keepalived代码在简洁上,清晰以及无歧义上做的很好,没有这三个问题,但是就是注释有点好,对函数的注释,以及一些关键性的语句注释欠少,希望能进一步优化代码注释这块。
四、总结同类编程语言或项目在代码规范和风格的一般要求
这里以c原因为例,简略介绍:
1.变量名和函数名命名采用下划线分隔单词,在简洁的基础上做到见名知意
2.要采用缩进风格
3.一般情况下,源程序有效注释量必须在20%以上。
4.文件头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、修改日志等。
5.函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值等。注释格式尽量统一,建议使用“/* …… */”。
6.避免使用不易理解的数字,用有意义的标识来替代。
7.不要使用难懂的技巧性很高的语句,除非很有必要时。
8.不允许把多个短语句写在一行中,即一行只写一条语句。
还有很多规范,这里不一一列举了。