iOS代码规范文档
文件命名规范:
1. 项目统一使用类前缀ZY。
2. 分类命名+后面统一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分类定义在内部并写好文档注释。如果功能性分类内部方法较多可以考虑按功能命名。
3. model文件可按服务器接口名或字段名命名,view、viewModel和controller文件可按功能命名。
4. 切图命名:home_menu_chat,->模块_功能_具体名字,切图命名很重要,这点可与美术沟通,让他们直接命名好再给我们,可以大大提高开发效率,但千万不要使用中文。
代码规范:
1. 分类方法以zy_开头,可与系统或者第三方框架方法区分。
2. 全局用到的字符串或者基本数据类型尽量定义成常量而不是用宏。并且只在某一文件内部用到可用static修饰,并且不要暴露在.h文件。
3. 宏定义以ZY_开头,并且统一大写,以_为分隔标识。
4. 类内部方法按功能划分,统一使用#pragma mark <#xxxx#>划分。
5. 方法参数较多时,尽量换行让其参数对齐,提高可读性。
6. 方法属性注释尽量使用文档注释,可下载一个插件VVDocument.
7. 定义成员变量必须遵循apple规范添加下划线。
8. 控件和属性尽可能使用懒加载创建,这样就可以保证用到时再创建。注意使用了懒加载创建的就不要直接用下划线成员变量名访问了,应该用get方法访问。
9. 方法回调尽可能使用block回调,可提高代码聚合度,但是要注意循环引用问题,建议block内部都使用weak引用。
10. 声明字符串属性必须使用copy,代理使用weak,不过尽可能少用代理吧,用block回调更方便。
11. 注意方法和属性、成员变量的驼峰标识命名。
12. 析构函数- (void)dealloc最好放到类最上面,第一眼就可以看到这个方法,可以方便看到是否清空资源。
13. 单个方法代码尽量不要超过100行,单个文件代码不要超过800行,如超过了可以考虑进行重构优化。
14. 相同逻辑方法,或者多处用到的方法可以优先考虑抽成分类,其次考虑抽到一个工具方法类。
15. 定义控件或者控制器必须在后面加上控件名称,例如一个imageView->UIImageView *iconView,不要直接用UIImageView *icon。
16. 判断YES/NO/nil 采用这种写法
17. 加载图片建议自定义UIImage一个分类方法,例:[UIImage zy_imageNamed:@””]。能在改方法拦截,换肤可能会用到。
18. 所有网络请求以request开头。例: 返回结果用block并对应一个data模型,和error.当error有值时为请求错误。 建议使用的第三方框架: YYModel -> 字典转模型框架,性能目前与主流的框架相比性能较好,而且使用方便。 YYCategories -> 提供一些常用的分类方法,可以大大加快开发效率。 YYWebImage -> 加载网络图片框架,可以带有动画效果,比SDWebImage好用。 MJRefresh -> 下拉刷新控件 AFNetworking -> 网络请求 Pop -> facebook动画框架 SVProgressHUD -> HUD提示,一个单例类,全局共享,无需反复创建消耗性能 Masonry -> 自动布局框架 Realm -> 最近比较火的数据库框架,据说性能秒杀coreData和sqlite,且学习成本很低。 ReactiveCocoa -> 函数响应式编程框架。
iOS代码规范文档的更多相关文章
- Vue项目开发最新、最全代码规范文档
Vue项目开发最新.最全代码规范文档 2019年02月21日 10:43:49 yw00yw 阅读数 337 一. 目录结构 |— build 构建脚本目录 |— build.js 生产环境构建( ...
- Java代码规范文档
NOTE:以下部分为一个简要的编码规范,更多规范请参考 ORACLE 官方文档. 地址:http://www.oracle.com/technetwork/java/codeconventions-1 ...
- 【转载】WEB前端开发规范文档
本文转载自谈笑涧<WEB前端开发规范文档> 为 新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益 ...
- JVM 内部原理(五)— 基本概念之 Java 虚拟机官方规范文档,第 7 版
JVM 内部原理(五)- 基本概念之 Java 虚拟机官方规范文档,第 7 版 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - J ...
- 自己的Java规范文档
参考阿里Java规范文档 不建议使用过时方法 泛型需要加上<>,这种方式创建的对象是不推荐的. Map object = new HashMap();//禁止使用 字符串比较时,不需要大小 ...
- 还在手工制作APP规范文档?这款设计神器你不容错过
之前写了一些关于APP原型文档的文章:一款APP的交互文档从撰写到交付 这次想写下关于APP设计规范文档的内容,规范文档这个东西,实际上大部分中小型公司没有这方面的需求,也没精力去制作这样一个系统性的 ...
- C# 代码注释规范文档
C# 提供一种机制,使程序员可以使用含有 XML 文本的特殊注释语法为他们的代码编写文档.在源代码文件中,具有某种格式的注释可用于指导某个工具根据这些注释和它们后面的源代码元素生成 XML.使用这类语 ...
- 2.SDL规范文档
01.安全设计Checklist 输入验证 校验跨信任边界传递的不可信数据(策略检查数据合法性,含白名单机制等)格式化字符串时,依然要检验用户输入的合法性,避免可造成系统信息泄露或者拒绝服务 禁止向J ...
- Web前端开发规范文档
Web前端开发规范文档 规范目的: 使开发流程更加规范化. 通用规范: TAB键用两个空格代替(windos下tab键占四个空格,linux下TAB键占八个空格). CSS样式属性或者JAVASCRI ...
随机推荐
- jsp页面中frameset的使用方法
frame,是网页开发必须掌握的知识.例如后台架构.局部刷新,页面分割,都是frame的用途表现,尤其是后台页面制作,使用frame会给用户带来非常舒适的使用感受. frame知识点包括(frames ...
- .NET程序编译原理
导语: CPU只认识二进制代码,那么C#源代码是怎样变成CPU可识别的二进制代码的呢? 步骤如下: 1.C#源码 2.运用VS自带的命令提示窗口,使用csc命令将C#源码转成程序集(EXE文件或DLL ...
- Jquery Table添加行、删除行
html页面代码 <table id="tblUserInfo"> </table> Js代码 function DealUserInfo(qty){ ) ...
- 封装一个ISortable接口
using System;/// <summary>/// 排序规范/// </summary>/// <typeparam name="T"> ...
- SQL语句一点小心得
在Sqlserver中 if 语句后面的语句加begin end 括起来 问题:执行速度问题,在存储过程中没有加begin end 执行速度很慢,加了begin end执行速度加快 ALTER PRO ...
- linux yum配置
yum源模版 vi /etc/yum.repos.d/xxx.repo [rhel-server]name=serverbaseurl=file:///media/disk/Serverenabled ...
- iOS-事务相关
事务管理 事务(Transaction):1.构成单一逻辑工作单元的操作集合DBMS中的用户程序DBMS外的可执行程序对数据库的读/写操作序列2.读从数据库中读取数据,首先从磁盘中读到内存(Buffe ...
- java连接远程服务器之manyged-ssh2 (windows和linux)
一.所需要的jar包 需要借助Ganymed SSH的jar包: ganymed-ssh2-262.jar 下载地址: http://www.ganymed.ethz.ch/ssh2/ API详情: ...
- Nuage SDN
Nuage推出纯软件解决方案虚拟化业务平台(VSP)由三部分组成:虚拟化业务目录(VSD).虚拟化业务控制器(VSC)和虚拟路由与交换(VRS). VSD是业务/IT策略引擎,可提供业务模板与分析,每 ...
- bzoj1231: [Usaco2008 Nov]mixup2 混乱的奶牛
思路:状压dp,设f[i][j]表示当前已经选出的牛的状态为i,最后一头选出的牛为j的方案数. 然后注意就是初值不能是f[0][i]=1,因为所有牛本来都可以第一个被选中,然而这样一定初值有些牛可能就 ...