做者: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。