代码质量检查

1. 对现有问题的分析
  • 命名不规范(属性名,方法名)
  • Reatin Delegate
  • 用指针和普通类型做比较
  • 又自又长的旧语法
  • 对代码中的问题没有度量
  • 个性化测试需求
  • 缺陷代码级定位
  • 缺少白盒测试,可能有些问题在非常规情况才会发生
2. 现有工具分析
  1. Clang compiler

    Clang compiler包含很多使用警告,是的,当我写上TODO时,他就会显示出来
    
  2. Clang Static Analyzer

    Clang Static Analyzer可以检测 很多有关内存管理的问题,和不建议使用的API  
    
  3. Xcode IDE

    Xcode IDE 也可以警告比如: 
    xib 中 view放的位置不正确,或者约束问题    
    设置了不正确的图片集
    不建议使用的 构建参数
    
3. 目标:希望有一款这样的工具
  1. 自动进行内存泄露检测&Best Practice。
  2. 代码静态扫描
  3. 代码动态检测
  4. 自定制化一些功能。

1. FauxPas优势一 更全面

代码 项目配置 Xib文件
静态资源(比如 图片资源) 版本控制

2. FauxPas优势二 更加自由

苹果标准开发工具 是为每个在苹果平台开发的开发者写用。 这意味着,这个工具很局限,并且很保守。

而FauxPas是第三方的工具,意思着他没有这些限制 。 Faux Pas 有很多”最佳实践”,但是开发者不需要全部接受。 你只需要根据当前的项目环境,配置不同的规则。甚至你还可以微调他们以匹配不同的开发团队的喜好。

高度自定制 -- 自由选择性规则 -- 导出形式

3. FauxPas设计原则
  1. 不会和标准工具链有重复警告
  2. 不需要用户去修改项目和代码
  3. GUI和CLI 都很重要
4. Faux pas 规则种类
  1. 最佳体验
  2. 资源
  3. 配置
  4. 国际化
  5. API使用
  6. 版本控制
  7. 代码风格
  8. 其它
总结

我们可以利用自动化代码检查工具来帮我们去实现代码的质量检查,并生成相对应的报告。笔者更推荐FauxPas + Clang Static Analyzer结合使用。对于一些命名规范、图片资源缺失、线程安全等都可以由FauxPas检测,但FauxPas并不是Clang Static Analyzer的代替,更像是一种补充和完善。

遇到的问题
1. swift项目编译不了

解决办法: Add the value DEFINES_MODULE=NO to the “Additional xcodebuild arguments to use” (--extraXcodebuildArgs) option.
This seems to work around this issue for the Stripe project (ping Jack Flintermann) — evgenykarkan and Ronak Patel please let me know if this works for you, too.

在extraXcodebuildArgs里增加 "DEFINES_MODULE=NO"

传送门

参考资料
  1. 使用Clang静态分析器
  2. Clang 官网