Υπηρεσία μετάφρασης Klingon


Ιστορία

Σε αυτή την άσκηση θα παρέχεις ένα TranslationService, όπου τα μέλη που πληρώνουν έχουν κάποια διασφάλιση ποιότητας.

Βρήκες ένα μαγικό API μετάφρασης που μπορεί να ικανοποιήσει οποιοδήποτε αίτημα μετάφρασης σε λογικό χρόνο, και θέλεις να το εκμεταλλευτείς.

Το μαγικό API έχει μια πολύ μινιμαλιστική διεπαφή:

Ανάκτηση μιας μετάφρασης

Το api.fetch(text) ανακτά τη μετάφραση του text και επιστρέφει δύο τιμές:

  • translation: η πραγματική μετάφραση
  • quality: η ποιότητα εκφρασμένη ως αριθμός

Αν δεν υπάρχει διαθέσιμη μετάφραση (επειδή δεν έχει ζητηθεί ακόμη), το API πετάει ένα σφάλμα. Το ίδιο συμβαίνει και αν ένα κομμάτι κειμένου δεν είναι μεταφράσιμο.

Αίτημα για μετάφραση

Το api.request(text, callback) ζητάει τη μετάφραση του text και καλεί το callback μόλις αυτή είναι έτοιμη, χωρίς κάποια τιμή.

Το API request είναι ασταθές, που σημαίνει ότι μερικές φορές το API θα καλέσει το callback με ένα σφάλμα. Αν συμβεί αυτό, δεν πειράζει να ξανακάνεις το αίτημα.

⚠ Προσοχή! ⚠

Επειδή κάποιοι προηγούμενοι χρήστες ήταν τεμπέληδες όταν προγραμμάτιζαν και ζητούσαν πάντα μετάφραση, χωρίς καν να ελέγξουν αν το κείμενο έχει ήδη μεταφραστεί, το API επιστρέφει σφάλμα αν το κείμενο έχει ήδη μεταφραστεί και μπλοκάρει εντελώς κάθε πρόσβαση, για πάντα.

Εργασίες

Αυτά είναι παραδείγματα εργασιών που ταιριάζουν στην ιστορία της υπηρεσίας μετάφρασης:

  • Ανάκτησε μια μετάφραση, αγνοώντας την ποιότητα
  • Ανάκτησε μια δέσμη μεταφράσεων, όλα ή τίποτα
  • Ζήτησε μια μετάφραση, με επανάληψη το πολύ 2 φορές
  • Ανάκτησε μια μετάφραση, έλεγξε την ποιότητα ή ζήτησέ την

Ορολογία

Αυτές είναι συστάσεις, όχι κανόνες, για την επαναλαμβανόμενη ορολογία στις οδηγίες (συμπεριλαμβανομένων των σχολίων στο stub)

  • Η εξάρτηση που εγχέεται ονομάζεται TranslationService, ή API
  • Η υπηρεσία είναι ασύγχρονη, αλλά αυτό δεν αναφέρεται ποτέ
  • Μια αποτυχία σε ένα Future είναι το API πετάει ένα σφάλμα
  • Μια αποτυχία σε ένα Callback είναι το API θα καλέσει το callback με ένα σφάλμα

Όλα τα κείμενα προς μετάφραση είναι από Κλίνγκον σε αγγλικά.

Υλοποιήσεις

Αναφορές

Σημείωση

Η σωστή μετάφραση του 'arlogh Qoylu'pu'? είναι How many times has it been heard?.