3
TDD ต้องการแนวทางในการแก้ไขปัญหาอัลกอริทึม
ฉันล้มเหลวในการทดสอบอัลกอริทึมกับ Codility เพราะฉันพยายามหาวิธีแก้ปัญหาที่ดีกว่าและในที่สุดฉันก็ไม่มีอะไรเลย ดังนั้นฉันคิดว่าถ้าฉันสามารถใช้วิธีการคล้ายกับ TDD เช่นถ้าฉันสามารถพัฒนาวิธีแก้ปัญหาแบบค่อยเป็นค่อยไปในแบบเดียวกันได้หรือไม่ หากฉันกำลังเขียนอัลกอริทึมการเรียงลำดับฉันสามารถย้ายจาก Bubblesort มาตรฐานไปเป็น Bubbleort แบบ 2 ทางได้ แต่จากนั้นบางสิ่งที่ก้าวหน้ากว่าอย่าง Quicksort จะเป็น "quantum leap" แต่อย่างน้อยฉันจะมี testdata ฉันสามารถตรวจสอบได้อย่างง่ายดาย เคล็ดลับอื่น ๆ สำหรับการทดสอบ? สิ่งหนึ่งที่ฉันจะทำในครั้งต่อไปคือการใช้วิธีการ / ฟังก์ชั่นมากกว่าห่วงภายใน ตัวอย่างเช่นในการเรียงลำดับคุณมักจะต้องสลับ หากเป็นวิธีฉันจะต้องแก้ไขรหัสโทร ฉันยังสามารถมีวิธีแก้ปัญหาขั้นสูงเพิ่มเติมเป็นคลาสที่ได้รับ ด้วยปัญหา "อัลกอริทึม" กับ "ปกติ" ฉันหมายถึงปัญหาที่ความซับซ้อนของเวลาเป็นสิ่งสำคัญ ดังนั้นแทนที่จะผ่านการทดสอบมากขึ้นเช่นเดียวกับใน TDD คุณจะทำให้ "ทำงานได้ดีขึ้น" ด้วย "Similar to TDD" ฉันหมายถึง: เขียนการทดสอบที่ค่อนข้างอัตโนมัติเพื่อประหยัดเวลาในการเพิ่มการทดสอบแบบแมนนวล การพัฒนาที่เพิ่มขึ้น การทดสอบการถดถอยความสามารถในการตรวจสอบว่าตัวแบ่งรหัสหรืออย่างน้อยถ้าฟังก์ชั่นการเปลี่ยนแปลงระหว่างการเพิ่มขึ้น ฉันคิดว่านี่น่าจะง่ายต่อการเข้าใจถ้าคุณเปรียบเทียบ เขียนเชลล์เรียงลำดับโดยตรง กระโดดจาก …