• Swift编程规范


    文档编号:

    应用开发Swift编码规范

    (版本v1.0.0

     

     

     


    成文信息

    主题词:

    Swift开发编码规范

    作  者:

    周少停

    文档类别:

    开发规范

    审  核:

    批  准:

    文档性质:

    初稿

    主  送:

    存档日期:

    抄  送:

    发布日期:

    2016年4月8号

    变更信息

    版本

    原因

    作者

    日期

               

     

    第一章 概述

    1.1 编写目的

    开发规范制定的目的是为了保证在系统设计、编码、测试、维护的过程中项目组人员遵循一套统一系统设计标准、应用程序编写标准、页面风格标准,

    借以提高软件开发团队的效率、增加代码的统一性、可读性,可维护性,保障项目开发稳定。

    本文档的阅读对象为开发人员。

    本文档提供了项目开发的各项规范以及指导原则。开发人员在开发过程中必须严格遵守此开发规范。

    1.2 定义

    基类:应用程序最底层的程序支撑,封装应用程序的基本功能和框架实现。

    本文中凡是规范标题下的内容,都是开发过程中必须遵守的约定。

    本文中凡是注意事项标题下的内容,都是开发过程中最好遵守的原则,它们多是一些技巧的提示,可提高应用程序的性能,避免不必要的错误。

    1.3 参考资料

    想要了解更多Swift,请查阅以下链接:

    github官方网站:https://github.com/

    苹果Swift官方网站:https://developer.apple.com/swift/

    Swift学习网站(SwiftV视频课堂):http://www.swiftv.cn/

    Swift学习网站(极客学院):http://search.jikexueyuan.com/course/?q=swift

    Swift指南:https://github.com/ipader/SwiftGuide

    Swift代码规范:https://github.com/Artwalk/swift-style-guide/blob/master/README_CN.md

                           https://github.com/raywenderlich/swift-style-guide

    第二章 代码格式与风格 

    2.1 基本原则

    代码格式与风格的基本原则是:便于开发,易于交流,前后一致,符合本规范求,形成全公司统一风格。

    • 缩进精确,减少程序员犯错的可能
    • 明确意图
    • 减少冗余
    • 少量关于美的讨论

    2.2 新建工程

    •       Product Name使用英文,第一个首字母大写
    •       Organization Name:9elephas
    •       Organization Identifer:com.9elephas  

    2.3 缩进

    子功能块当在其父功能块后缩进。

    当功能块过多而导致缩进过深时当将子功能块提取出来做为子函数。

    • 用 Tabs,而非 空格
    • 文件结束时留一空行
    • 用足够的空行把代码分割成合理的块
    • 不要在一行结尾留下空白
    • 千万别在空行留下缩进

    使用缩进2个空格,而不是制表符,以节省空间,并有助于防止换行。请务必在Xcode中设置此偏好。

    如:

    2.4 长度

    为便于阅读和理解,单个函数的有效代码长度当尽量控制在100行以内(不包括注释行),当一个功能模块过大时往往造成阅读困难,

    因此当使用子函数等将相应功能抽取出来,这也有利于提高代码的重用度。

    单个类也不宜过大,当出现此类情况时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。

    尽量避免使用大类和长方法。

    2.5 行宽

    页宽应该设置为80字符。一般不要超过这个宽度, 这会导致在某些机器中无法以一屏来完整显示, 但这一设置也可以灵活调整。

    在任何情况下, 超长的语句应该在一个逗号后或一个操作符前折行。一条语句折行后, 应该比原来的语句再缩进一个TAB或4个空格,以便于阅读。

    一行代码长度也最好控制在80字符以内,该功能可在Xcode里面设置.

     

    2.6 间隔

    类、方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。

    操作符两端应当各空一个字符以增加可读性。

    相应独立的功能模块之间可使用注释行间隔,并标明相应内容.

    2.7 括号

    Swift中括号不同其他编程语言,这里需要注意.如:

    同时,{ }的使用规划应该为:

    而不是

    2.8 分号

    Swift不需要分号来换行,所以在每行代码结束时,最好不要加分号,除非一行之上有两句代码,这时才需要在每句代码结束之后加分号

    但是,不推荐一行之上写多句代码.

     

    第三章 注释

    3.1 基本原则

    • 注释应该增加代码的清晰度。代码注释的目的是要使代码更易于被其他开发人员等理解。
    • 如果你的程序不值得注释,那么它很可能也不值得运行。
    • 避免使用装饰性内容。
    • 保持注释的简洁。
    • 注释信息不仅要包括代码的功能,还应给出原因。
    • 不要为注释而注释。
    • 除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。

    3.2 单行注释

            单行注释使用//即可

    3.2 多行注释

          多行注释使用/**/

    如:

       

    3.3 类注释

    在每个类开始的时候,Xcode会自动写上有关该类.该工程的信息,这时需要为该类写上注释:该类的功能.注意事项等.如

    3.3 方法注释

    为每一个方法写上注释,该方法的功能.注意事项等,使用MARK标记.

    第四章 字段

    4.1 类名.自定义协议名.枚举

    类名.自定义协议名.枚举采用大驼峰命名法,类名每个单词的首字母都应该大写.如:

    4.2 方法名.

    方法名.协议名采用小驼峰命名法.第一个单词的首字母小写,其余单词的首字母大写.

    4.3 变量名.常量名.集合名.

    变量名.常量名.集合名一律采用小驼峰命名法,如果只有一个单词,则一律小写.

    4.4 类型推断

    尽可能地使用Swift原生类型.如:

    应尽量避免:

    4.5计算属性

    为了保持简洁,如果一个计算属性是只读的,请忽略掉get语句。只有在需要定义set语句的时候,才提供get语句。

    推荐:

    不推荐:

    4.6函数声明

    保证短的函数定义在同一行中,并且包含左大括号:

    在一个长的函数定义时,在适当的地方进行换行,同时在下一行中添加一个额外的缩进:

    4.7闭包表达式

    如果闭包表达式参数在参数列表中的最后一个时,使用尾部闭包表达式。给定闭包参数一个描述性的命名。

    推荐做法:

    不推荐做法:

    当单个闭包表达式上下文清晰时,使用隐式的返回值:

    4.8结构体构造器

    使用原生的 Swift 结构体构造器,比老式的几何类(CGGeometry)的构造器要好。

    推荐:

    不推荐:

    4.9语法糖

    推荐使用类型定义简洁的版本,而不是全称通用语法。

    推荐:

    不推荐:

    4.10控制流

    推荐循环使用for-in表达式,而不使用for-condition-increment表达式。

    推荐:

    不推荐:

    第五章 其他

    5.1.能用 let 尽量用 let 而不是 var

    一个好的技巧是,使用 let 定义任何东西,只有在编译器告诉我们值需要改变的时候才改成 var 定义。

    5.2.尽早地 Return 或者 break

    当你遇到某些操作需要通过条件判断去执行,应当尽早地退出判断条件,如

    而不应该

    5.3.避免对 可选类型 强解包

    5.4.当指定一个类型时,把 冒号和标识符 连在一起

    当指定标示符的类型时,冒号要紧跟着标示符,然后空一格再写类型

    5.5.需要时才写上 self

    需要时才写上 self,当调用 selfpropertiesmethods 时,self 用默认的隐式引用:

    必要的时候再加上self, 比如在闭包里,或者 参数名冲突了:

    5.6.首选 structs 而非 classes

    除非你需要 class 才能提供的功能(比如 identitydeinitializers),不然就用 struct

    要注意到继承通常是用 类 的好理由,因为 多态 可以通过 协议 实现,重用 可以通过 组合 实现。

    比如,这个类的分级

    可以重构成这个这样:

    5.7.操作定义符 两边留空格

    当定义操作定义符 时,两边留空格

    推荐

           a = b ++

    不推荐

         a=b++

     

     

     

     

     

     

     

  • 相关阅读:
    python_控制台输出带颜色的文字方法
    模拟数据库作业
    js笔记
    CSS 笔记
    html 笔记
    必备技能-Git 使用规范流程
    python 闭包
    30个python编程技巧!
    python 面向对象
    python 线程
  • 原文地址:https://www.cnblogs.com/shaoting/p/5379387.html
Copyright © 2020-2023  润新知