iOS编码规范(简版)

1. 总体指导原则

【规则1-1】首先是为人编写程序,其次才是计算机。

说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力,所以提倡写代码之前多思考,特别是逻辑复杂或者技术难点较高的地方,个人思考不清楚的,可以和团队成员进行沟通。

【规则1-2】保持代码的简明清晰,避免过分的编程技巧。

说明:简单是最美。保持代码的简单化是软件工程化的基本要求。不要过分追求技巧,否则会降低程序的可读性。

【规则1-3】编程时首先达到正确性,其次考虑效率。

说明:编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考虑程序的效率和资源占用。

【规则1-4】编写代码时要考虑到代码的可测试性。

说明:不可以测试的代码是无法保障质量的,开发人员要牢记这一点来设计、编码。实现设计功能的同时,要提供可以测试、验证的方法。

【规则1-5】函数(方法)是为一特定功能而编写,不是万能工具箱。

说明:方法是一个处理单元,是有特定功能的,所以应该很好地规划方法,不能是所有东西都放在一个方法里实现,也不能把所有东西都放在一个类里面实现(比如说VC)。

【规则1-6】鼓励多加注释

【规则1-7】建议少用XIB,特别是XIB中的约束

2.控制器规范

【规则2-1】不需要对外提供的方法和属性,不得在头文件(.h)中进行定义。

【规则2-2】头文件中对外提供的API,建议以方法参数的方式,不建议采用属性的方式。

说明:这是因为采用属性的方式,如果该控制器调用地方较多,每个地方的参数不一样,会造成调用方属性赋值的困惑。

【规则2-3】不建议在控制器中直接调用网络请求(HDFNet)和进行数据处理。

【规则2-4】控制器一般承载较多的逻辑处理,因此对控制器的文件结构做如下规范:

  • 头文件
文件头

#import (依次为标准库头文件、非标准库头文件)

宏定义

全局数据类型

类定义
  • 实现文件
文件头

#import (依次为标准库头文件、非标准库头文件) 

文件内部使用的宏

文件内部使用的数据类型

全局变量

本地变量(即静态全局变量)

类的实现

#pragma mark - LifeCycle

#pragma mark - Private Method

#pragma mark -- UI

#pragma mark -- 数据加载和解析

#pragma mark - Event

#pragma mark - Delegate

#pragma mark -- UITableViewDataSource

#pragma mark -- UITableViewDelegate

#pragma mark - Getter/Setter

【规则2-5】空行。【规则2-4】中的每一项内容之间空一行,方法之间空一行,重要的代码段之间空一行。

3.命名规范

【规则3-1】所有文件命名需要添加前缀。

【规则3-2】业务模块建议自定义一个前缀,比如家庭医生,可以加前缀HDFFamilyDoctor。

【规则3-3】命名遵循驼峰法命名规则。

说明:

  1. 小驼峰法:除第一个单词之外,其他单词首字母大写;
  2. 大驼峰法:把第一个单词的首字母也大写。

【规则3-4】类命名遵循大驼峰法规则:前缀+描述+类型

说明:以家庭医生服务页为例,前缀为HDFFamilyDoctor,描述为Service,类型为ViewController,那么该类命名为HDFFamilyDoctorServiceViewController。

关于类型,主要有如下几类:


描述

类型
控制器 ViewController
表格行 Cell
视图 View
模型 Model
数据请求 DataHelper

【规则3-5】属性命名遵循小驼峰法规则:描述+类型简写

说明:比如定义一个姓名的标签,描述为name,类型为Label,命名为nameLabel。

关于类型缩写,主要有如下两大类:

一、Foundation类型

Foundation类型


缩写
NSString String
Integer/int Int
BOOL/Boolean Bool
char Char
NSArray Array
NSDictionary Dic
NSDate Date
NSObject Obj

二、UIKit类型


UIKit类型

简写

UIKit类型

简写
UILabel Label UIButton Btn
UITextView TextView UITextField TextField
UITableView TableView UIImageVIew ImageView
UIWebView WebView UIScrollView ScrollView
UIViewController VC UITableViewCell Cell

【规则3-6】方法命名遵循小驼峰法规则,建议遵守如下相关细则:

  1. 方法的名称应全部使用有意义的单词组成,读起来像一句完整的话,能让人从名字就能知道方法的作用;
  2. set方法前需要添加set,get方法前不需要添加get;
  3. 常用的方法命名应该使用约定的动词,如initWith、insert、remove、replace等;
  4. init方法应该遵循Apple命名规则,返回类型使用 instancetype而不是id;
  5. 方法签名中,应该在方法类型(-/+ 符号)之后有一个空格。在方法各个段之间应该也有一个空格。

【规则3-7】枚举类型的类型和枚举值命名推荐使用如下格式:

typedef NS_OPTIONS(NSInteger, MASAttribute) {

    MASAttributeLeft = 1 << NSLayoutAttributeLeft,

    MASAttributeRight = 1 << NSLayoutAttributeRight

};

【规则3-8】图片命名采用规则:模块+功能+类型

说明:

  1. 模块可分为公用模块和私有模块,可自定义模块的缩写,比如说公用模块的导航栏,可以定义缩写为nav;
  2. 功能根据具体的用途划分,比如说返回按钮,功能可定位为back;
  3. 类型主要有几类:如背景(bg),按钮(btn)等。

