提高代码质量方法

提高代码质量方法

读书

模式、trick、“最佳实践”。原则,DRY. 设计模式相关书籍

Separation of concern, least knowledge/assumption

《Code Complete》
《Refactoring》
《Clean Code》

《think in java 》,《effective java》,《设计模式》,《代码大全》

学会模块分割

良好的编码风格

bug管理工具

Refactoring

减少圈复杂度

  • SOLID, KISS 和 Golden Path (Early exit)
  • RTFM (Read the fxxking manual)

代码风格和规范

Google的代码规范 http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

代码质量审查工具

sonarqube

https://segmentfault.com/a/1190000015458921
CppDepend, SonarQube
google: https://github.com/cpplint/cpplint (Pros: 可以检查runtime/explicit, runtime/references,Cons:这是谷歌的规范)我发现用如下命令过滤掉无用文件G:_codes\cpgf>cpplint --filter=-whitespace,-readability/braces,-build/include_order,-legal/copyright G:_codes\cpgf\src\gmetaclass.cpp)
PVSStudio: https://www.viva64.com/en/b/0457/
CppCheck: http://cppcheck.sourceforge.net/ 用以检查内存泄漏,错配的内存分配和释放,缓冲区溢出,以及更多的问题。
https://metrixplusplus.github.io/home.html (No support python3)
https://github.com/terryyin/lizard

https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C,_C++

人工code review

标准化流程

读书,案例sharing meeting

多看开源代码

单元测试

代码质量管控通常需要经历的四个阶段,称之为“四个现代化”

https://zhuanlan.zhihu.com/p/29231125

阶段一:规范化

  • 风格规范 - 缩进、换行、大小写等风格问题
  • 实践规范 - 规避一些常见的隐患,或者针对特定问题的最佳实践
  • 业务规范 - 与业务有关的特殊要求,比如文案中的关键词

阶段二:自动化

自动化是指在代码规范的基础上,使用自动化工具进行质量检查,通常包括:

  • 代码规范检查 - 包括风格规范、实践规范、业务规范
  • 重复率 - 重复出现的代码区块占比,通常要求在5%以下
  • 复杂度 - 总行数,模块大小,循环复杂度等
  • 检查覆盖度 - 经过检查的行数占代码库总行数的比例

阶段三:流程化

  • 编辑时 - 使用编辑器插件,实时运行质量检查
  • 构建时 - 在本地或者开发机的构建脚本中运行质量检查
  • 提交时 - 利用Git Hooks,提交代码或者生成Pull Request时运行质量检查
  • 发布时 - 在发布脚本中再做一次质量检查,通常与自动化测试放在一起

阶段四:中心化

  • 代码规范统一管理。使用Git或者NPM包管理自动化代码质量检查的规则集,自动安装,不在本地写规则。一个团队、一类项目、一套规则。
  • 使用统一的持续集成服务。质量检查不通过的项目不能上线。
  • 建立代码质量评分制度。让项目与项目之间能够横向对比,项目自身能够纵向对比,并且进行汇总反馈。

posted on 2020-04-13 18:29  cutepig  阅读(475)  评论(0编辑  收藏  举报

导航