嗨,今天大家過的好嗎。
小弟寫FW已經有一兩年了,大概了解這個領域的工作內容以及涉及的範圍。目前技術能力
卡在一個瓶頸,想上來請教各位大大該如何精進自己。
先說說我已具備的能力。
1.有辦法讀懂OS手冊,並正確使用該API。
花了兩個月把uC/OS-III的手冊看完一遍,且成功使用semaphore與message queue。有辦法
融會貫通手冊想要表達的觀念以及kernel的實作細節。但僅止於此,就是會用而已。
2.有辦法快速上手新的硬體,並寫出該硬體的driver。
3.其他抓硬體bug,用示波器...blabla的基本能力就不贅述了
目前欠缺的能力
1.物件導向的觀念
我發現我之前寫的code在亂寫,很像是把一堆東西東湊西湊然後混著用。我希望自己能寫
出具有模組化的程式碼,且有辦法在未來需要擴充的時候不用牽一髮而動全身。
上網查,如果在C語言加入物件導向的觀念,可以改善這部分(請幫舉證?),所以我最近試
著想要用C語言的角度了解、寫出物件導向的程式碼
但我找不到一本好的入門書,請各位網友建議,謝謝。
2.欠缺讀code的能力
當coder把user用不到的資訊全部放在header file,會讓user越讀越混亂。好的code應該
具有information hiding的特色(我自己說的),
我沒辦法在一堆混亂的資訊中過濾出有用的資訊,並且了解對方在寫什麼。看到會讓人誤
會的變數命名、沒有註解的function prototype、沒有意義的檔名以及沒有把每個file分
層的project,我真的必須要一直問對方才有辦法了解對方的邏輯。
我知道可以要求對方多加點註解,或者是要求改善他的寫法。但我相信我更應該做的是提
升自己的閱讀能力,而不是去要求別人。想請問這部分需要如何提升自己呢?
3.程式組織能力
這部分有一點抽象。比如在寫一支application,我可能會自定義很多型別(struct),但我
發現我有時候會搞錯各個成員(member)該擺放的位置,比如A結構的成員我可能會放到B結
構裡去,導致在寫struct of struct的時候會卡住。
常常搞混type的命名與identifier的命名。
拿int number做比喻好了,我們很清楚知道number的型別是int,但我有時候就會命名成相
反。該怎麼說呢,就是有點還沒辦法明確地分清楚各個struct要擔任的角色,以及type的
定義嗎?(我自己也不知道問題出在哪)
這部分我目前不知道該怎麼辦,感覺搞懂物件導向後有辦法改善? 還是看資料結構?(我買
來但都沒時間翻)
4.無法明確掌握自己該精進的方向
比如最近看到一個網址: https://www.state-machine.com/
它好像在提倡它的工具比RTOS好用,什麼framework還有state-machine的,還加上UML。
我腦袋就出現一堆問號,諸如:
什麼是UML?
在RTOS的環境下沒辦法寫state-machine嗎?
RTOS跟它的framework不能共存嗎?感覺是同一種東西啊!...blablabla
這些問題我也有上網google過,但也只能懂表面,沒辦法了解他們在幹嘛
希望有位好心的大大可以跟我聊一聊Q_Q讓我知道我目前在roadmap的哪裡,以及該怎麼前
進,謝謝!(如果打的很亂請見諒)