Servizio di traduzione klingon


Storia

In questo esercizio fornirai un TranslationService grazie al quale i membri paganti ottengono una qualche garanzia di qualità.

Hai trovato un'API di traduzione magica capace di soddisfare qualsiasi richiesta di traduzione in un tempo ragionevole, e vuoi trarne vantaggio.

L'API magica ha un'interfaccia molto essenziale:

Recuperare una traduzione

api.fetch(text) recupera la traduzione di text e restituisce due valori:

  • translation: la traduzione vera e propria
  • quality: la qualità espressa come numero

Se non c'è una traduzione disponibile (perché non è ancora stata richiesta), l'API lancia un errore. Questo succede anche se un testo non è traducibile.

Richiedere una traduzione

api.request(text, callback) richiede la traduzione di text e chiama il callback quando è pronta, senza alcun valore.

L'API request è instabile: a volte può capitare che chiami il callback con un errore. Se succede, va bene richiedere di nuovo.

⚠ Attenzione! ⚠

Dato che alcuni utenti precedenti, per pigrizia, richiedevano sempre una traduzione senza nemmeno controllare se il testo era già stato tradotto, l'API restituisce un errore se il testo è già stato tradotto e blocca ogni accesso in modo completo, per sempre.

Attività

Questi sono esempi di attività che si adattano alla storia del servizio di traduzione:

  • Recuperare una traduzione, ignorando la qualità
  • Recuperare un lotto di traduzioni, tutto o niente
  • Richiedere una traduzione, ritentando al massimo 2 volte
  • Recuperare una traduzione, ispezionare la qualità oppure richiederla

Terminologia

Queste sono raccomandazioni, non regole, per la terminologia ricorrente nelle istruzioni (incluso il commento negli stub)

  • La dipendenza iniettata si chiama TranslationService, o API
  • Il servizio è asincrono, ma questo non viene mai menzionato
  • Un fallimento su un Future: l'API lancia un errore
  • Un fallimento su un Callback: l'API chiamerà il callback con un errore

Tutti i testi da tradurre vanno dal klingon all'inglese.

Implementazioni

Riferimenti

N.B.

La traduzione corretta di 'arlogh Qoylu'pu'? è How many times has it been heard?.