服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - iOS项目的开发命名规范教程

iOS项目的开发命名规范教程

2021-04-06 15:23码出境界 IOS

为了团队各成员之间代码的互通、可读、易维护性,特制订此开发规范。下面这篇文章主要给大家介绍了关于iOS项目的开发命名规范的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

前言

遵守规范也是让代码更清晰明了,易读,易用,易维护,可以更好的适应团队开发。自己看着也是赏心悦目,何乐而不为呢。下面话不多说了,来一起看看详细的介绍吧。

一、关于本文档

1、本文档的书写目的

    《ios项目的命名规范》的书写目的,在于让后续参加到该项目的ios开发人员通过阅读该文档,了解在当前ios项目的代码中的命名要求并严格按照本文档执行,以便保证代码的更好阅读与维护。

2、本文档的使用范围

   《ios项目的命名规范》在ios项目中被强制要求执行。将本文中的wsf或者wsf替换成代表项目的前缀(请用三个大写字母),即可用于其他ios项目。

3、本文档的更新负责人

    《ios项目的命名规范》由本id和同事共同协商讨论制定,由本id负责编辑、修改和后续的版本更新。

二、目录结构

iOS项目的开发命名规范教程

三、新建【业务模块文件夹】

1、文件夹的名称需要体现该模块的功能概括。

比如:支付系统、订单

2、二级文件夹根据编程设计模式分类命名,需要从下面词语中取词:

viewmodel、model、view、viewcontroller、其他

四、新建【子类】

1、类名

(1)遵循大驼峰命名法。

(2)wsf+模块概括名+功能分区名+父类的惯用后缀。比如:wsforderlistvc

(3)为了整个项目代码的整洁与统一,建议使用list、detail、message、tview、cell、vc、tvc、vm等字样。

(4)模块概括名一定要是统一的、明确的、唯一的代表模块名称。

(5)父类的惯用后缀的意思是:如果要从其他框架继承子类,那么必须遵循其命名惯例。比如,继承uiview的子类名称必须以view结尾。

2、属性名

(1)遵循小驼峰命名法、避免缩写。

(2)后缀体现属性的数据类型。比如:orderpricelabel、orderlimitsarray。

(3)使用长的、描述性的命名方向。比如settingbutton而不是setbtn。

(4)要求nsstring *namestring; 而不是nsstring* namestring; 或者nsstring * namestring;。

3、属性定义

(1)定义属性的参数顺序排序:原子性、读写、内存管理。比如:@property (nonatomic, readwrite, copy) nsstring *namestring;

(2)bool类型的属性,需要为其getter方法带is前缀。getter方法放在内存管理限定符前面,比如:@property (nonatomic, readonly, getter=iseditable, assign) bool editable;

4、实例变量名

(3)下划线开头

(2)遵循小驼峰命名法、避免缩写。

(3)后缀体现属性的数据类型。比如:_orderpricelabel、_orderlimitsarray。

5、公有方法名

(1)遵循小驼峰命名法、避免缩写。

(2)不要使用“and”这个词,它不应该用来阐明有多个参数。

6、私有方法名

(1)遵循小驼峰命名法、避免缩写。

(2)直接父类是cocoa框架:p_开头。

(3)直接父类是其他框架:以自己一贯的前缀(小写)+下划线开头或者wsf_。比如:abc_、wsf_。

7、纯c函数

(1)遵循小驼峰命名法、避免缩写。

(2)加上wsf为前缀。

8、全局变量

.h文件

?
1
2
extern nstimeinterval wsfpersonmodelanimationduration;
extern nsstring *wsfpersonmodelerrormessage;

.m文件

?
1
2
nstimeinterval wsfpersonmodelanimationduration = 0.3;
nsstring *wsfpersonmodelerrormessage = @“errormessage”;

(1)遵循大驼峰命名法、避免缩写。

9、枚举名

(1)遵循大驼峰命名法、避免缩写。

(2)使用oc的枚举方式。

(3)枚举对象名:wsf+枚举范围概括名+type。比如:wsfalipayresultcodetype

(4)枚举种类名:wsf+枚举范围概括名+type_某种情况名。比如:wsfalipayresultcodetype_success。

10、协议名

(1)遵循大驼峰命名法、避免缩写。

(2)代理协议:类名+delegate。比如:wsforderlistchangeddelegate。

(3)数据源协议:类名+datasource。比如:wsforderlistdatasource。

