前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我的个人代码规范文档

我的个人代码规范文档

作者头像
君赏
发布2018-08-31 16:11:11
5220
发布2018-08-31 16:11:11
举报
文章被收录于专栏:君赏技术博客君赏技术博客

我的个人代码规范文档

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

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控件

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.06.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我的个人代码规范文档
    • 1 .属性的声明
      • 2.尽量多使用属性懒加载
        • 3 允许修改的对象属性尽量使用readlony
          • 4 文件夹的分层
            • 5 可以采用MVVM 的变种
              • 6 命名方面
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档