今天我想要簡短的翻譯這篇文章,我覺得這篇文章列出的時點都很有參考價值,讓我獲益良多,不過因為是技術文章,所以就不逐字翻了。
請不要這樣寫,難到你沒看過任何蘋果的文件或其他人的程式碼嗎?
func neverDoThis()
{
let fuglyCode = true
if (fuglyCode == true)
{
print("This is atrocious")
}
}
要這樣
func swiftyWay() {
let isLegit = true
if isLegit {
print("This is fine")
}
}
as
as!
as?
try
try!
try?
Int
Int!
Int?
這些你知道他們分別代表什麼意思嗎?去查!
Optionals Lesson
Type Casting Lesson
Error Handling Lesson
如果超過二十行,把它拆成幾個小的模組。
多執行緒的概念很嚇人,我不騙你,我沒有電腦科學相關背景,我到現在對這個還是不是很了解。
我有寫過兩篇關於要在主執行緒更動 UI 在背景連網的文章:
Intro to Grand Dispatch Central with Bob
UI and Networking like a Boss in Swift 3 (Part 2)
有些方法可以根本性地降低程式碼的行數,像是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
千萬不要這樣寫
public enum UIAlertViewStyle : Int {
case `default`
case secureTextInput
case plainTextInput
case loginAndPasswordInput
}
根據 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
Guard 不只可以用來 unwrapping optioanls,還可以用來代替 if-else
以及 提早結束字元 break
、return
。來看個實例:
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")
}
初學者傾向用太多的 Segue 導致 Storyboard 看起來像個蜘蛛網,一旦你這樣開始,你會很難追蹤特定的 ViewController。
Pass Data between ViewController with Delegate
Guard Statement Lesson
Optionals
原文:Top 10 Ground Rules for iOS Developers