في هذا التمرين ستقدّم TranslationService، وهي خدمة يحصل فيها الأعضاء المدفوعون على قدرٍ من ضمان الجودة.
لقد وجدت API سحرية للترجمة قادرة على تلبية أي طلب ترجمة في وقت معقول، وتريد أن تستفيد من ذلك.
تتسم API السحرية بواجهة بالغة البساطة:
api.fetch(text) يجلب ترجمة text، ويُرجع قيمتين:
translation: الترجمة الفعليةquality: الجودة معبَّرًا عنها بعددإذا لم تكن هناك ترجمة متاحة (لأنها لم تُطلب بعد)، فإن API تُصدر خطأً. ويحدث هذا أيضًا إذا كان نصٌّ ما غير قابل للترجمة.
api.request(text, callback) يطلب ترجمة text، ويستدعي callback بمجرد أن تصبح جاهزة، من دون قيمة.
إن واجهة request غير مستقرة، ما يعني أن API قد تستدعي callback أحيانًا مع خطأ. وإذا حدث ذلك، فلا بأس من إعادة الطلب.
بعض المستخدمين السابقين تكاسلوا عند البرمجة، فكانوا يطلبون ترجمة دائمًا من دون أن يتحققوا حتى مما إذا كان النص قد تُرجم بالفعل. لذلك، إذا كان النص قد تُرجم من قبل، فإن API تُرجع خطأً وتحجب كل الوصول تمامًا، إلى الأبد.
هذه أمثلة على مهام تناسب قصة خدمة الترجمة:
هذه توصيات، لا قواعد، بشأن المصطلحات المتكررة في التعليمات (بما في ذلك تعليقات ملف البداية)
TranslationService، أو APIFuture يعني أن تُصدر API خطأً
Callback يعني أن تستدعي API callback مع خطأ
كل نصوص الترجمة من الكلينغونية إلى الإنجليزية.
الترجمة الصحيحة لـ 'arlogh Qoylu'pu'? هي How many times has it been heard?.