美文网首页
iOS编码规范

iOS编码规范

作者: 像个战士一样去战斗 | 来源:发表于2017-12-09 00:24 被阅读14次

    一、编写规范的代码有什么好处?

       编写规范的代码,对于提升其可读性与可维护性大有裨益,看到规范的代码,不至于让自己的心情变坏,可以大大的提升工作效率。

    二、怎样编写规范的代码?

    (1)使用字面量语法,这样代码更加易懂,eg:

    字面量语法

    (2)换行和空格让代码变得整齐

    使用换行和空格与否(上下对比)

    一个典型的代表是SDAutoLayout的框架,链式的语法稍加换行使代码更加直观:

    SDAutoLayout链式语言

    (3)使用枚举表示状态

            先看一下UIButton所使用到的枚举

    UIControlState枚举

    枚举的每个值都是以UIControlState作为前缀的,这样能更好的根据代码提示找到所要的状态。

    (4)使用分类简化你的代码

          我们通常将业务请求放在一个类里,方便维护,然而随着请求越来越多,那么这个类的代码也会越来越多,这个时候我们可以根据不同业务去设置不同的分类去将代码区分开来,不仅方便维护,也让代码更加直观。

    类按业务进行分类

    (5)实现description方法

    控制台po model

    在我创建的类中,没有实现description和debugDescription这两个方法,这个时候,log和po出来的仅仅是一个内存地址,对我们来说,没有办法查看model里面的字段,因此建议实现这两个方法。举个例子,如果我们想查看请求的model里面的字段,那么可以在BaseModel这个类的实现文件上面加上

    description和debugDescription方法的实现

    这个时候再po和log,model里面的字段就清楚了

    po和log出model里面的字段

    (6)使用多个target来区分正式环境、开发环境或马甲包

          可以用三个target,分别对应正式包、开发包以及马甲包,来维护三种不同的环境下的project,这样共用了一份代码,也可以根据需求对不同环境进行设置

    不同的targets

    在buildSetting设置对应的宏来区分不同的环境

    在buildSettings里面设置宏

    通过设置这个宏我们可以区分不同的环境,例如在设置项目请求的域名时可以

    设置不同环境下的域名

    (7)尝试解耦mvc模式

    mvc是我们比较常用的设计模式,随着业务逻辑的不断累计,你可能会不断的在controller添加很多逻辑,这个是mvc的弊病,相信大家很清楚。

    解耦在我的理解下,是用更多的文件,去分散一大堆的逻辑,举个例子:比如说,一个订单列表的controller里面已经非常赘余了,我们可以尝试把tableView或者collectionView相关的逻辑抽取出来,类似这样

    订单列表相关的类

    另外如果有更复杂的场景,例如订单的列表要显示出分类:未完成订单、已完成订单、已评价订单,让它们可以左右滑动,并且三个订单内部的逻辑差异比较大,这个将会导致你的controller里的代码量非常的多,这时你可以考虑使用三个controller将对应的逻辑分出来。

    订单分类

    附:

    相关文章

      网友评论

          本文标题:iOS编码规范

          本文链接:https://www.haomeiwen.com/subject/akkeixtx.html