又开始看直播了,之前叶孤城他们的直播暂停了,但现在是趣直播了,昨天听了没故事的卓同学讲的iOS开发中提高代码质量的10件事,特此记录下。
- 1、为什么要重视代码质量
- 2、代码质量不等于 性能
- 3、不要写重复的代码(Don’t Repeat Yourself)
- 4、一段代码不要超过一定的长度
- 5、注意项目中的目录结构
- 6、注意命名规范
- 7、注意代码格式,空格、tab键
- 8、Code Review
- 9、添加断言 Assert
- 10、注释的多和少
1、为什么要重视代码质量
言简意赅: 为了后期更好的维护,毕竟维护的时间永远是大于开发的时间。
想想有时一个小错误,经常都是花费那么一整天....
2、代码质量不等于 性能
这是对高质量和性能做一些区别
-
代码的质量并不等于
- 性能最好
- 最精简
- 最易实现
-
理解为更好维护会更合适些:
- 易于理解,逻辑性强
- 可读性高
- 方便扩展
整体来说,代码质量还是为了更好的维护。
3、不要写重复的代码(Don’t Repeat Yourself)
这句话可是经典中的经典,但就像卓同学说的那样真的落实了,反正我是没有....
其中卓同学提到的细节点抽取,是我平常没注意的,例如:相同的约束长度确实可以提取。
但有时赶进度,确实会直接进行复制粘贴的操作,因为时间啊,但话又说回来,进度和质量的保证其实也是自己水平的体现。
4、一段代码不要超过一定的长度
卓同学的提示,我知道了:
- 人脑一次只能记住7±2个数字
所以呢,一个函数里的步骤不要超过7步,但实际上一般超过5步就很多了吧...
5、注意项目中的目录结构
这个呢,我个人感受时:
- 大家可以更快找到我们需要的文件
- 也容易养成好的习惯,知道添加新文件在什么地方放
特别是当团队人多了后,感觉会更深刻。
6、注意命名规范
驼峰法、匈牙利立法,这个倒有一些,但是一个核心规则应该是让他人一下子就知道你这个变量或这个方法是干嘛的
能不省略的还是不省略,是为了后期啊
7、注意代码格式,空格、tab键
其实这个我个人还真注意的,可以稍微对比下:
@property (nonatomic, copy) NSString *userid;
+ (NSDictionary *)modelCustomPropertyMapper {
return @{
@"url" : @"url",
@"version" : @"version"
};
}
@property(nonatomic,copy)NSString*userid;
+(NSDictionary *)modelCustomPropertyMapper {
return @{@"url" : @"url",@"version": @"version" };
}
确实就如排版一般,自己舒心,大家也舒服。
8、Code Review
对于Code Review,我们团队还没有进行,但听完卓同学讲后觉的真是很重要的。
记得刚开始的时候,我很不好意思把自己的代码给人家看,怕别人的挑刺,也是对自己的没信心,后来有一次和我们组长交流后,特别指出一些问题后,发现这是对个人一种很好的学习方式。
代码互相看,不仅能保证基本的代码风格差不多,更是减少bug的好方法。 上次,我同事看我某个类的代码,一下子就发现好几处没用的代码... 当然也是自身比较菜的原因咯。
毕竟对于个人:
- 没有人能保证自己所有的代码没有bug
- 没有人能保证自己所有的代码实现是最优的
话说,应该和我们组长说一下这个事啦!😆
9、添加断言 Assert
一种预防措施,特别是对于公共使用的方法,我们无法保证他人使用传什么值,怎么用....
就好比经常做的容错处理,后台传过来的值不一定是对的...
10、注释的多和少
越多越好 VS 越少越好,确实是不好说的,个人偏向越少越好,毕竟代码的清晰度就应该让他人看懂我们的意思,如果看不懂只有两种情况,一种是对方水平不行,要么是自己技术还不到家。
当然有一些注释还是不能少的,例如针对性说明,标记啊,解释某种很反常规的需求.....
结束
以上就是这次直播我的笔记,非常感谢没故事的卓同学的分享。另外备注下,卓同学的结束语,很有范!
风之积也不厚,则其负大翼也无力。
故九万里,则风斯在下矣,而后乃今培风;
背负青天而莫之夭阏者,而后乃今将图南。
蜩与学鸠笑之曰:“我决起而飞,枪榆枋而止,时则不至,而控于地而已矣,奚以之九万里而南为?”
适莽苍者,三餐而反,腹犹果然;
适百里者宿舂粮,适千里者,三月聚粮。
之二虫又何知?
《逍遥游》
网友评论