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 ...
随机推荐
- phpcms 源码分析五:文件缓存实现
这次是逆雪寒的文件缓存实现代码分析: /* [/php] PHPCMS的文本缓存实现: [php] <?php /* 这个文件里面全是有关生成文本缓存的函数.文本缓存是个好东西.一般的项目,我们 ...
- SpannableString使用详解
TextView算是android开发中最最常用的控件了,有的时候,我们要给一个TextView中的显示的文字设置不同的样式或者响应事件,比如同一个TextView中,有的字是红色,有的字是蓝色,有的 ...
- android开发之使用上下文菜单
android中的上下文菜单类似于PC上的鼠标右键单击,不同的是android上没有鼠标这一概念,更谈不上右键单击,在android中,一般是长按某个View,调出上下文菜单.与OptionsMenu ...
- php笔记05:http协议中防盗链技术
倘若我们自己在电脑上写了一个网站文件(可以是html,php文件等等),但是只希望本机可以访问这个文件,不希望别的电脑访问就需要这里的防盗链技术 1.我们在本地写了一个import.php文件: 而且 ...
- RedHat6.1(64bit)安装JDK
今天在服务器上装JDK1.5,费了不少力气,记录下来以供参考 服务器安装的操作系统为Red Hat 6.1(x86) [123@123 bin]$ cat /etc/redhat-release Re ...
- ThinkPHP函数详解:R方法
R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充.关于A方法的用法见这里.R方法的调用格式:R('[项目://][分组/]模块/操作','参数','控制器层名称') 例如,我们定义了一个 ...
- python中关于正则表达式三
2015年8月14日 11:10 7.2正则表达式操作 正则表达式使用反斜杠字符'\'来暗示一些特殊的形式或者允许特殊的字符使用但是没有调用它们特殊的意思.在字符串常量中的相同目标的字符的python ...
- 再跟SQL谈一谈--基础篇
1.简介 2.DDL & DML 3.SELECT ①DISTINCT ②WHERE ③AND & OR ④ORDER BY 4.INSERT 5.UPDATE 6.DELETE 1. ...
- node.js 访问sql server的 node_modules “msnodesql"的安装编译方法
http://stackoverflow.com/questions/19661811/unable-to-download-msnodesql-0-2-1-v0-10-x64-msi 首先要满足以下 ...
- 那天有个小孩跟我说LINQ(二)转载
1 LINQ TO Objects续(代码下载) 新建项目 linq_Ch2控制台程序,新建一个Entity文件夹 1.1 学生成绩查询(练习Join) 有三张表如下 ...