iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 16
0
自我挑戰組

iOS 筆記系列 第 16

Top 10 Ground Rules for iOS Developers

  • 分享至 

  • xImage
  •  

今天我想要簡短的翻譯這篇文章,我覺得這篇文章列出的時點都很有參考價值,讓我獲益良多,不過因為是技術文章,所以就不逐字翻了。


1. 縮排

請不要這樣寫,難到你沒看過任何蘋果的文件或其他人的程式碼嗎?

func neverDoThis() 
{
    let fuglyCode = true
    if (fuglyCode == true)
    {
        print("This is atrocious")
    }
}

要這樣

func swiftyWay() {
    let isLegit = true
    if isLegit {
        print("This is fine")
    }
}

2, 除非你百分之百確定要不然不要用 Try!, as!, String!

as as! as?
try try! try?
Int Int! Int?

這些你知道他們分別代表什麼意思嗎?去查!

相關資源

Optionals Lesson
Type Casting Lesson
Error Handling Lesson

3. 一個方法不要超過二十行

如果超過二十行,把它拆成幾個小的模組。

4. UI Main Thread, Networking Background Thread

多執行緒的概念很嚇人,我不騙你,我沒有電腦科學相關背景,我到現在對這個還是不是很了解。

我有寫過兩篇關於要在主執行緒更動 UI 在背景連網的文章:
Intro to Grand Dispatch Central with Bob
UI and Networking like a Boss in Swift 3 (Part 2)

5. 不要讓任何一個 Swift 檔案超過 200 行

有些方法可以根本性地降低程式碼的行數,像是Protocol Oriented Programming;如果你在用 MVC,你可以去查查 MVVC。

相關資源

Extension Lesson
Intro to Protocol Oriented Programming
Protocol Oriented MVVM in Swift 2.0
Protocol Oriented Views
Protocol Oriented TableView and CollectionView

6. 使用 Enum

千萬不要這樣寫

public enum UIAlertViewStyle : Int {
    case `default`
    case secureTextInput
    case plainTextInput
    case loginAndPasswordInput
}

相關資源

Enum Lesson

7. 命名,描述性,Guideline

根據 Swift API guideline,有些準則是開發者應該遵循的

慣例 > 自創

表達性 > 令人印相深刻

寫程式不只是跟電腦溝通,還要跟其他開發者溝通,不要寫些奇奇怪怪的名字然後自以為很厲害。

明瞭 > 簡短

這兩者沒有什麼對錯,就是要在中間取得一個平衡。
這樣太簡短了

let a = "A"
let b = "B"

如果你寫成上面那樣,我會不知道 a 跟 a 到底要表達什麼,我還要往回追溯,為什麼不把變數的命名寫上更多描述呢?

let capLetterA = "A"
let capLetterB = "B"

相關資源

Swift 3 Styling Guide Lesson
Swift API Design Guidelines at WWDC

8. 使用 Guard

Guard 不只可以用來 unwrapping optioanls,還可以用來代替 if-else 以及 提早結束字元 breakreturn。來看個實例:

let name = "Bobby"
func checkName() {
  // Early Check 
  guard name == "Bob" else {
  print("You ain't Bob")
  return
 }
 // I can do anything I want without seeing the else block.
 // So much freedom 
 // You don't even need to read this
 // Why are you even reading this 
 // Now, you may leave. I'm not going to say anything important 
 // In this block of code 
 // Lol... you still here? 
 print("You Good, bro")
}

9. 不要用任何 NS 形態

10. 不要依賴 Segues

初學者傾向用太多的 Segue 導致 Storyboard 看起來像個蜘蛛網,一旦你這樣開始,你會很難追蹤特定的 ViewController。

  • 使用 Delegate/NSNotification 來傳遞資
  • 使用多個 Storyboard
  • 如果你熟悉 Delegate,你可以開始使用 RxSwift 或是 ReactiveCocoaso

Pass Data between ViewController with Delegate

相關資源

Guard Statement Lesson
Optionals

原文:Top 10 Ground Rules for iOS Developers


上一篇
Custom HeaderView
下一篇
ScrollView
系列文
iOS 筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言