在這個練習中,你會提供一個 TranslationService,讓付費會員享有某種品質保證。
你發現了一個神奇的翻譯 API,它能在合理的時間內完成任何翻譯請求,而你想好好利用這一點。
這個神奇的 API 介面非常精簡:
api.fetch(text)會取得text的翻譯,並回傳兩個值:
translation:實際的翻譯quality:以數字表示的品質如果沒有可用的翻譯(因為還沒有人請求過),API 就會拋出錯誤。如果某段文字無法翻譯,也會發生這種情況。
api.request(text, callback)會請求text的翻譯,並在準備好之後呼叫callback,不帶任何值。
request API 並不穩定,這表示有時 API 會以錯誤呼叫callback。如果發生這種情況,可以重新請求。
由於一些先前的使用者在寫程式時偷懶,總是一再請求翻譯,甚至不檢查文字是否已經翻譯過,所以如果文字已經翻譯過,API 就會回傳錯誤,並永遠徹底封鎖所有存取。
以下是一些符合這個翻譯服務故事的任務範例:
以下是對說明中反覆出現的術語(包括 stub 註解)的建議,而非規則。
TranslationService,或簡稱 APIcallback
所有的翻譯文字都是從克林貢語翻成英文。
'arlogh Qoylu'pu'? 的正確翻譯是 How many times has it been heard?。