กลับไปหน้าบทความ

อ่าน 3 นาที

สลับคุณสมบัติ

เปลี่ยนทางจากชื่ออื่น/เปลี่ยนทางจากพหูพจน์/การเปลี่ยนเส้นทางที่ไม่สามารถพิมพ์ได้

ฟีเจอร์ท็อกเกิลในการพัฒนาซอฟต์แวร์เป็นทางเลือกแทนการดูแลรักษาฟีเจอร์แบรนช์ หลายรายการ ในซอร์สโค้ดเงื่อนไขภายในโค้ดจะเปิดใช้งานหรือปิดใช้งานฟีเจอร์ในระหว่างการทำงาน...

สลับคุณสมบัติ

ฟีเจอร์ท็อกเกิลในการพัฒนาซอฟต์แวร์เป็นทางเลือกแทนการดูแลรักษาฟีเจอร์แบรนช์ หลายรายการ ในซอร์สโค้ดเงื่อนไขภายในโค้ดจะเปิดใช้งานหรือปิดใช้งานฟีเจอร์ในระหว่างการทำงาน ในสภาพแวดล้อมแบบ Agile ฟีเจอร์ท็อกเกิลจะถูกใช้ในการผลิต เพื่อเปิดใช้งานฟีเจอร์ตามความต้องการ สำหรับผู้ใช้บางส่วนหรือทั้งหมด ดังนั้น ฟีเจอร์ท็อกเกิลจึงทำให้การปล่อยเวอร์ชันใหม่บ่อยขึ้นทำได้ง่ายขึ้น กลยุทธ์การเปิดตัวขั้นสูง เช่น การเปิดตัวแบบ Canary และการทดสอบ A/Bก็จัดการได้ง่ายขึ้น[ 1 ] [ 2 ]

การส่งมอบอย่างต่อเนื่องได้รับการสนับสนุนโดยฟีเจอร์ท็อกเกิล แม้ว่าการเผยแพร่ใหม่จะไม่ได้ถูกนำไปใช้งานจริงอย่างต่อเนื่องก็ตาม ฟีเจอร์นี้จะถูกรวมเข้ากับสาขาหลักแม้กระทั่งก่อนที่จะเสร็จสมบูรณ์เวอร์ชันจะถูกนำไปใช้งานในสภาพแวดล้อมการทดสอบเพียงครั้งเดียว ท็อกเกิลช่วยให้สามารถเปิดใช้งานฟีเจอร์และทดสอบได้ วงจรการรวมซอฟต์แวร์จะสั้นลง และสามารถจัดเตรียมเวอร์ชันที่พร้อมใช้งานจริงได้[ 3 ]

การใช้เทคนิคประการที่สามคือการอนุญาตให้นักพัฒนาปล่อยเวอร์ชันของผลิตภัณฑ์ที่มีคุณสมบัติที่ยังไม่เสร็จสมบูรณ์ คุณสมบัติที่ยังไม่เสร็จสมบูรณ์เหล่านี้จะถูกซ่อน (สลับ) เพื่อไม่ให้ปรากฏในอินเทอร์เฟซผู้ใช้ การรวม คุณสมบัติเข้าและออกจากสาขาการผลิต นั้นใช้ความพยายามน้อยลง จึงทำให้สามารถ สร้างซอฟต์แวร์เวอร์ชันเพิ่มขึ้นทีละน้อยได้หลายเวอร์ชัน[ 4 ]

Feature toggle เรียกอีกอย่างว่าfeature switch , feature flag , feature gate , feature flipperหรือconditional feature

การดำเนินการ

Feature toggle คือตัวแปรที่ใช้ภายในคำสั่งเงื่อนไขดังนั้นบล็อกโค้ดภายในคำสั่งเงื่อนไขเหล่านี้สามารถเปิดหรือปิดได้ขึ้นอยู่กับค่าของ feature toggle วิธีนี้ช่วยให้นักพัฒนาสามารถควบคุมการทำงานของซอฟต์แวร์และข้ามฟีเจอร์ที่ยังไม่พร้อมใช้งานได้ บล็อกโค้ดที่อยู่เบื้องหลังตัวแปรรันไทม์มักจะยังคงอยู่และสามารถเรียกใช้งานได้ตามเงื่อนไข บางครั้งภายในวงจรชีวิตของแอปพลิเคชันเดียวกัน ในขณะที่บล็อกโค้ดที่อยู่เบื้องหลังคำสั่งพรีโปรเซสเซอร์หรือถูกคอมเมนต์ไว้จะไม่สามารถเรียกใช้งานได้ วิธีการใช้ feature flag สามารถใช้วิธีใดวิธีหนึ่งเหล่านี้เพื่อแยกเส้นทางการทำงานของโค้ดในขั้นตอนต่างๆ ของการพัฒนาได้

