命名约定
1. 代码命名约定; 2. 文件命名约定
代码命名约定
1. 命名空间
类名不需要使用Objective-C的规则增加前缀,Swift以模块的名称作为命名空间。
如果来自不同模块的两个名字发生冲突,可以通过在类型名称前面加上模块名称来消除歧义。
2. 首字母大写的驼峰命名
对于struct
, enum type
, class
, typedef
, associatedtype
, protocols
使用首字母大写的驼峰命名。Pascal Naming Convention
3. 第一个单词首字母小写的驼峰命名
对于function
, method
, property
, constant
, variable
, argument names
, enum value
使用第一个单词首字母小写的驼峰命名。Camel Case Convention
4. 缩略语
处理一个缩略语或其他常用大写字母的名称时,要使用使用完全大写的命名方式。
如果这个单词需要位于以小写字母开始名称的开头,则需要对该缩写词使用完全小写的命名。
5. 常量
所有与实例无关的常量,都需要声明为static
,以避免为每一个实例都声明一个常量。
这些常量应该放在class
或enum
的// Mark:
之后,或者放在一个不带大小写的枚举enum
中。使用枚举的优点是不会被意外的实例化,而且可以作为命名空间使用。
6. 常量范围
尽量在常量的使用范围内声明常量,不必把所有的常量都声明在共享的常量文件内。
7. 避免模糊名称
避免类,变量等的模糊命名,尽量做到见名知意。
例如RoundAnimatingButton
比CustomButton
要更容易理解
8. 避免缩写
避免使用单一名称或缩写。
9. 命名中包含类型
只有在名称不明确的情况下才需要在命名中增加类型信息。
10. 名称之后添加类型
使用IBOutlet
时,在名称结尾添加类型。
11. 函数参数命名
函数参数命名,需要确保函数易于阅读,以便理解每个参数的目的。
12. 协议命名
协议应该被命名为名词;如果不能,也可以在协议中添加Protocol
后缀。
文件命名约定
1. 单一类型
只包含单一类型如MyType
的文件命名为MyType.Swift
。
2. 单一类型加一些辅助函数
包含MyType
类型和一些上层的辅助函数(非主要实体)也可以命名为MyType.Swift
。
3. 单一扩展
为MyType
类型扩展添加遵循了协议MyProtocol
,这个文件可以被命名为MyType+MyProtocol.swift
。
4. 多个扩展
当为某个类型添加了多个扩展或辅助函数,可以使用MyType+
为前缀,使文件名称具有通用性。如MyType+Additions.swift
。
5. 描述性命名
当一些声明不在公共类型或命名空间下,可以使用描述性的方式命名。
如全局数学函数的集合可以命名为Math.Swift
。
最后更新于