ทำไมหุ่นยนต์ทำให้คุณเป็นวิศวกรซอฟต์แวร์ที่ดีขึ้น

การสอนหุ่นยนต์ที่ HKDI มาหลายปีเปลี่ยนวิธีที่ผมมองซอฟต์แวร์ นี่คือสิ่งที่การวางแผนการเคลื่อนไหวสอนผมเกี่ยวกับการออกแบบระบบ


วินัยของข้อจำกัด

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

ในงานซอฟต์แวร์เรามักเผลอทำงานแบบหยาบได้ เราเพิ่มหน่วยความจำ เพิ่มเซิร์ฟเวอร์ หรือจับ exception แล้วไปต่อได้ แต่โลกของหุ่นยนต์ไม่ยอมง่ายแบบนั้น

สิ่งที่ผมได้เรียนรู้จากการสอนที่ HKDI

ตอนสอนที่ Hong Kong Design Institute ผมเห็นว่านักศึกษาที่ติดกับแนวคิดซอฟต์แวร์เชิงนามธรรม จะเข้าใจทันทีเมื่อเชื่อมมันกับระบบจริง การเห็นแขนกลล้มเหลวเพราะ state machine ผิด ทำให้ state machine กลายเป็นของจริง

วิธีที่ผมนำมาใช้กับการเขียนโค้ด

ทุกวันนี้เวลาผมออกแบบซอฟต์แวร์ ผมจะถามตัวเองว่า:

  • เส้นตาย: ถ้าส่วนนี้ช้า จะเกิดอะไรขึ้น
  • สถานะ: ณ ขณะหนึ่งระบบหน้าตาเป็นอย่างไร
  • รูปแบบความล้มเหลว: ถ้ามันพัง มันจะพังแบบไหน

คำถามพวกนี้มาจากหุ่นยนต์โดยตรง และมันทำให้ซอฟต์แวร์ดีขึ้นมาก