การใช้งานหลักของฟีเจอร์ท็อกเกิลคือการหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้นเมื่อรวมการเปลี่ยนแปลงในซอฟต์แวร์ในช่วงเวลาสุดท้ายก่อนการปล่อยเวอร์ชันใหม่ แม้ว่าสิ่งนี้อาจนำไปสู่ ​​" หนี้ท็อกเกิล"ได้ก็ตาม หนี้ท็อกเกิลเกิดขึ้นจากโค้ดที่ไม่ได้ใช้งานในซอฟต์แวร์หลังจากที่ฟีเจอร์ถูกเปิดใช้งานอย่างถาวร และทำให้เกิดภาระเพิ่มเติม โค้ดส่วนนี้จะต้องถูกลบออกอย่างระมัดระวังเพื่อไม่ให้รบกวนส่วนอื่นๆ ของโค้ด

การจัดการและการบำรุงรักษา

โดยทั่วไปแล้ว Feature toggles จำเป็นต้องมีการจัดการวงจรชีวิตที่นอกเหนือจากคำสั่งเงื่อนไขที่ใช้ในการใช้งาน จากการศึกษาเอกสารของผู้ปฏิบัติงานและนักพัฒนาจาก 38 บริษัท พบว่ามีแนวทางปฏิบัติ 17 ประการสำหรับการใช้งาน feature toggle โดยแบ่งเป็นกลุ่มการจัดการ การเริ่มต้น การใช้งาน และการล้างข้อมูล แนวทางปฏิบัติที่รายงานกันโดยทั่วไป ได้แก่ การบันทึกข้อมูลเมตาสำหรับ toggle แต่ละตัว การกำหนดค่าเริ่มต้น การบันทึกการเปลี่ยนแปลงที่เกิดขึ้นกับ toggle และการใช้เครื่องมือเฉพาะในการจัดการ[ 5 ]

งานวิจัยเกี่ยวกับ Google Chrome พบว่าฟีเจอร์ท็อกเกิลสามารถรองรับการเผยแพร่ที่รวดเร็ว การพัฒนาแบบอิงตาม trunk และการทดสอบ A/B แต่ยังต้องการการบำรุงรักษาเพิ่มเติมเมื่อท็อกเกิลยังคงอยู่ในโค้ดเบสเป็นเวลานาน[ 6 ]งานวิจัยในภายหลังเกี่ยวกับโครงสร้างฟีเจอร์ท็อกเกิลได้ตั้งข้อสังเกตในทำนองเดียวกันว่าท็อกเกิลอาจเพิ่มความซับซ้อนของโค้ด ทำให้เกิดโค้ดที่ไม่ได้ใช้งาน และลดความสามารถในการบำรุงรักษาหากไม่ได้ลบออกหรือจัดระเบียบหลังจากที่วัตถุประสงค์สิ้นสุดลง[ 7 ]

มีฟีเจอร์ท็อกเกิลหลักๆ สองประเภท ประเภทแรกคือ ฟีเจอร์ท็อกเกิลสำหรับเวอร์ชันที่จะวางจำหน่าย ซึ่งนักพัฒนาจะเป็นผู้ตัดสินใจว่าจะคงไว้หรือลบออกก่อนการวางจำหน่ายผลิตภัณฑ์ โดยขึ้นอยู่กับการทำงานของมัน ส่วนอีกประเภทคือ ฟีเจอร์ท็อกเกิลสำหรับด้านธุรกิจ ซึ่งจะถูกคงไว้เพราะมันตอบสนองการใช้งานที่แตกต่างจากโค้ดเวอร์ชันเก่า

สามารถใช้ Feature toggles ในสถานการณ์ต่อไปนี้: [ 1 ]

  • การเพิ่มฟีเจอร์ใหม่ให้กับแอปพลิเคชัน
  • ปรับปรุงฟีเจอร์ที่มีอยู่แล้วในแอปพลิเคชัน
  • การซ่อนหรือปิดใช้งานฟีเจอร์
  • การขยายอินเทอร์เฟซ

สามารถจัดเก็บการสลับคุณสมบัติได้ดังนี้: [ 8 ]

  • รายการแถวในฐานข้อมูล
  • คุณสมบัติในไฟล์การกำหนดค่า
  • รายการในบริการฟีเจอร์แฟล็กภายนอก

