分析一套源代码的代码规范和风格并讨论如何改进优化代码
Posted ustc-yz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析一套源代码的代码规范和风格并讨论如何改进优化代码相关的知识,希望对你有一定的参考价值。
1. 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;
在本文中将要分析的代码是leveldb,该项目的源码目录结构如下:
其中
- cmake:存放cmake构建项目的相关文件
- db:leveldb的逻辑功能实现
- doc:leveldb的相关文档
- helper:文件系统的实现,提供文件操作的接口
- include: 对其他project暴露的接口的头文件
- port:跨平台实现
- table:leveldb中主要数据结结构如sstable的实现
- util:通用函数接口
对于level中的命名规范遵循Google C++ Style Guide,其中文件名要全部小写, 可以包含下划线 _
或连字符-,C++文件要以
.cc
结尾, 头文件以.h
结尾。
类名每个单词首字母均大写, 类名中不能出现下划线。普通变量使用小写字母和下划线的组合,类数据成员在普通变量的基础上最后以下划线结尾。而函数使用大小写混合和下划线组合的形式。
命名空间的名称全部小写
枚举中的的枚举值k开头剩余单词首字母大写
宏命名使用字母数字和下划线的组合,其中字母全部大写
对于leveldb中的注释全部使用//,在每个头文件中都会加上leveldb的license
对于leveldb中的单元测试文件,会分布在各个具体实现的类的文件夹中,测试文件名以_test结尾,编译后测试的可执行文件会集中放在build/文件夹中
2. 列举哪些做法符合代码规范和风格一般要求;
google作为当今的IT巨头,它的编码规范是在许多服务亿万用户的大型工程中磨炼出来的,那么它的代码规范并没有什么大问题,与当今的编码规范符合,因为有很多公司的编码规范也是按照Google Style Guide去实施的。
3. 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
个人认为leveldb代码的最为难受的一点是它使用了两个空格的缩进,在我看来这种做法的层次不够清晰,在阅读时感觉十分不适应。解决办法:把两个空格的缩进改为最流行的四个空格缩进。
4. 总结同类编程语言或项目在代码规范和风格的一般要求。
C++的一般要求为使用缩进为4格的Google C++ Style Guide。
以上是关于分析一套源代码的代码规范和风格并讨论如何改进优化代码的主要内容,如果未能解决你的问题,请参考以下文章