(4)普通协议:类名+protocol。比如:wsforderlistvcprotocol。

五、新建【分类】

1、分类名

(1)类名+标识前缀+扩展标识。

(2)遵循大驼峰命名法、避免缩写。

(3)wsf或者自己一贯使用前缀(大写)+下划线为前缀。比如:nsstring (wsf_httpmanager)、nsstring(abc_httpmanager)。

2、方法名

(1)遵循小驼峰命名法、避免缩写。

(2)wsf或者自己一贯使用前缀(小写)+下划线为前缀。比如:- (void)wsf_urlencodedstring;、- (void)abc_urlencodedstring;

六、新建【协议】

1、协议名

(1)遵循大驼峰命名法、避免缩写。

2、方法名

(1)遵循小驼峰命名法、避免缩写。

(2)如果是代理协议,以发送代理的对象类名作为代理方法名的开始(去掉类名的前缀,并且遵循小驼峰命名法)。

七、新建【第三方库的封装】

(1)手动管理:比如使用mjrefresh框架,需要将它的类名全部加前缀以避免命名空间冲突。比如:命名为wsfmjrefresh。

(2)pod管理:不需要特殊处理。

八、新建【常量】

1、私有常量

.m文件

?
1
2
static const nstimeinterval kanimationduration = 0.3;
static nsstring *const kerrormessage = @“errormessage”;

2、公开常量

.h文件

?
1
2
extern const nstimeinterval wsfpersonmodelanimationduration;
extern nsstring *const wsfpersonmodelerrormessage;

.m文件

?
1
2
const nstimeinterval wsfpersonmodelanimationduration = 0.3;
nsstring *const wsfpersonmodelerrormessage = @“errormessage”;

说明:

(1)遵循小驼峰命名法、避免缩写。

(2)在声明公开常量时,也可以使用foundation_export替换extern。

3、常量名称的常用命名方法:若常量局限于某“编译单元”,也就是“实现文件”之内,则在前面加字母k;若常量在类之外可见,则通常以wsf+类名为前缀。

九、新建【通知】

1、按照公共常量方法处理。

2、以notification为后缀。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。  

原文链接:http://www.cnblogs.com/cchHers/p/7887579.html

延伸 · 阅读

精彩推荐
  • IOSiOS中MD5加密算法的介绍和使用

    iOS中MD5加密算法的介绍和使用

    MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。对输入信息生成唯一的128位散列值(32个字符)。这篇文...

    LYSNote5432021-02-04
  • IOSiOS自定义UICollectionViewFlowLayout实现图片浏览效果

    iOS自定义UICollectionViewFlowLayout实现图片浏览效果

    这篇文章主要介绍了iOS自定义UICollectionViewFlowLayout实现图片浏览效果的相关资料,需要的朋友可以参考下...

    jiangamh8882021-01-11
  • IOS详解iOS中多个网络请求的同步问题总结

    详解iOS中多个网络请求的同步问题总结

    这篇文章主要介绍了详解iOS中多个网络请求的同步问题总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    liang199111312021-03-15
  • IOSiOS开发技巧之状态栏字体颜色的设置方法

    iOS开发技巧之状态栏字体颜色的设置方法

    有时候我们需要根据不同的背景修改状态栏字体的颜色,下面这篇文章主要给大家介绍了关于iOS开发技巧之状态栏字体颜色的设置方法,文中通过示例代码...

    梦想家-mxj8922021-05-10
  • IOSiOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)

    iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和

    这篇文章主要介绍了iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)的相关资料,需要的朋友可以参考下...

    CodingFire13652021-02-26
  • IOSiOS开发之视图切换

    iOS开发之视图切换

    在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将...

    执着丶执念5282021-01-16
  • IOSiOS实现控制屏幕常亮不变暗的方法示例

    iOS实现控制屏幕常亮不变暗的方法示例

    最近在工作中遇到了要将iOS屏幕保持常亮的需求,所以下面这篇文章主要给大家介绍了关于利用iOS如何实现控制屏幕常亮不变暗的方法,文中给出了详细的...

    随风13332021-04-02
  • IOSiOS中UILabel实现长按复制功能实例代码

    iOS中UILabel实现长按复制功能实例代码

    在iOS开发过程中,有时候会用到UILabel展示的内容,那么就设计到点击UILabel复制它上面展示的内容的功能,也就是Label长按复制功能,下面这篇文章主要给大...

    devilx12792021-04-02