嗨,今天大家过的好吗。
小弟写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的哪里,以及该怎么前
进,谢谢!(如果打的很乱请见谅)