关于代码风格

为什么强调代码风格

不同的语言,不同的项目,都有自己的风格,就像每个人都有自己的特点一样。
代码风格是一个不容易引起注意,但又回避不了的问题。一个人独自开发的工作,对代码风格是没有明显感知的,但一群人一起开发就不一样了。当吐槽别人代码的时候,或为自己几个月前的代码汗颜的时候,很可能是因为代码风格上有了分歧,该引起所有人注意了。
一个项目代码风格的确立和维护,都是需要耗费时间和精力的,但从下面几点好处看,维护代码风格是件高收益的事:

  • 提高阅读代码效率
  • 减少语法、逻辑理解的歧义,方便更快了解别人的代码,减少沟通成本
  • 杜绝了以后关于大括号是否需要换行等风格问题的低效争论,团队更加和谐
  • 新人依据确立的规范快速融入协作,减少刚入手时容易犯的错误(因为前人踩过的坑可能已总结成规范)
  • 保持心情愉悦…

代码风格内容

此处讨论的是一个具体项目的代码规范,这样的规范就应该在项目组内经讨论确立后以文档方式储存,方便成员查看和优化。
文档要求尽可能精简,不能事无巨细地罗列所有规则,只需挑出视觉效果最明显、最基础的那部分规范。规范可包括以下几项内容:

  • Objective-C/Swift基本编码规范
    网上可找到较多详细的规范参考文档,比如: Objective-C-Coding-Guidelines-In-Chinese , Objective-C编码规范[译]
    不需要完全照搬别人总结的规范,对其适当增删后采用。
  • 本项目专属的一些编码约定
    比如Debug Log的输出格式,代码行最长字符数限制,类的前缀名,文件、文件夹命名组织方式等(“对程序员而言,命名就是工作的本质,函数名、变量名、方法名、属性名、类名和框架名等都必须具备”)。
  • 项目内一些功能模块的使用、编写规范
    常用工具类、管理类的梳理总结,客户端生成文件夹的结构,数据库字段描述等。

后面两条的内容可以说已经超出了代码规范的内容,但对减少大家沟通、学习成本是有益的,其内容可以不放在代码规范中,但同样需要文档归纳总结(虽然大家都不愿写文档,但这样的文档的作用绝对不比代码少)。

风格的确立

一个组里组代码风格的确立,一定是一个大家一起商讨的过程。
一般先由个别成员(有时候1个人的效率>多个人)结合项目旧有的代码、编程语言的特点进行整理后,大家再一起讨论进行删减补充。
商讨过程少不了半天时间,期间怎么吵都可以,但最终大家要达成一致意见。讨论结束后,持有不同意见的人也得遵守已成文的规范,所以大括号是否该换行这类问题就要放在这个时候激烈碰撞。
没有最好的规范,只有大家普遍认可的规范。

维护规范

确定一份规范文档,只完成了统一代码规范的一半工作,更重要的另一半,就是践行该规范了。
谁都有习惯一时改不过来的情况,更有编程尽兴就不注意多写或少输入了一个空格的时候,所以Code Review的一大任务,就是细致检查队友是否遵循了规范,几次下来大家就都长记性了。但是风格错误的检查,应该只是前几次Code Review的重要内容,之后的Code Review就不应再过多谈论这些小细节了。
至于老代码是否需要按新规范来改,建议还是别动,工程可能非常巨大。当做新功能需要修改到老代码时,顺手改改那一块代码就行。
再就是代码规范的更新,虽然这种文档内容一般不容易有大的变动(除非像Objective-C转Swift之类大动作),但真要新增规范、或者剔除一些老旧规则时,要积极提出修改建议,及时更新文档。

挖个坑下篇文章再总结下现在养成习惯遵守的一些编码规范。

我的博客原址:http://www.wangjiawen.com/ios/why-code-style

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容