สิ่งนี้ขึ้นอยู่กับความมั่นคงที่คุณให้กับผู้ใช้และความเจ็บปวดที่คุณต้องการให้เกิดกับผู้ใช้ของคุณ
ตามหลักการแล้ว API ของคุณจะใช้semverเพื่อให้การเปลี่ยนแปลงใด ๆ ทำให้หมายเลขเวอร์ชันหลักเพิ่มขึ้น ในทางปฏิบัติมันเป็นที่พึงปรารถนาที่จะทำเช่นนี้แทบจะไม่เคย หาก API ของคุณได้รับการติดตั้งผ่านตัวจัดการแพคเกจบางอย่างคุณอาจต้องการสร้างชื่อแพ็กเกจใหม่หลังจากการเปลี่ยนแปลงที่ไม่สมบูรณ์เพื่อให้การอัปเกรดแบบง่ายไม่ทำให้เกิดข้อขัดแย้ง (เช่นmyapi2 v2.123.4
vs myapi3 v3.2.1
) อาจไม่จำเป็นหากผู้จัดการแพคเกจของคุณรองรับการพึ่งพาเวอร์ชันที่เข้มงวดมากขึ้น (เช่นข้อกำหนดการพึ่งพาเช่น~v2.120
ที่ไม่รวมv3.*
) แต่ชื่อแพคเกจที่แตกต่างกันมีข้อได้เปรียบที่รุ่นที่เข้ากันไม่ได้สามารถใช้งานร่วมกันได้อย่างง่ายดาย แม้เมื่อใช้ semver ก็สามารถมีเหตุผลที่จะมีช่วงเวลาการคัดค้าน
Semver อาจไม่สามารถใช้ได้เสมอไป จากนั้นการสื่อสารนโยบายความมั่นคงที่ชัดเจนก็สำคัญกว่า ตัวอย่างเช่น:
- คุณสมบัติการทดลองอาจถูกลบโดยไม่ต้องแจ้งให้ทราบล่วงหน้า
- คุณสมบัติอาจถูกลบออกด้วยเหตุผลด้านความปลอดภัยได้ตลอดเวลา
- คุณสมบัติอื่น ๆ จะถูกลบออกเท่านั้น
- …หลังจากเลิกใช้แล้วในเวอร์ชั่นที่วางจำหน่าย
- ... รุ่นที่มีอายุอย่างน้อยสามเดือน
- …และจะถูกทำเครื่องหมายด้วยการชนในเวอร์ชันหลัก
นโยบายดังกล่าวทำงานได้ดีโดยเฉพาะอย่างยิ่งเมื่อคุณมีการเผยแพร่เป็นประจำเพื่อให้มีช่วงเวลาคัดค้านที่ชัดเจนเช่นหนึ่งปี
นอกเหนือจากการทำเครื่องหมายส่วนต่าง ๆ ของ API ว่าเลิกใช้แล้วคุณควรทำให้เลิกใช้อย่างกว้างขวาง ตัวอย่างเช่น:
- มีส่วนในการเปลี่ยนแปลงของคุณเกี่ยวกับทิศทางและการคัดค้านในอนาคต
- ถ่ายทอดความตั้งใจของคุณที่จะเลิกใช้ก่อนที่จะทำการคัดค้านและฟังชุมชนเพื่อดูว่ามีการคัดค้านที่สำคัญหรือไม่
- สื่อสารสิ่งที่ได้รับประโยชน์จะมาจากการเปลี่ยนแปลงเหล่านี้ ขึ้นอยู่กับฐานผู้ใช้จดหมายข่าวงานนำเสนอโพสต์บล็อกหรือข่าวประชาสัมพันธ์อาจเป็นสื่อที่เหมาะสม “ เรากำลังสร้างฟีเจอร์ใหม่ที่ยอดเยี่ยม! (ซึ่งต้องการฟีเจอร์เก่าที่ใช้กันอย่างแพร่หลายในการลบ)” ค่อนข้างน่าผิดหวังน้อยกว่าการลบฟีเจอร์ที่ไม่มีบริบท
สำหรับระยะเวลาการคัดค้านที่แน่นอนในการเลือกอันดับแรกให้ดูว่าคุณต้องปฏิบัติตามสัญญาการสนับสนุนใด ๆ กับผู้ใช้ของคุณหรือไม่ สัญญาดังกล่าวอาจทำให้คุณต้องรักษาความเข้ากันได้เป็นระยะเวลาหนึ่ง ถ้าไม่พิจารณาผลกระทบต่อเนื่องใด ๆ พยายามที่จะเปลี่ยนแปลงอย่างรวดเร็วน้อยกว่าผู้ใช้ปลายน้ำเพื่อให้พวกเขาสามารถผ่านรอบการคัดค้านของตนเอง ผู้ใช้ปลายน้ำจะใช้เวลาสักครู่ในการปรับตัวให้เข้ากับการเปลี่ยนแปลงของคุณดังนั้นคุณไม่ควรมีช่วงระยะเวลาการคัดค้านที่สั้นกว่าหนึ่งเดือน