Dlaczego robotyka czyni z ciebie lepszego inżyniera oprogramowania
Lata nauczania robotyki w HKDI zmieniły moje spojrzenie na oprogramowanie. Oto, czego planowanie ruchu nauczyło mnie o projektowaniu systemów.
Dyscyplina ograniczeń
Robotyka zmusza do myślenia w ramach ograniczeń. Serwo ma swoje limity. Czujnik ma szum. Pętla czasu rzeczywistego ma deadline. To nie są wymówki, tylko właściwa przestrzeń projektowa.
W oprogramowaniu często możemy sobie pozwolić na bylejakość. Dodać pamięci, uruchomić kolejny serwer albo złapać wyjątek i iść dalej. Robotyka nie wybacza takiego myślenia.
Czego nauczyło mnie nauczanie w HKDI
Kiedy wykładałem w Hong Kong Design Institute, widziałem, jak studenci mający problem z abstrakcyjnymi pojęciami software’owymi nagle zaczynali je rozumieć, gdy łączyliśmy je z systemem fizycznym. Widok ramienia robota, które zawodzi przez błąd w state machine, sprawia, że state machine staje się czymś bardzo realnym.
Jak stosuję to w kodzie
Dzisiaj, projektując software, myślę o:
- Deadline’ach: co się stanie, jeśli to będzie wolne?
- Stanie: jak wygląda system w danej chwili?
- Trybach awarii: jeśli to się zepsuje, to w jaki sposób?
Te pytania naturalnie wynikają z robotyki. I prowadzą do lepszego oprogramowania.