美文网首页
Swift:风格指南

Swift:风格指南

作者: 春暖花已开 | 来源:发表于2018-08-01 22:51 被阅读36次
  1. 对于命名,在使用时能清晰表意是最重要。因为API被使用的次数要远远多于被声明的 次数,所以我们应当从使用者的⻆度来考虑它们的名字。尽快熟悉 Swift API 设计准则,并且在你自己的代码中坚持使用这些准则。
  2. 简洁经常有助于代码清晰,但是简洁本身不应该独自成为我们编码的目标。
  3. 务必为函数添加文档注释—特别是泛型函数。
  4. 类型使用大写字母开头,函数、变量和枚举成员使用小写字母开头,两者都使用驼峰式 命名法。
  5. 使用类型推断。省略掉显而易⻅的类型会有助于提高可读性。
  6. 如果存在歧义或者在进行定义的时候不要使用类型推断。(比如func就需要显式地指定 返回类型)
  7. 优先选择结构体,只在确实需要使用到类特有的特性或者是引用语义时才使用类。
  8. 除非你的设计就是希望某个类被继承使用,否则都应该将它们标记为final
  9. 除非一个闭包后面立即跟随有左括号,否则都应该使用尾随闭包(trailingclosure)的语 法。
  10. 使用guard来提早退出方法。
  11. 避免对可选值进行强制解包和隐式强制解包。它们偶尔有用,但是经常需要使用它们的话往往意味着有其他不妥的地方。
  12. 不要写重复的代码。如果你发现你写了好几次类似的代码片段的话,试着将它们提取到 一个函数里,并且考虑将这个函数转化为协议扩展的可能性。
  13. 试着去使用map和reduce,但这不是强制的。当合适的时候,使用for循环也无可厚 非。高阶函数的意义是让代码可读性更高。但是如果使用 reduce 的场景难以理解的话, 强行使用往往事与愿违,这种时候简单的 for 循环可能会更清晰。
  14. 试着去使用不可变值:除非你需要改变某个值,否则都应该使用let来声明变量。不过 如果能让代码更加清晰高效的话,也可以选择使用可变的版本。用函数将可变的部分封 装起来,可以把它带来的副作用进行隔离。
  15. Swift的泛型可能会导致非常⻓的函数签名。坏消息是我们现在除了将函数声明强制写 成几行以外,对此并没有什么好办法。我们会在示例代码中在这点上保持一贯性,这样 你能看到我们是如何处理这个问题的。
  16. 除非你确实需要,否则不要使用self.。不过在闭包表达式中,self是被强制使用的,这 是一个清晰的信号,表明闭包将会捕获 self。
  17. 尽可能地对现有的类型和协议进行扩展,而不是写一些全局函数。这有助于提高可读性, 让别人更容易发现你的代码。

注:摘自《Swift进阶》

相关文章

  • raywenderlich的Swift编程风格指南

    raywenderlich的Swift编程风格指南 raywenderlich的Swift编程风格指南

  • Swift:风格指南

    对于命名,在使用时能清晰表意是最重要。因为API被使用的次数要远远多于被声明的 次数,所以我们应当从使用者的⻆度来...

  • Swift风格指南

    在我们写Swift代码时,我们应尽量遵循如下原则: 可读性是最重要的。保持简短可以让你的代码更容易被理解。 务必为...

  • Swift 风格指南

    当我们编写这本书,或者在我们自己的项目中使用 Swift 代码时,我们尽量遵循如下的原则: 对于命名,在使用时能清...

  • Swift编码规范

    官方 Swift 风格指南 一定要阅读Apple 的 API 设计规范。 具体的规范细节和附加说明如下。 本指南已...

  • Swift 编码风格指南

    本文转自:Swift 编码风格指南 | www.samirchen.com 背景 本文主要是对以下几个编码规范的整...

  • Swift 编程风格指南

    1. 命名 使用驼峰式命名法,类、结构体、枚举、协议的首字母应该大写,而方法、变量名首字母则小写。 1.1 枚举 ...

  • Swift编码风格指南

    最近在阅读swift进阶这本书,其中的风格指南,我每次打开书要读的时候,我都会先看一遍这个指南,因为觉得真的很好....

  • Swift 4 JSON 解析指南

    Swift 4 JSON 解析指南 Swift 4 JSON 解析指南

  • Swift编码风格指导

    引见 Swift的编码风格大部分和OC的编码风格一致,在前一篇文章Objective-C编程风格指南中已经提出,在...

网友评论

      本文标题:Swift:风格指南

      本文链接:https://www.haomeiwen.com/subject/aqedvftx.html