การเลิกใช้ส่วนประกอบของระบบการออกแบบโดยไม่ทำลายทีมผลิตภัณฑ์
วิธีเปิดตัวการเปลี่ยนแปลงระบบการออกแบบที่แตกหักในแอปขนาดใหญ่: ประกาศ เลิกใช้งาน โยกย้ายด้วย codemod และลบออก โดยใช้การกำหนดเวอร์ชันเชิงความหมายและการติดตามการใช้งาน
หลัก Takeaway
เลิกใช้คอมโพเนนต์ในสี่ขั้นตอน: ประกาศการเปลี่ยนแปลงพร้อมเหตุผลและการเปลี่ยน ทำเครื่องหมายคอมโพเนนต์เก่าที่เลิกใช้แล้วในรีลีสรองพร้อมคำเตือนที่ชัดเจน ช่วยทีมโยกย้ายด้วยคำแนะนำและโค้ดโมดอัตโนมัติ และลบออกเฉพาะในรีลีสหลักถัดไปเท่านั้น ติดตามจำนวนหน้าจอที่ยังคงใช้งานในทุกขั้นตอน และอย่าลบออกจนกว่าการใช้งานจะใกล้เป็นศูนย์
เหตุใดการเสื่อมค่าจึงผิดพลาด
การเปลี่ยนแปลงระบบการออกแบบล้มเหลวเมื่อพวกเขาทำให้ทีมผลิตภัณฑ์ประหลาดใจ: ส่วนประกอบหายไปในการอัปเดต บิวด์หยุดทำงาน และทีมปักหมุดเวอร์ชันเก่าและหยุดอัปเกรด เมื่อสิ่งนั้นเกิดขึ้น ระบบจะสูญเสียประโยชน์หลักและความสม่ำเสมอ เนื่องจากส่วนต่างๆ ของผลิตภัณฑ์จะเคลื่อนไปสู่เวอร์ชันที่ต่างกัน
กระบวนการสี่ขั้นตอน
การกำหนดเวอร์ชันเชิงความหมายให้สัญญาง่ายๆ: การเปลี่ยนแปลงที่เข้ากันไม่ได้จะเกิดขึ้นในเวอร์ชันหลัก และเมื่อคุณเลิกใช้งานส่วนหนึ่งของ API คุณควรอัปเดตเอกสารประกอบและจัดส่งรุ่นรองที่มีการเลิกใช้งาน ก่อนที่จะลบออกในภายหลัง
- ประกาศ: อธิบายสาเหตุ แสดงการเปลี่ยนตำแหน่ง กำหนดเวลา
- เลิกใช้: ทำเครื่องหมายในเอกสารและในโค้ด โดยมีคอนโซลหรือคำเตือนผ้าสำลีที่ลิงก์ไปยังคำแนะนำ
- โยกย้าย: จัดเตรียมคำแนะนำที่เป็นลายลักษณ์อักษร และสำหรับโค้ด ให้ระบุโค้ดโมดที่อัปเดตการใช้งานโดยอัตโนมัติ
- ลบออก: ในรุ่นหลักถัดไป เมื่อการใช้งานใกล้เป็นศูนย์
ทำการโยกย้ายอัตโนมัติ
Codemods คือสคริปต์ที่เขียนโค้ดใหม่ทั่วทั้งโค้ดเบส เครื่องมือต่างๆ เช่น jscodeshift รันโค้ดโมดบนไฟล์ JavaScript หรือ TypeScript หลายไฟล์พร้อมกัน ดังนั้นการเปลี่ยนชื่อ prop หรือการสลับคอมโพเนนต์สามารถใช้งานได้ภายในไม่กี่นาทีแทนที่จะเป็นสัปดาห์ จับคู่กับกฎผ้าสำลีที่ทำเครื่องหมายการใช้งานที่เหลืออยู่
วัดการยอมรับ
คุณไม่สามารถวางแผนการลบออกโดยไม่รู้ว่าใครยังคงใช้ส่วนประกอบอยู่ ติดตามการใช้งานในโค้ด (การนำเข้า คำเตือนผ้าสำลี) และในไฟล์การออกแบบ (การวิเคราะห์ไลบรารีในเครื่องมือออกแบบของคุณ) เผยแพร่ตัวเลขเพื่อให้ทีมเห็นความคืบหน้า และช่วยเหลือทีมสองสามทีมล่าสุดได้โดยตรง แทนที่จะบังคับกำหนดเวลา
อย่าลืมด้านการออกแบบ
เลิกใช้ส่วนประกอบในไลบรารีการออกแบบด้วย: เปลี่ยนชื่อด้วยคำนำหน้า "เลิกใช้แล้ว" ลิงก์ไปยังการแทนที่ และหยุดปรากฏในการค้นหา มิฉะนั้น นักออกแบบจะใช้มันในงานใหม่ต่อไป และการโยกย้ายจะไม่มีวันสิ้นสุด พฤติกรรมการเคลื่อนไหวและการโต้ตอบควรเป็นส่วนหนึ่งของบันทึกการเปลี่ยนแปลง เนื่องจากการแทนที่ที่มีการเคลื่อนไหวแตกต่างออกไปอาจรู้สึกเสียหายแม้ว่าจะดูเหมือนกันก็ตาม
คีย์ Principles ที่ต้องจำ
- ประกาศ เลิกใช้งาน ย้าย ลบ: อย่าข้ามไปที่การลบโดยตรง
- เลิกใช้งานในรุ่นรอง; ลบออกในรุ่นใหญ่
- ใช้ codemods และกฎ Lint เพื่อทำให้การย้ายข้อมูลเป็นแบบอัตโนมัติ
- ติดตามการใช้งานทั้งในโค้ดและไฟล์การออกแบบ
- รวมการเปลี่ยนแปลงการเคลื่อนไหวและการโต้ตอบไว้ในบันทึกประจำรุ่น
คำถามที่พบบ่อย
แหล่งที่มา
- Semantic Versioning 2.0.0 — เซมเวอร์.org
- jscodeshift: a JavaScript codemod toolkit — GitHub (เมตา)