前言
代码就是程序员的面子,你要面子波?中国人都爱面子,所以好好写一辈子优雅的代码呗。写代码这事就像生个孩子,您总不希望辛辛苦苦生的娃,被您养成了废物吧,不知道读者您是不是,反正我要是养了个废物还不如死了算了(shuoshuoeryi)。所以自觉点。
上文是对个人的要求的,我相信对自己有要求的程序员是会听的。但是在团队里,每个程序员写代码的态度是不同的,写代码的风格也是不同的,即使同一个程序员也会因为心情,因为经常加导致写代码的状态不同,而写出不同风格不同格式的代码。作为团队技术管理者就头疼了,为了项目的可读性可维护性,就想出了定制代码规范这招,然后希望团队按照这个规范去写代码。想的不错,不过也想得美,程序员可是闷骚无拘无束出了名的,当面看起来很听话,背地里完全不吊你。虽然定制代码规范后团队代码质量有所起色,但各路神仙那出家的程序员,最后的结局依然是写出了各路神仙那出家的代码。您作为管理者,不太好在代码review的时候为各种简单的代码规范问题不断的给出注释。更不敢当面批评他们,这帮混蛋屌丝真的是屌丝,一不高兴就撂挑子不干了。所以技术人还是应该用技术的方式去管理程序员才是治理他们的良方,他们就服服帖帖了,所谓以技服人。
前面两段请自觉剪掉,我是装逼的,嗯嗯,其实这篇文章是写给懒程序员的,谁愿意为了点代码规范花时间啊,我是来先程序的,难道为了代码规范还得操碎心吗?嗯嗯,我就是因为不想操心这种不相关的事情所以才想找方法去解决这种我不想care的事情的。嗯嗯。
Dang Dang Dang,Dang Dang Dang(请脑补响起贝多芬命运交响曲第九交响曲,谢谢)..今天就给大家隆重介绍这款神器,这真不是一般的神器,是去百货摊买不到的神器,是环游世界也见识不到的神器。没错,它就是ClangFormat-Xcode。只在这里可以免费买到,只在这里可以见识到,下载地址:clangFormat-Xcode
ClangFormat-Xcode介绍
要介绍ClangFomat-Xcode,就需要知道clang-format工具,这款工具可以用来格式化C/C++/Objective-C语言编写的代码。它会根据您的格式化配置,将代码规范成您期望的格式。clang-format工具也内置了LLVM、Google、Chromium、Mozilla、WebKit代码风格的配置。这样我们就不用完全配置所有的代码格式了,而是可以基于这些默认的集中风格,动动手指修改一些配置参数,为自己团队的代码规范所用了。关于clang-format就介绍这么多,关于更多可以参考官方文档:《Clang 4.0 documentation》。
而ClangFomat-Xcode就是一款为Xcode便利化使用clang-format工具的一款插件了,仅此而已,,仅此足以,为人民服务的在我心里是最伟大的。感谢大神@travisjeffery的贡献,为iOS开发没有很好的格式化代码的工具带来了福音。
ClangFormat-Xcode安装
ClangFomat-Xcode的GitHub地址:戳这里,你可以通过Alcatraz安装,也可以下载下来运行安装,重启下应该就可以在菜单Edit看到Clang Format选项了。这里要是还不会,就直接付费咨询我吧。
clang format配置
前面我已经提到了,clang format 工具了,CLangFormat本身就内置了LLVM、Google、Chromium、Mozilla、WebKit的基础样式。而几乎比较好的代码规范大部分内容他们都包括了,所以我们完全可以基于这些基础样式来实现我们各自团队稍微差异的部分。具体配置方式,在我们的项目工程目录或者workspace目录下创建一个”.clang-format”文件。然后修改配置如下,下面我贴一下我项目中的配置吧。
1 | # 你的项目基于的基础样式,我的项目是基于LLVM的 |
记住,如果要让这个配置管用,确认Edit -> clang format -> File,file是勾选状态。
关于clang format格式化配置个多参数介绍,推荐阅读官方文档:《Clang-Format Style Options》
clang format全局配置
配置是一样的,前面一段提到把配置文件放在项目目录下,这种配置就是项目配置,如果把”.clang-format”文件放在家目录下就是全配置了嘛。嘿嘿,把全局配置单拉出来就是怕您忙注意不到,所以显摆出来。我给力吧。点个赞打赏吧。
Clangformat-Xcode使用
通常我会在设置在保存command+s时候自动格式化代码。确认Edit -> clang format -> Enable format on save 改成 Edit -> clang format -> Disable format on save 。这样就开启了保存时自动格式化了。当然你也可以给格式化创建一个单独的快捷键。不过我觉得没必要啦。
总结
SoSo。标准化代码是如此的容易,你还有理由写出烂代码吗?我替你做主了,绝对没有,以后乖乖滴写好代码,Come on。