กลุ่มคุณลักษณะ

กลุ่มฟีเจอร์ประกอบด้วยตัวสลับฟีเจอร์ที่ทำงานร่วมกัน ซึ่งช่วยให้นักพัฒนาสามารถจัดการชุดตัวสลับที่เกี่ยวข้องได้อย่างง่ายดาย[ 9 ]

การปล่อยนกคานารี

การเปิดตัวแบบแคนารี (หรือการเปิดตัวแบบแคนารี หรือการปรับใช้แบบแคนารี) ช่วยให้นักพัฒนาสามารถทดสอบฟีเจอร์ต่างๆ ทีละน้อยโดยใช้กลุ่มผู้ใช้ขนาดเล็ก แฟล็กฟีเจอร์เป็นอีกวิธีหนึ่งในการเปิดตัวแบบแคนารี[ 10 ]และอนุญาตให้กำหนดเป้าหมายตามตำแหน่งทางภูมิศาสตร์หรือแม้แต่คุณลักษณะของผู้ใช้[ 11 ]หากประสิทธิภาพของฟีเจอร์ไม่เป็นที่น่าพอใจ ก็สามารถย้อนกลับได้โดยไม่มีผลเสียใดๆ[ 12 ] ชื่อนี้มาจากการใช้แคนารีเพื่อเตือนคนงานเหมืองเกี่ยวกับก๊าซพิษ

การรับเลี้ยงบุตรบุญธรรม

Martin Fowlerระบุว่า release toggle ซึ่งเป็น feature toggle ประเภทหนึ่งโดยเฉพาะ "ควรเป็นตัวเลือกสุดท้ายของคุณเมื่อคุณกำลังจัดการกับการนำฟีเจอร์ไปใช้ในการผลิต" แทนที่จะเป็นเช่นนั้น ควรแบ่งฟีเจอร์ออกเป็นส่วนย่อยๆ ที่แต่ละส่วนสามารถนำไปใช้งานและแนะนำเข้าสู่ผลิตภัณฑ์ที่วางจำหน่ายได้อย่างปลอดภัยโดยไม่ก่อให้เกิดปัญหาอื่นๆ[ 2 ]

การสลับฟีเจอร์ถูกใช้โดยเว็บไซต์ขนาดใหญ่หลายแห่ง รวมถึง Flickr [ 13 ] Disqus [ 14 ] Etsy [ 15 ] Reddit [ 16 ] Gmail [ 17 ]และ Netflix [ 18 ]ตลอดจนซอฟต์แวร์เช่นGoogle Chrome Canaryหรือ Microsoft Office [ 19 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Feature_toggle&oldid=1357224855 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ สลับคุณสมบัติ

ฟีเจอร์ท็อกเกิลในการพัฒนาซอฟต์แวร์เป็นทางเลือกแทนการดูแลรักษาฟีเจอร์แบรนช์ หลายรายการ ในซอร์สโค้ดเงื่อนไขภายในโค้ดจะเปิดใช้งานหรือปิดใช้งานฟีเจอร์ในระหว่างการทำงาน...

การดำเนินการ

Feature toggle คือ ตัวแปร ที่ใช้ภายใน คำสั่งเงื่อนไข ดังนั้น บล็อกโค้ด ภายในคำสั่งเงื่อนไขเหล่านี้สามารถเปิดหรือปิดได้ขึ้นอยู่กับค่าของ feature toggle วิธีนี้ช่วยให้นักพัฒนาสามารถควบคุมการทำงานของซอฟต์แวร์และข้ามฟีเจอร์ที่ยังไม่พร้อมใช้งานได้...

การจัดการและการบำรุงรักษา

โดยทั่วไปแล้ว Feature toggles จำเป็นต้องมีการจัดการวงจรชีวิตที่นอกเหนือจากคำสั่งเงื่อนไขที่ใช้ในการใช้งาน จากการศึกษาเอกสารของผู้ปฏิบัติงานและนักพัฒนาจาก 38 บริษัท พบว่ามีแนวทางปฏิบัติ 17 ประการสำหรับการใช้งาน feature toggle โดยแบ่งเป็นกลุ่มการจัดการ...

กลุ่มคุณลักษณะ

กลุ่มฟีเจอร์ประกอบด้วยตัวสลับฟีเจอร์ที่ทำงานร่วมกัน ซึ่งช่วยให้นักพัฒนาสามารถจัดการชุดตัวสลับที่เกี่ยวข้องได้อย่างง่ายดาย [ 9 ]