我的个人代码规范文档

2016-06-23  本文已影响109人  君赏

我的个人代码规范文档

因为很多人不适应我的代码规范 所以只仅供参考。不知道从哪里说起,就想到那里说到那里。

1 .属性的声明

属性可以用到下面的几个单词进行声明,只针对ARC开发环境

Strong

Copy

Assgin

Weak

我说一下上面几个单词用到的地方,在除去NSString Block之外所有的对象应该声明为Strong

我现在的团队习惯声明为Weak 创建局部对象AddSubView之后 之后指向,这是错误的。因为你的指针只是被AddSubView保留,如果什么时候Remove 你的属性就为nil.

在NSString和Block声明地方使用Copy属性。有的人NSString使用Strong,我们都知道Strong和Copy分别是指向一个对象和从新生成一个对象,可以根据实际情况来声明,一般要使用Copy。

对于基本的数据类型一定要使用Assgin

对于XIB的属性使用Weak 代理,还有一些弱引用对象。

2.尽量多使用属性懒加载

可以在实现的文件里面把属性的懒加载也就是get方法卸载页面的最下面,这样我们就只关注于上面的内容了。

3 允许修改的对象属性尽量使用readlony

对于一些控件我们只需要用户修改控件的属性,就可以在头文件声明readonly 实现文件再次声明。

4 文件夹的分层

我也喜欢进行Cocoapods托管,但是一些第三方库还是不支持。

Defines(存放定义的颜色 枚举 工程配置 字符串等等。记得这些配置我习惯分文件存放)

FrameWork(存放第三方的FW 和系统的)

Libs(第三方开源代码的库)

Plugins(对于我来说俗称插件话 管理各个功能块的插件 比如支付插件 管理各种支付)

Categories(存放自定义的各个分类)

Protocols(存放自定义个协议类)

Tools(项目用到的协议工具 比如汇率转换等等)

Requests(基于自己工程封装的请求库 只针对自己工程)

Controller (试图)

​ Controller(试图控制器)

​ View (分离的试图)

​ Models(数据模型)

​ ViewModels(用于数据解析)

​ Api(用于请求)

AppDelegate(存放AppDelegate文件)

Resouses(存在Plist 图片等等)

5 可以采用MVVM 的变种

自从我开始用MVVM 我就觉得和我之前的一种很像

ViewController的View可以单独提出来 VC只负责Push的跳转 发起请求

View 负责VC的全部的试图 可以分离很多块

Model用于和后台接口数据模型的解析

ViewModel负责请求数据和解析数据

API负责整个VC的接口

6 命名方面

很多文档都有 我就只说几点

命名一定要体现这个是干什么的 比我headImageView,我可以猜出来是头像 而且是UIImageView控件

全局属性使用_开头和属性的最好保持一致。

上一篇下一篇

猜你喜欢

热点阅读