重新學習

重新學習

Posted by willsbor Kang on 2017-03-25

過去以為自己有符合某些概念

但是在實作新物件、refactor、寫 Testing Code 的過程中才發現更多的問題

例如:

一個處理號碼 (phone) 資訊的物件,他可以提供號碼物件給其他 manager or ui 使用,也可以透過網路更新本身的資料。

過去我可能就會寫一個 PhoneInfoManager 裡面有很多的 PhoneInfo,然後這個 Manager 內有一個 update method,裡面實作 server api 相關的程式碼。

像是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class PhoneInfoManager {
static var sharedInstance = PhoneInfoManager()
var infos: [PhoneInfo] = []()

func updateInfos() {
// 透過 server api 更新 infos
}

func save() {
// 儲存到 Core Data or SQL
}

...
}

在現實生活中,這是個很直覺的物件,有一個處理器,能做這些事情。如果只是單純的使用,其實這樣寫也不會有什麼大問題

總是有那麼一個 but!

當要寫 Testing Code 時,問題就浮現出來了!