做者:Dominik Hauser,原文连接,原文日期:2015/04/19
译者:小锅;校对:Channe;定稿:numbbbbbios
昨天我收到一个问题,做为一个 Swift 初学者应该先学什么。下面是原问题:编程
我有一些疑惑,TDD(测试驱动开发)是否值得花时间学习,或者我应该把时间花在学习 Swift 以及函数式编程上?swift
固然,个人观点会有所倾向,由于我写过一本关于 TDD 的书。因此,当你阅读个人答案的时候,要记住这一点。app
个人建议是应该先学习 Swift 语法。这是全部一切的基础。若是你不明白 Swift 中的函数有什么功能,那么你也没法理解 Swift 的函数式编程。而且,Swift 目前的主要做用仍是为 iOS、macOS 编写应用程序。这意味着,你的大部分时间仍是会花在与面向对象 API 的交互上(至少在写本篇文章的时候仍是如此 ;))。因此你必须先理解面向对象的 Swift,这样才能最大化挖掘 Swift 的潜力。less
若是你对我说的这一点还有所怀疑的话,下面这段话是 Chris Eidhof、Florian Kugler 和 Wouter Swierstra 在 《函数式 Swift》 这本书当中说的:函数式编程
“你必须能熟练地阅读 Swift 程序,而且熟悉常见的编程概念,好比类,方法,和变量。若是你才刚开始学习编程,这本书可能不太适合你。”函数
官方文档很好。可是若是你想看到社区内的各类有创意的思想火花,你须要阅读大量的博客文章(校对注:好比多看看 SwiftGG?,咱们会跟进 Swift 最新动态和最佳实践)。工具
我以为测试是必不可少的。每一个开发者都应该对他们的代码进行测试。一个好的测试工具备很是多的好处。Michael Feathers 在 Working Effectively with Legacy Code 当中写过:学习
对我而言,遗留代码就是那些没有写测试的代码。测试
个人见解是,测试驱动开发就应该从测试开始,而须要测试什么这个问题是次要的。你要为(几乎)全部的代码写测试。TDD 的一个法则就是只有当测试失败的时候才须要写代码。
Swift 也拥有函数式的特性。你能够不使用它们,但若是你是(或者想成为)社区中积极的一分子,你很快就会碰到函数式魔法。个人见解是,学习函数式编程会让你成为一个更好的开发者。一般状况下,函数式的代码第一眼看上去就像魔法同样,但它就是能完成功能(这能够经过测试来验证)。
这就是个人建议,确定有不少开发者跟我持不一样的意见,这很正常,一样去问问他们的想法吧。
最后,记得买个人书。 ;)
本文由 SwiftGG 翻译组翻译,已经得到做者翻译受权,最新文章请访问 http://swift.gg。