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 ...
随机推荐
- UITableview自定义accessory按钮和ImageView大小一致
if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseI ...
- C#基础篇02
首先:一个完整的方法是包括两部分的,代码和注释!!!! 程序的调试: 3:设置断点: 断点之前的程序已经确保正确,可是在断点后的部分可能出现错误,所以设置完断点后,直接点击启动,然后按F11逐步棸的 ...
- 简论数据库乐观悲观锁与并发编程中的CAS
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5783205. ...
- day-3
/* 快noip了!!!感觉还有好多事要做 上午考试 原题没做 自己找了套题 挺水的 T1模拟(然而没认真读题 90) T2 dp+简单优化 数据有点问题 T3 暴力状丫 然而写丑了 60分的要两秒多 ...
- mysql自增
主键设置自增,同时主键需要是int类型
- MVC知识总结(前序)
距离2015年的来临还有1天的时间,是时候总结一下今年的经过脑子的知识了,由于今年里工作中接触MVC的时间特别多,所以打算针对MVC这个东西的知识进行一个总结,好歹对得起在几个项目中用了MVC来进行开 ...
- 20160427Struts2--入门1
参考资料来自传智播客:非原创,只是做个笔记: 一.Struts2简介: Struts2是在WebWork2基础发展而来的.和struts1一样, Struts2也属于MVC框架.不过有一点大家需要注意 ...
- 双程动态规划 nyoj61
题目大意: 在矩阵m*n中,从(1,1)点到(m,n)点,再从(m,n)点到(1,1)点,所走路线经过的同学最大好心值, 要求每个点只能走一遍. 分析: ①我们可以把它只看成两个人同时从(1,1)点, ...
- MVC小系列(十五)【MVC+ZTree实现对树的CURD及拖拽操作】
根据上一讲的可以加载一棵大树,这讲讲下如果操作这颗大树 <link href="../../Scripts/JQuery-zTree/css/zTreeStyle/zTreeStyle ...
- JAVA spring 常用包作用
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...