赞
踩
最近重构项目组件,看到项目中存在一些命名和方法分块方面存在一些问题,结合平时经验和 Apple官方代码规范 在此整理出 iOS 工程规范。提出第一个版本,如果后期觉得有不完善的地方,继续提出来不断完善,文档在此记录的目的就是为了大家的代码可读性较好,后来的人或者团队里面的其他人看到代码可以不会因为代码风格和可读性上面造成较大时间的开销。
软件的生命周期贯穿产品的开发,测试,生产,用户使用,版本升级和后期维护等过程,只有易读,易维护的软件代码才具有生命力。
1) 长的,描述性的方法和变量命名是好的。不要使用简写,除非是一些大家都知道的场景比如 VIP。不要使用 bgView,推荐使用 backgroundView
2) 见名知意。含义清楚,做好不加注释代码自我表述能力强。(前提是代码足够规范)
3) 不要过分追求技巧,降低代码可读性
4) 删除没必要的代码。比如我们新建一个控制器,里面会有一些不会用到的代码,或者注释起来的代码,如果这些代码不需要,那就删除它,留着偷懒吗?下次需要自己手写
5) 在方法内部不要重复计算某个值,适当的情况下可以将计算结果缓存起来
6) 尽量减少单例的使用。
7) 提供一个统一的数据管理入口,不管是 MVC、MVVM、MVP 模块内提供一个统一的数据管理入口会使得代码变得更容易管理和维护。
8) 除了 .m 文件中方法,其他的地方"{"不需要另起一行。
- (void)getGooodsList
{
// ...
}
- (void)doHomework
{
if (self.hungry) {
return;
}if (self.thirsty) {
return;
}if (self.tired) {
return;
}
papapa.then.over;
}
1) 一个变量最好只有一个作用,切勿为了节省代码行数,觉得一个变量可以做多个用途。(单一原则)
2) 方法内部如果有局部变量,那么局部变量应该靠近在使用的地方,而不是全部在顶部声明全部的局部变量。
1) 1元运算符和变量之间不需要空格。例如:++n
2) 2元运算符与变量之间需要空格隔开。例如: containerWidth = 0.3 * Screen_Width
3) 当有多个运算符的时候需要使用括号来明确正确的顺序,可读性较好。例如: 2 << (1 + 2 * 3 - 4)
1) 当有条件过多、过长的时候需要换行,为了代码看起来整齐些
//goodif (condition1() &&
condition2() &&
condition3() &&
condition4()) {
// Do something
}//badif (condition1() && condition2() && condition3() && condition4()) { // Do something }
2) 在一个代码块里面有个可能的情况时善于使用 return
来结束异常的情况。
- (void)doHomework
{
if (self.hungry) {
return;
}if (self.thirsty) {
return;
}if (self.tired) {
return;
}
papapa.then.over;
}
3) 每个分支的实现都必须使用 {} 包含。
// badif (self.hungry) self.eat() // goodif (self.hungry) {
self.eat()
}
4) 条件判断的时候应该是变量在左,条件在右。 if ( currentCursor == 2 ) { //… }
5) switch 语句后面的每个分支都需要用大括号括起来。
6) switch 语句后面的 default 分支必须存在,除非是在对枚举进行 switch。
switch (menuType) { case menuTypeLeft: {
// ... break;
}case menuTypeRight: {
// ... break;
}case menuTypeTop: {
// ... break;
}case menuTypeBottom: {
// ... break;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。