iOS开发高手课
戴铭
前滴滴出行技术专家
立即订阅
11464 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 锚定一个点,然后在这个点上深耕
免费
基础篇 (20讲)
01 | 建立你自己的iOS开发知识体系
02 | App 启动速度怎么做优化与监控?
03 | Auto Layout 是怎么进行自动布局的,性能如何?
04 | 项目大了人员多了,架构怎么设计更合理?
05 | 链接器:符号是怎么绑定到地址上的?
06 | App 如何通过注入动态库的方式实现极速编译调试?
07 | Clang、Infer 和 OCLint ,我们应该使用谁来做静态分析?
08 | 如何利用 Clang 为 App 提质?
09 | 无侵入的埋点方案如何实现?
10 | 包大小:如何从资源和代码层面实现全方位瘦身?
11 | 热点问题答疑(一):基础模块问题答疑
12 | iOS 崩溃千奇百怪,如何全面监控?
13 | 如何利用 RunLoop 原理去监控卡顿?
14 | 临近 OOM,如何获取详细内存分配信息,分析内存问题?
15 | 日志监控:怎样获取 App 中的全量日志?
16 | 性能监控:衡量 App 质量的那把尺
17 | 远超你想象的多线程的那些坑
18 | 怎么减少 App 电量消耗?
19 | 热点问题答疑(二):基础模块问题答疑
20 | iOS开发的最佳学习路径是什么?
应用开发篇 (12讲)
21 | 除了 Cocoa,iOS还可以用哪些 GUI 框架开发?
22 | 细说 iOS 响应式框架变迁,哪些思想可以为我所用?
23 | 如何构造酷炫的物理效果和过场动画效果?
24 | A/B 测试:验证决策效果的利器
25 | 怎样构建底层的发布和订阅事件总线?
26 | 如何提高 JSON 解析的性能?
27 | 如何用 Flexbox 思路开发?跟自动布局比,Flexbox 好在哪?
28 | 怎么应对各种富文本表现需求?
29 | 如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发?
30 | 如何制定一套适合自己团队的 iOS 编码规范?
31 | iOS 开发学习资料和书单推荐
32 | 热点问题答疑(三)
原理篇 (6讲)
33 | iOS 系统内核 XNU:App 如何加载?
34 | iOS 黑魔法 Runtime Method Swizzling 背后的原理
35 | libffi:动态调用和定义 C 函数
36 | iOS 是怎么管理内存的?
37 | 如何编写 Clang 插件?
38 | 热点问题答疑(四)
原生与前端共舞 (5讲)
39 | 打通前端与原生的桥梁:JavaScriptCore 能干哪些事情?
40 | React Native、Flutter 等,这些跨端方案怎么选?
41 | 原生布局转到前端布局,开发思路有哪些转变?
42 | iOS原生、大前端和Flutter分别是怎么渲染的?
43 | 剖析使 App 具有动态化和热更新能力的方案
用户故事 (1讲)
用户故事 | 我是如何学习这个专栏的?
结束语 (1讲)
结束语 | 慢几步,深几度
iOS开发高手课
登录|注册

30 | 如何制定一套适合自己团队的 iOS 编码规范?

戴铭 2019-05-18
你好,我是戴铭。
如果团队成员的编码规范各不相同,那么你在接收其他人的代码时是不是总会因为无法认同他的代码风格,而想着去重写呢。但是,重写这个事儿不只会增加梳理逻辑和开发成本,而且重写后出现问题的风险也会相应增加。那么,这个问题应该如何解决呢?
在我看来,如果出现这种情况,你的团队急需制定出一套适合自己团队的编码规范。有了统一的编码规范,就能有效避免团队成员由于代码风格不一致而导致的相互认同感缺失问题。
那么,如何制定编码规范呢?在接下来的内容里,我会先跟你说说,我认为的好的编码规范。你在制定编码规范时,也可以按照这个思路去细化出更多、更适合自己的规范,从而制定出团队的编码规范。然后,我会再和你聊聊如何通过 Code Review 的方式将你制定的编码规范进行落地。

好的代码规范

关于好的代码规范,接下来我会从常量、变量、属性、条件语句、循环语句、函数、类,以及分类这 8 个方面和你一一说明。

常量

在常量的使用上,我建议你要尽量使用类型常量,而不是使用宏定义。比如,你要定义一个字符串常量,可以写成:
static NSString * const STMProjectName = @"GCDFetchFeed"

变量

对于变量来说,我认为好的编码习惯是:
变量名应该可以明确体现出功能,最好再加上类型做后缀。这样也就明确了每个变量都是做什么的,而不是把一个变量当作不同的值用在不同的地方。
在使用之前,需要先对变量做初始化,并且初始化的地方离使用它的地方越近越好。
不要滥用全局变量,尽量少用它来传递值,通过参数传值可以减少功能模块间的耦合。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《iOS开发高手课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(7)

  • clownfish
    前辈,我看了你说的大部分都是Effective 2.0里面的内容,有没有一些您在工作实践中的代码规范要求呢,例如我想到的使用#pragma 做代码分区等一些,

    作者回复: 15年我整理过一篇,可以参看下。https://github.com/ming1016/study/wiki/%E6%9E%84%E5%BB%BAiOS%E7%A8%B3%E5%AE%9A%E5%BA%94%E7%94%A8%E6%9E%B6%E6%9E%84%E6%97%B6%E6%96%B9%E6%A1%88%E9%80%89%E6%8B%A9%E7%9A%84%E6%80%9D%E8%80%83

    2019-05-18
    10
  • 郑杰
    静态类型需要 变量名加类感觉没有必要吧
    2019-05-18
    1
    1
  • null
    与其说是代码规范,不如说涵盖的是思想在里面。而国外一些经典的书籍已经给出答案了,建议程序员必读书籍《重构改善既有的代码设计》。
    2019-09-21
  • Dylan 👻王兴彬
    「写代码的首要任务是能让其他人看得懂,千万不要优先过度工程化。」,过度工程化该怎么理解呢?是否能举个例子?

    作者回复: 指的是定下的规则,有些规则设计的和自身业务比较贴近,不具有通用性,但是对于特定业务团队自身具有很好的工程质量保障。

    2019-06-23
  • Geek_462d99
    强累推荐[Clean Code](https://book.douban.com/subject/4199741/)这本书,作者Bob在书中说出了很多代码规范和技巧。
    2019-06-01
  • 肥仔
    这篇很有帮助,看来要花很多时间去实践一下才行,编码规范真的很重要

    作者回复: 是的,多人协作规范还能够提高沟通效率

    2019-05-31
  • 大头
    同意一楼的建议
    2019-05-20
收起评论
7
返回
顶部