Vì sao robotics khiến bạn trở thành kỹ sư phần mềm tốt hơn
Nhiều năm dạy robotics ở HKDI đã thay đổi cách tôi nghĩ về phần mềm. Đây là những gì motion planning dạy tôi về thiết kế hệ thống.
Kỷ luật của các ràng buộc
Robotics buộc bạn phải nghĩ trong giới hạn. Servo có giới hạn. Cảm biến có nhiễu. Vòng lặp thời gian thực có deadline. Đó không phải là lời bào chữa, mà chính là không gian thiết kế.
Trong phần mềm, ta thường có thể cẩu thả hơn. Ta thêm bộ nhớ, thêm máy chủ hoặc bắt ngoại lệ rồi đi tiếp. Robotics không dễ bỏ qua kiểu suy nghĩ đó.
Điều tôi học được khi dạy ở HKDI
Khi tôi giảng dạy tại Hong Kong Design Institute, tôi nhận ra những sinh viên chật vật với khái niệm phần mềm trừu tượng lại hiểu rất nhanh khi nó được gắn với một hệ thống vật lý. Nhìn cánh tay robot hỏng vì lỗi state machine khiến state machine trở nên rất thật.
Cách tôi áp dụng vào code
Giờ đây khi thiết kế phần mềm, tôi luôn nghĩ tới:
- Deadline: điều gì xảy ra nếu phần này chậm?
- Trạng thái: hệ thống đang ở trạng thái nào tại từng thời điểm?
- Failure mode: khi hỏng, nó sẽ hỏng theo kiểu nào?
Những câu hỏi này đến rất tự nhiên từ robotics và chúng dẫn tới phần mềm tốt hơn.