Saya faham huraian anda dan mata anda. Sekarang kita telah mengetahui bagaimana ia rasa untuk bekerja teknikal.
Salah satu isu yang saya lihat di sini ialah bagaimana kita akan sedar bahawa kita sudah mempunyai had yang didapati selepas mereka di mana dicapai sebelum.
Kita hanya boleh setiap kali meminta pembekal pilihan dan kemudian pergi ke yang seterusnya. Ini akan menelan belanja prestasi kerana bagi setiap permintaan untuk halaman yang memerlukan terjemahan, kita akan membuat panggilan tidak berjaya kepada pembekal pilihan, kemudian kepada 1 akan datang (supaya ia boleh menjadi beberapa panggilan tidak berjaya apabila vBET akan menyokong API lebih).
Penyelesaian yang lain akan menyimpan maklumat bahawa pembekal pilihan tidak boleh didapati dan pergi terus kepada salah seorang akan datang. Ini akan lebih cepat, kerana memeriksa pembolehubah tempatan adalah lebih cepat daripada menunggu respons dari pelayan luar. Kali ini, kita mempunyai isu lain - kita tidak tahu apabila pembekal pilihan boleh didapati. Kita boleh tentu membuat beberapa tugas yang dijadualkan yang akan meminta terjemahan ringkas (pendek) contohnya sekali setiap jam / hari untuk memeriksa. Jadi, dalam strategi ini, kita perlu memutuskan berapa kerap secara lalai tugas itu kira bekerja. Sudah tentu kita akan menyemak hanya apabila pembekal beberapa ditandakan sebagai tidak terdapat.
Juga jika kami meraikan pembekal sebagai tidak ada apa yang perlu dilakukan apabila kita tahu bahawa semua pembekal tidak boleh didapati menambah beberapa maklumat untuk pengguna akhir atau hanya menterjemahkan apa yang ada dalam cache dan selebihnya sebagai asal, tanpa apa-apa info tambahan mengenai kekurangan sementara pembekal terjemahan .
Tidak kira yang cara ia akan dilakukan, Google akan dianggap sebagai salah satu API (v1 atau v2 bergantung kepada konfigurasi) - tidak ada rasa untuk memecahkan, kerana Google v1 akan ditutup tidak lama lagi.
Perkara yang lain adalah untuk membenarkan untuk mengkonfigurasi beratur pembekal bagi setiap pasangan bahasa secara berasingan. Pada masa ini vBET sudah membolehkan untuk mengkonfigurasi pembekal terjemahan bagi setiap pasangan bahasa. Saya berfikir bahawa kita boleh mengubah dari satu nilai kepada nilai dipisahkan koma (CSV). Dengan cara ini kita akan tahu untuk setiap pasangan bahasa yang pembekal menyokong terjemahan ini dan apa keutamaan perintah (hanya perintah dalam senarai CSV).
SILA AMBIL PERHATIAN: ini akan mempunyai beberapa kesan prestasi anyway. Daripada mewujudkan satu objek untuk terjemahan, kita akan perlu membuat pelbagai objek tersebut dan Susunan objek tambahan (untuk membuat telus bagi bahagian-bahagian lain kod dan kurang bug cenderung). Sudah tentu kita tidak akan mencipta objek bagi pembekal yang kita tahu tidak boleh didapati pada masa ini.
Penyelesaian ini akan menyusun semula untuk prestasi yang lebih baik dan membuang baris gilir pembekal - sama seperti sekarang - satu pembekal setiap pasangan bahasa.
Ini tidak harus mahal untuk prestasi, tetapi masih ada logik tambahan dan penggunaan memori.
Sila memberitahu penyelesaian yang lebih disukai.