iOS 代码开发规范
最近公司因为业务增多,又招了一个iOS小伙伴,内心无比开心呀。但是多了一个人,日常代码开发就要统一规范起来,方便日后维护和查找。下边列一下我日常用到一些代码规范。
(一)、SVN规范
1、代码一定要先update,(解决冲突),然后在commit。
2、代码提交。
【人员】【动作】【动作内容】
如果代码中增加、修改文件,要写清楚增加了那个模块,那个文件夹,做什么功能的。
如果对代码进行删除,一定要和PM确定这个文件无用了,然后再删除文件,同时记得删除服务器上的文件。
如果对文件进行移动,要写清楚文件从哪里移动到了哪里,同时记得移动服务器上的文件。
eg:
【石智力】【添加】【首页 --生活 添加轮播图。。。SDCycleScrollView 】
【石智力】【修改】【首页 --生活 添加轮播图。。。】
【石智力】【删除】【首页 --生活 添加轮播图。。。SDCycleScrollView 】
【石智力】【移动】【首页 --生活 添加轮播图。。。SDCycleScrollView 从A移动到B】
(二)、代码开发规范
一、工程结构方面
1、新建工程目录下一定只有4个文件夹(前三个为实体文件夹,最后一个为group的虚拟文件夹),ThreeLib(放置所有导入的第三方包)、NetWork(放置app内所有网络请求)、CodeClass(放置整个app的功能模块代码)、ConfigFile(app的配置文件:assets,info,pch,header)。
2、ThreeLib第三方没啥好说的,假如使用pod管理第三方也要建有这个文件。
3、NetWork所有的网络请求都放这里,所有请求的前缀,写在request的头部,请求的地址、注释、方法依次写在下边;
connect是对AF等其他网络组件的封装,请求超时时间宏定义在这里,假如要做加密、解密统一在这里做就好了;
同时下边放置网络请求失败和请求结果暂无数据等相关的页面。

4、CodeClass中的代码按照功能模块划分,大的模块下建设具体页面的文件夹,然后每个模块在进行MCV模式划分,每个文件开头一定是这个模块的单词,避免文件和其他同事建设的文件重名。也可以在模块后边再加上创建者的名字缩写,O(∩_∩)O~,然后是具体小功能。model一定以model结束,view以view或者cell结束,VC以VC结束。

5、ConfigFile这里主要放置配置文件。header文件一律放到ProjectHeader文件中,文字、时间、字体,颜色,尺寸,等定义放到common文件,common和header文件放到pch文件。

