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