การเขียนโปรแกรมแบบคู่ลบความต้องการการตรวจสอบโค้ดในโครงการ Extreme Programming (XP) หรือไม่


14

ในโครงการการเขียนโปรแกรมขั้นสูงโปรแกรมเมอร์ทำการจับคู่การเขียนโปรแกรมส่วนใหญ่

เนื่องจากคู่เหล่านี้ยังหมุนอยู่นั่นคือคุณจับคู่โปรแกรมกับบุคคลอื่นและมีความรู้สึกเป็นเจ้าของร่วมกันซอร์สโค้ดจะได้รับการตรวจสอบและอัปเดตบ่อยครั้ง

เนื่องจากจำเป็นต้องมีการตรวจสอบโค้ดหรือไม่ ฉันหมายถึงหยุดเขียนโปรแกรมและทำรีวิวโค้ดจริงๆ


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

ให้ฉันใช้ถ้อยคำใหม่อีกครั้งเพื่อรวม XP เท่านั้น
Eduardo Copat

มีเหตุผลหรือไม่ที่คุณจะไม่ลองและทำให้แน่ใจว่าคุณได้ตั้งเกณฑ์ที่จะหยุดหรือไม่? หากทีมรู้สึกสะดวกสบายกับรหัสที่ได้รับการเช็คอินนั่นน่าจะเป็นเหตุผลที่ดีพอ
JeffO

คำตอบ:


13

หนึ่งในแหล่งข้อมูลที่สำคัญสำหรับการเขียนโปรแกรมมากเป็นที่ของวอร์ดวิกิพีเดียหรือที่รู้จักพอร์ตแลนด์แบบ Repository aka C2.com นี่คือที่ที่ผู้คนจำนวนมากได้ใช้วิธีการต่าง ๆ และบันทึกไว้เมื่อใช้

ภายในวิกินี้มีหน้า: บทวิจารณ์โค้ดโปรแกรมสุดขีดที่มีผู้ร่วมให้ข้อมูลจำนวนมากรวมถึง Ron Jeffries และ Kent Beck

พวกเขาพูดว่า:

การตรวจสอบรหัสถือว่ามีความสำคัญโดยผู้เชี่ยวชาญด้านกระบวนการขนาดใหญ่จำนวนมาก พวกเขามีวัตถุประสงค์เพื่อให้มั่นใจว่าสอดคล้องกับมาตรฐานและที่สำคัญกว่านั้นคือเพื่อให้แน่ใจว่ารหัสนั้นมีความชัดเจนมีประสิทธิภาพใช้งานได้และมี QWAN พวกเขายังมีวัตถุประสงค์เพื่อช่วยเผยแพร่ความรู้เกี่ยวกับรหัสไปยังส่วนที่เหลือของทีม

ExtremeProgramming ต้องการการพัฒนาทั้งหมดที่ทำโดยวิศวกรสองคนที่ทำงานร่วมกัน รหัสจะได้รับการตรวจสอบจริง ๆ ในทันทีเพื่อระดับที่ดีมาก สิ่งนี้ทำให้มั่นใจได้ว่ามากกว่าหนึ่งคนมีความรู้ที่ใกล้ชิดของรหัสตลอดเวลา

ExtremeProgramming ต้องการให้วัตถุทั้งหมดมี UnitTests สิ่งเหล่านี้ทำให้แน่ใจว่าวัตถุทำงานและยังคงทำงานตามที่ได้รับการแก้ไข

บางภาษามีการไตร่ตรอง ในภาษาดังกล่าว UnitTests สามารถตรวจสอบโดยตรงสำหรับความสอดคล้องตามมาตรฐานที่สำคัญ (เช่นวัตถุจะต้องใช้ทั้ง # = และ #hash หรือไม่ใช่)

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

ดังนั้นโครงการ ExtremeProgramming จึงไม่ต้องการการตรวจสอบที่ชัดเจน วางพวกเขาจากวิธีการของคุณ

นอกจากนี้ยังมีการอภิปรายในหัวข้ออื่น ๆ อีกเล็กน้อย

ประเด็นสำคัญแม้ว่าจะมีการรวมกันของการทดสอบการเป็นเจ้าของร่วมกันและการเขียนโปรแกรมคู่สิ่งเหล่านี้แก้ไขเป้าหมายที่การตรวจสอบโค้ดควรจะทำเช่น:

  • กระจายความรู้ในสิ่งที่กำลังทำ
  • ชุดดวงตาที่สอง (หรือมากกว่า) บนโค้ดเพื่อให้แน่ใจว่าเป็นไปตามมาตรฐาน
  • ตรวจสอบการทำงานที่ถูกต้องของรหัส

สิ่งเหล่านี้กำลังดำเนินการอย่างต่อเนื่องผ่านการเขียนโปรแกรมคู่และการทดสอบอัตโนมัติใน Extreme Programming ดังนั้นการตรวจสอบ Faganอย่างชัดเจนจึงไม่จำเป็น

การอ่านที่เกี่ยวข้อง:


4
ฉันถกเถียงกันในอีกคำถามหนึ่งว่าการตรวจสอบโค้ดนั้นเป็นของเสียที่ไม่จำเป็น (ในความหมายของคำว่า Lean) และการเขียนโปรแกรมคู่นั้นควรเป็นวิธีที่ต้องการในการมอบสิทธิประโยชน์ทั้งหมดที่การตรวจสอบรหัสจะให้ ไม่จำเป็นต้องพูดผู้คนทำผิดต่อข้อโต้แย้งของฉันเพราะฉันไม่ได้สำรองข้อมูลด้วยเสียงแห่งอำนาจ (TM) เหมือนที่คุณมี สำหรับกลุ่มคนที่จัดการกับตรรกะในแต่ละวันเราเป็นกลุ่มที่ไร้เหตุผล
Michael Brown

6
ความเสี่ยงในการทำการเขียนโปรแกรมคู่โดยไม่ต้องมีโค้ดเพิ่มเติมคือผู้เขียนโปรแกรมทั้งสองมีส่วนเกี่ยวข้องอย่างมากในขณะที่เขียนและอาจเขียนโค้ดที่ดูเหมือนชัดเจนและสมเหตุสมผลในเวลานั้น แต่น้อยกว่าเมื่อเห็นอีกครั้งหลังจากสองสามวัน ความเสี่ยงนั้นขึ้นอยู่กับองค์กรของคุณ
Bart van Ingen Schenau

@MikeBrown คุณอย่างเท่าเทียมกันได้ยืนยันว่าการเขียนโปรแกรมคู่เป็นของเสียที่ไม่จำเป็นและการตรวจสอบรหัสที่ควร ฯลฯ เป็นต้น
AlexFoxGill

ดูสิ่งที่ฉันหมายถึงโดย WASTE คือคำจำกัดความ "ลีน" ของคำว่า นึกถึงกระบวนการประกอบชิ้นส่วนโดยทั่วไป แนวคิดก็คือเพื่อให้รถลงเส้นเร็วที่สุดเท่าที่จะเป็นไปได้และการตรวจสอบคุณภาพจะทำหลังจากข้อเท็จจริง (การตรวจสอบรหัส) หลักการแบบลีนใช้เวลาและความพยายามเพิ่มคุณภาพเล็กน้อย (การเขียนโปรแกรมคู่) ดังนั้นการตรวจสอบภายหลังจึงไม่จำเป็น
Michael Brown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.