二、编码规范
1、编码通用的哪些规范就不一一枚举了,说也没意思,但是一定要争取做到。
2、所有view,vc,都要继承base中的父类,不要直接从view或者VC中继承,便于后期维护和增加公用处理。
3、所有新建的文件第一件是是导入pg结构块(我自己定义的),所有方法放到对应的模块不允许乱放,便于日后查找方法。
#pragma mark - -------------------------life cycle--------------------------
#pragma mark - -------------------------content view--------------------------
#pragma mark - ----------------------private methods--------------------
#pragma mark - ----------------------public methods--------------------
#pragma mark - ----------------------event response---------------------
#pragma mark - -------------------------delegate -------------------------
#pragma mark - -------------------------network--------------------------
#pragma mark - ----------------------getter and setter--------------------
4、进入控制器的第一步打印进入某某页面的log,然后是才是setUIView方法。
5、用户响应事件一定有log,凡是有判断的地方必有注释和log,switch上方必有大段解释。魔法数字,必有注。所有方法一般不要超过30行,超过必有大段、多处注释。
6、字号、颜色、尺寸尽量用common中定义的,没有则自己添加定义。
7、view传递跳转等事件尽量使用响应者链就行传递,避免block和delegate。
8、传值尽量用block,事件尽量用delegate。
9、添加文件杜绝拖拽添加,一定要addfile。
10、所有涉及时间的东西一律用宏定义,除非特殊情况不单独设置时间。
11、一个方法用到第三回的时候就是你对他进行封装的时候。
12、不做哑巴程序员。
iOS 代码开发规范的更多相关文章
- C#代码开发规范
Wrod下载 C#代码开发规范 文件状态: [√] 草稿 [ ] 正式 [ ] 修改 文件标识: 当前版本: 1.1 作 者: Empty 联系电话: 最后更新: ...
- php与数据库代码开发规范
php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...
- JAVA 代码开发规范
一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改 ...
- IDEAL葵花宝典:java代码开发规范插件 p3c
前言: P3C插件 是阿里巴巴p3c项目组进行研发.这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,根据<阿里巴巴Java开发规范>转化而成的自动化插件,并且实现了部分自动编程. ...
- python代码开发规范
https://github.com/libo-sober/LearnPython/tree/master/day18 为什么要有模块? 拿来主义,提高开发效率. 便于管理维护. 什么是脚本呢? 脚本 ...
- React代码开发规范
前言 一般在团队开发中每个人的代码习惯都不太一样,这样就会导致代码风格不一致,以致于维护和修改bug的时候看别人的代码成为一种痛苦...这种情况尤其在前端开发中尤为明显.因为关于前端的开发规范貌似也没 ...
- Eclipse的tab键为4个空格完整方法 附:阿里代码开发规范书
开发规范书:http://pan.baidu.com/s/1dESdyox 1.点击 window->preference-,依次选择 General->Editors->Text ...
- IDEAL葵花宝典:java代码开发规范插件 checkstyle、visualVM、PMD 插件
前言: visualVM: 运行java程序的时候启动visualvm,方便查看jvm的情况 比如堆内存大小的分配:某个对象占用了多大的内存,jvm调优必备工具. checkstyle: CheckS ...
- IDEAL葵花宝典:java代码开发规范插件 GenerateAllSetter、ECtranslation、translation、插件
前言: GenerateAllSetter: 我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰.这样,方法调用成了访问这些属性的唯一 ...
随机推荐
- Supermarket POJ - 1456
A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold ...
- jQuery对象与js对象互相转换
两种转换方式将一个jQuery对象转换成js对象:[index]和.get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的js对象. 如:var $v ...
- 爬虫抓包工具Fiddle设置
安装证书(用于https)
- Luogu P1860 新魔法药水
题目大意 具体题面及输入格式戳我! 商店里有\(N\)种药水,每种药水都有一个售价和回收价. 小\(S\) 攒了\(V\)元钱,还会\(M\)种魔法,可以把一些药水合成另一种药水. 他在第一天可以购买 ...
- 【NOIP2016】换教室(动态规划)
题目戳我 题解 其实感觉16年的难度不是很大???? 这道题去年考场上DP都想出来了... 只是因为不会数学期望...然后GG.... 这道题目只要把数学期望搞出来就可以啦 设f[i][j][0/1] ...
- [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...
- A brief introduction to weakly supervised learning(简要介绍弱监督学习)
by 南大周志华 摘要 监督学习技术通过学习大量训练数据来构建预测模型,其中每个训练样本都有其对应的真值输出.尽管现有的技术已经取得了巨大的成功,但值得注意的是,由于数据标注过程的高成本,很多任务很难 ...
- wpf研究之道——自定义Button控件
我们知道WPF中普通的按钮,长得丑,所以自定义按钮,在所难免.我们给按钮添加 MoveBrush,EnterBrush两把刷子,其实就是鼠标经过和鼠标按下的效果.只不过这不是普通的刷子,而是带图片的I ...
- systemd的作用
早上群上讨论了一下systemd的作用,还导致了一个人的直接退群,出于求知心理,搜索了一些systemd,对此也作出了一些相应的整理: 一.systemd的诞生: 学习嵌入式bootloader与ke ...
- jQuary学习の一の初期准备
jQuery 的功能概括: 1.html 的元素选取 2.html的元素操作 3.html dom遍历和修改 4.js特效和动画效果 5.css操作 6.html事件操作 7.ajax异步请求方式 通 ...