ในความเป็นธรรมเขาเพิ่ม "สนุก" ในการอ้างสิทธิ์นั้น
จนถึงทุกวันนี้ฉันมักจะเริ่มต้นด้วยการสร้างแบบจำลองระบบโดยใช้วิธี "คำนามและคำกริยา" แต่ฉันพบว่าหลายปีที่ TDD สอนเราว่าวิธีการนี้ดึงดูดความสนใจของคุณไปสู่สิ่งที่ผิด ในแง่นี้บล็อกเกอร์มีประเด็น อย่างไรก็ตามฉันไม่แน่ใจว่ามันเป็นวิธีการที่ผิดมากกว่าวิธีที่จิตใจของเราทำงาน
หากคุณต้องการลองความท้าทายเล็กน้อยที่นี่หยุดอ่านแล้วลองทำแบบจำลองเกมผูกขาดโดยใช้ภาษาอังกฤษจากนั้นกลับมาที่นี่
ฉันสงสัยว่าการล่อลวงจะเป็นการดูวัตถุที่เราโต้ตอบกันบ่อยครั้งมาก - บอร์ดช่องว่างการ์ดลูกเต๋าชิ้นส่วน - แต่นั่นไม่ใช่ตำแหน่งที่ตรรกะจะเกิดขึ้น วัตถุเหล่านี้ส่วนใหญ่เป็นใบ้ทั้งหมด ข้อมูลถ้าคุณจะ
แต่ทันทีที่คุณเริ่มเขียนการทดสอบคุณจะพบว่าวัตถุใดที่สำคัญที่สุดในเกม: กฎ
โปรดจำไว้ว่ากระดาษชิ้นเล็ก ๆ ที่คุณอ่านครั้งเดียวเมื่อคุณเล่นเกมครั้งแรกและไม่ต้องโต้ตอบกับมันอีกจนกว่าจะมีข้อพิพาท? เวอร์ชันของคอมพิวเตอร์ไม่ได้ทำงานในลักษณะนั้น ทุกสิ่งที่ผู้เล่นพยายามทำคอมพิวเตอร์จะพิจารณากฎและดูว่าพวกเขาได้รับอนุญาตให้ทำหรือไม่
เมื่อคุณคิดถึงมันคุณก็ทำแบบเดียวกัน แต่เนื่องจากต้องใช้เวลาในการอ่านกฎที่ใช้กระดาษและสมองของคุณมีระบบแคชที่เหมาะสมคุณจึงปรึกษากฎในหัวของคุณ คอมพิวเตอร์อาจจะพบว่ามันง่ายที่จะอ่านกฎอีกครั้งเว้นแต่ว่ามันจะถูกเก็บไว้ในฐานข้อมูลซึ่งในกรณีนี้มันอาจจะทำการแคชด้วย
และนี่คือสาเหตุที่ TDD ได้รับความนิยมในการออกแบบการขับขี่จริง เพราะมันมีแนวโน้มที่จะผลักดันกระบวนการคิดของคุณอย่างรวดเร็วไปยังสถานที่ที่เหมาะสม:
เมื่อฉันคิดว่าฉันจะเขียนบททดสอบสำหรับเกม Monopoly ของฉัน ฉันอาจดูชุดของฉันและพยายามค้นหาวัตถุ ดังนั้นเรามีชิ้นส่วนเหล่านี้ ฉันจะเขียนแบบทดสอบสำหรับสิ่งเหล่านั้น
บางทีฉันอาจมี MonopolyPiece คลาสพื้นฐานและแต่ละประเภทจะได้มาจากสิ่งเหล่านั้น ฉันจะเริ่มต้นด้วย DogPiece การทดสอบครั้งแรก ... อ่า จริงๆแล้วมันไม่มีตรรกะเลย ใช่แต่ละชิ้นจะถูกวาดแตกต่างกันดังนั้นฉันอาจต้องการ DogDrawer แต่ในขณะที่ฉันเล่นเกมนี้ฉันต้องการเขียน "D" บนหน้าจอ ฉันจะเติม UI ให้มากขึ้นในตอนท้าย
ลองหาตรรกะจริงเพื่อทดสอบดู มีบ้านและโรงแรมเหล่านี้มากมาย แต่พวกเขาไม่ต้องการการทดสอบ เงินไม่ บัตรทรัพย์สินหมายเลข และอื่น ๆ แม้แต่บอร์ดก็ไม่ได้เป็นแค่เครื่องจักรของรัฐ แต่ก็ไม่มีตรรกะใด ๆ
คุณจะพบว่ามีสามสิ่งที่เหลืออยู่ในมือของคุณ ไพ่ Chance และ Community Chest ไพ่ลูกเต๋าคู่หนึ่งและกฎหนึ่งชุด สิ่งเหล่านี้จะเป็นส่วนสำคัญในการออกแบบและทดสอบ
คุณเห็นว่ามาเมื่อคุณเขียนคำนามและคำกริยา?
ในความเป็นจริงแล้วเป็นตัวอย่างที่ดีในรูปแบบและหลักการปฏิบัติ Agile Principles ของ Robert Martinที่พวกเขาพยายามที่จะรวบรวมแอพ Bowling Score Card โดยใช้ TDD และค้นหาสิ่งต่าง ๆ ที่พวกเขาคิดว่าเป็นคลาสที่เห็นได้ชัด