Pernyataan masalah kompatibilitas mundur

Seperti biasa, kami akan memberikan definisi semantik tentang "kompatibilitas mundur" sebelum memulai presentasi.







Kompatibilitas mundur adalah properti dari seluruh sistem API agar stabil dari waktu ke waktu. Artinya sebagai berikut: kode yang ditulis oleh pengembang menggunakan API Anda terus berfungsi dengan benar untuk waktu yang lama . Ada dua pertanyaan besar untuk definisi ini, dan dua klarifikasi untuk mereka.







  1. Apa artinya "benar secara fungsional"?







    Ini berarti bahwa kode terus menjalankan fungsinya - untuk menyelesaikan beberapa tugas pengguna. Ini tidak berarti bahwa ia terus bekerja sama: misalnya, jika Anda menyediakan pustaka UI, maka mengubah detail desain yang tidak relevan secara fungsional, seperti kedalaman bayangan atau bentuk guratan tepi, tidak akan merusak kompatibilitas ke belakang. Namun, misalnya, mengubah ukuran komponen visual cenderung mengarah pada fakta bahwa beberapa tata letak khusus berantakan.







  2. Apa artinya β€œlama waktu”?







    Dari sudut pandang kami, durasi pemeliharaan kompatibilitas ke belakang harus dikaitkan dengan durasi siklus hidup aplikasi di area subjek terkait. Tolok ukur yang baik dalam banyak kasus adalah periode LTS platform. Karena aplikasi masih akan ditulis ulang karena dukungan platform sudah berakhir, adalah normal untuk menyarankan peralihan ke versi baru API juga. Di bidang subjek utama (sistem operasi desktop dan seluler), periode ini dihitung dalam beberapa tahun.









Mengapa kompatibilitas mundur harus dipertahankan (termasuk mengambil tindakan yang diperlukan pada tahap desain API) jelas dari definisinya. Penghentian aplikasi (penuh atau sebagian) karena kesalahan penyedia API adalah peristiwa yang sangat tidak menyenangkan, jika bukan bencana, bagi pengembang mana pun, terutama jika dia membayar uang untuk API ini.







: ? ? , , , .







, API. : , , . , , , , API, :







  • , , , ;







  • : , ;







  • , API , .









Β« API Β», . : API , , API β€” β€” .







NB: : Β« Β» API.







, API β€” , . , : - β€” , , . : , , .







API, : , .









, API, β€” . , . :







  1. on-demand , - , ( SDK, , JS API), API . , - .







    , β€” SDK . , on-demand β€” , , . , ( ) SDK. , - , API .







  2. on-demand , , . , β€” «» , API, , . , Web-; , β€” :







    • , ;
    • ( , , , «» );
    • , .







      . , API β€” , API.







      SDK, API , , HTTP . , , API - SDK, . : SDK β€” SDK ( - ), . Β« β€” Β», , : API β€” , API . , , API .











, API stateless SDK ( SDK ), , β€” API. - API SDK.









β€” , API. , , - :







  • ;
  • ;
  • .


, API . API - , API, , β€” . , β€” , , .







, API , , , () . , API , , , .









, β€” «», API. , , , , . , , , SDK. , , .







, , ( API) , , .







, API , . , β€” , , , . «» , API.









, :







  • , API, ; , , ;
  • API ;
  • , API .


.







  1. API.







    . API , , . , , . , . , , ( ), , .







  2. .







    , : . 5-10 , β€” , . , .







  3. ( ) .







    :







    • API SDK, API, : API , ;
    • code-on-demand SDK, SDK , , - . , , .




Kami akan melihat masalah ini lebih detail di bab-bab berikut. Selain itu, di Bagian III, kami juga akan membahas cara memperingatkan konsumen tentang versi yang lebih baru dan akhir dukungan untuk versi yang lebih lama, dan cara mendorong mereka untuk bermigrasi ke versi API yang lebih baru.










Ini adalah draf untuk bab selanjutnya dari buku tentang pengembangan API. Pekerjaan dilakukan di Github .

Versi bahasa Inggris dari bab yang sama diterbitkan pada medium . Saya akan sangat menghargai jika Anda dapat membagikannya di reddit - Saya sendiri tidak dapat sesuai dengan kebijakan platform.








All Articles