综上所述,如果是导航栏的返回按钮,可命名为[email protected]。

4.注释

【规则4-1】注释建议统一使用VVDocument插件。

【规则4-2】每个头文件必须添加注释,用于对该类的功能做说明。

【规则4-3】头文件中定义的属性和方法,必须添加注释

说明:属性的注释建议在属性后使用“//<!”添加。

【规则4-4】实现文件中定义的变量、属性和自定义方法,必须添加注释

【规则4-5】实现文件中系统方法或系统代理,不强制添加注释。

【规则4-6】实现文件方法中,对功能段代码添加注释,比如说一个视图的定义和属性设置,那么可以作为一个功能段添加注释。

【规则4-7】枚举类型、宏定义、结构体等建议添加注释。

时间: 2024-10-29 10:45:58

iOS编码规范(简版)的相关文章

iOS编码规范参考

目录 1  注释 1.1  多行注释 1.2  单行注释 1.3  函数的注释 2  命名 2.1  常量的命名 2.2  函数的命名 2.3  变量的命名 2.3.1  成员变量 2.3.2  公共变量命名 2.3.3  实例变量命名 2.4  图片的命名 2.5  类的命名 2.5.1分类名 2.6  条件语句 2.7  变量 3  下划线 4  Immutable 实例初始化 5  类型 5.1  CGRect 函数 5.2  常量 5.3  枚举类型 5.4  布尔变量 5.5  单例

C#代码规范(简版)

目的 1.方便代码的交流和维护. 2.不影响编码的效率,不与大众习惯冲突. 3.使代码更美观.阅读更方便. 4.使代码的逻辑更清晰.更易于理解. 在C#中通常使用的两种编码方式如下 Camel(驼峰式): 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写. Pascal(帕斯卡): 大小写形式-所有单词第一个字母大写,其他字母小写. (经与合作同学讨论,本次采用类似驼峰命名法) C#代码规范 1. 类型(类.结构.委托.接口).字段.属性.方法.事件的命名 优先考虑使用英文(尽量

iOS编码规范

The official raywenderlich.com Objective-C style guide. This style guide outlines the coding conventions for raywenderlich.com. Introduction The reason we made this style guide was so that we could keep the code in our books, tutorials, and starter k

iOS编码规范(文档)

文件命名规范: 1. 项目统一使用类前缀ZY. 2. 分类命名+后面统一使用ZYExtension,例:NSDictionary+ZYExtension.h,常用分类定义在内部并写好文档注释.如果功能性分类内部方法较多可以考虑按功能命名. 3. model文件可按服务器接口名或字段名命名,view.viewModel和controller文件可按功能命名. 4. 切图命名:home_menu_chat,->模块_功能_具体名字,切图命名很重要,这点可与美术沟通,让他们直接命名好再给我们,可以大大

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

--原文地址:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架,插件,或其他可执行目标,里面的命名编写和规范不同于一般应用程序的开发.因为你开发出来东西是给开发者用的看的,并且他们不熟悉你的编程接口.这个时候API的命名约定就派上用场了,因为它使你的写

iOS 注释的5要3不要和编码规范的26个方面

注释 代码注释,可以说是比代码本身更重要.这里有一些方法可以确保你写在代码中的注释是友好的: 不要重复阅读者已经知道的内容 能明确说明代码是做什么的注释对我们是没有帮助的. // If the color is red, turn it green if (color.is_red()) { color.turn_green(); }   要注释说明推理和历史 如果代码中的业务逻辑以后可能需要更新或更改,那就应该留下注释:) /* The API currently returns an arr

iOS代码规范(Swift 与 OC 混编版)

前言 按照自己的理解整理的 iOS 代码规范,部分规范参考了网上现有的一些资料,希望对大家有所帮助 编码规范 项目结构规范 项目结构图 |-业务1 | |-业务1的Storyboard | |-子业务1 | | |-controller | | |-view | | `-model | |-子业务2 | | |-controller | | |-views | | `-models |-业务2 | |-业务2的Storyboard | |-子业务1 | | |-controller | | |-

Python最简编码规范

前言 本文是阅读<Python Coding Rule>之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考. 重要原则 保持风格的一致性很重要,但最重要的是:知道何时不一致 打破一条既定规则的两个好理由: 当应用规则会导致代码可读性下降(可读性赛高) 为了和周围代码保持一致而打破规则(历史遗留) 最简规范 只使用空格缩进 使用UTF-8编码 每行只写一条语句 使用行末反斜杠折叠长行,限制每行最大79字符 导入包:每行

《疯狂Java讲义(第3版)》.(李刚)——java命名规则及编码规范

1.命名规则: 此处借鉴一下他人的资料,比较全面一些,方便了解学习. JAVA源文件的命名 JAVA源文件名必须和源文件中所定义的类的类名相同. Package的命名 Package名的第一部分应是小写ASCII字符,并且是顶级域名之一,通常是com.edu.gov.mil.net.org或由ISO标准3166.1981定义的国家唯一标志码.Package名的后续部分由各组织内部命名规则决定,内部命名规则指定了各组件的目录名,所属部门名.项目名等. Class/Interface的命名 Clas