原则
有几个原则可以帮助大家不看文档也能写出符合规范的代码:
- 如果是修改已有的代码,跟周围的风格一致
- 如果是使用系统SDK来开发,除非特别说明,风格要和系统SDK一致
- 新建文件写代码都按规范来写;旧文件中不符合规范的代码,找个合适的时间批处理格式化。
- 学会IDE如何设置默认的代码格式
如果无公司标准,为了方便都使用谷歌的代码规范集,它已覆盖了很多流行的编程语言。
规范
iOS
Apple本身做了很好的规范,[《Apple Cocoa代码规范》](
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html)。有人对此做了《中文翻译》。
谷歌本身在此基础上做了扩展,《Google Objective-C代码规范》。
对上述两个规范,有中文的总结文章《iOS编码规范精简版》,但不够全面。
Android
Android开源项目(AOSP)有自己的《Java规范》(需要翻墙),但AOSP本身建议应用开发者遵守的是《谷歌的Java规范》。
阿里巴巴参考谷歌,编写了《Java开发手册》,并为Eclipse和IntelliJ IDEA做了代码扫描和修正插件p3c(见后文)。
工具
clang-format
可以用来格式化C、C++、Java、JavaScript、Objective-C、Protobuf代码。官方介绍与使用说明:http://clang.llvm.org/docs/ClangFormat.html 。
获取方法,到 http://releases.llvm.org/download.html 根据操作系统下载Pre-Built Binaries
。以macOS为例,下载clang+llvm-5.0.0-x86_64-apple-darwin.tar.xz
解压后,在bin
目录能找到clang-format
可执行文件,约2MB。然后在命令行运行它即可格式化代码:
# -i参数表示格式化后覆盖保存文件
# --style=LLVM表示使用LLVM风格来格式化,还可以选择Google等风格
clang-format -i --style=LLVM aaa.h bbb.cpp ccc.m
# 使用管道可以避免一个个文件来输入
find ./code_src_dir -name *.h -o -name *.c | xargs clang-format -i
# 更多用法可用下命令列出
clang-format -h
阿里p3c
Java代码扫描和修正插件。源码地址:https://github.com/alibaba/p3c 。代码规范的pdf也在此库中。
集成到Android Studio的指南:https://github.com/alibaba/p3c/tree/master/idea-plugin