良许Linux教程网 干货合集 嵌入式软件开发没有捷径

嵌入式软件开发没有捷径

嵌入式软件开发是否有捷径并不是一个容易回答的问题。不过,我可以给出以下见解:

对于嵌入式软件开发而言,没有所谓的捷径或简单的方法。对于大多数人来说,取得进步需要付出艰苦努力,而且需要一步一个脚印地前进。

当然,我们可以用不同的方式来思考这个问题,比如:如何提高编程水平?或者如何提升技能?

对于绝大多数人,特别是初学者,我认为有两个方面是关键:

  1. 多参考和阅读优秀的开源代码。这样做的原因在于,你要相信世界上大多数人都是普通人,他们可能已经考虑过你现在面临的问题,并进行了实践验证。因此,那些经过验证并运用在优秀开源项目中的代码是具有参考价值的。

  2. 多实践,多动手编写代码。实践是提升技能的关键。通过亲自动手编写代码,你才能真正理解和掌握编程的知识和技巧。只有不断练习,才能逐渐提高自己的技能水平。

当然,总会有人对这种观点提出反驳,认为自己写的代码比别人的代码要好。然而,往往这些人自己的水平并不高,却过于自信。当然,也不排除确实有些人非常优秀,但是真正牛逼的人毕竟是少数。作为大多数人来说,我们应该谦虚并向优秀的人学习。毕竟,我们都是普通人,还有很多地方需要向他人学习。

何为优秀的代码?

何为优秀的代码?可能每个人的定义不同,每个人的侧重点也不同。

易读易懂、结构清晰、逻辑清晰、方便移植……等等包含了所有优点的代码,就是优秀的代码?我觉得不是!

人无完人,代码也肯定多少都存在“瑕疵”,或者说多少存在有你认为不满意的地方。

我认为优秀的代码,首先,它能被许多人使用,并运用在许多成功的项目中。比如:一套控制算法代码,能成功应用在机械臂、机器人、无人机等项目中,它就是优秀的代码。

其次,它具有优秀代码的一些基本特性,比如上面说的易读易懂、代码清晰、方便移植等。

这种对于学习者不排斥的代码也算得上优秀的代码,比如:一个模块的驱动程序、一套串口通信协议。

再次,就是代码更多细节,比如:代码排版格式、注释、命名等。

哪里有优秀的代码?

我觉得程序员不应该问这样的问题。我反过来问你吧,你看大家一般把代码开源在什么地方?

当然是代码托管的网站啊,GitHub是目前世界上最大的代码托管平台:

https://github.com/

当然,除了GitHub之外,还有国内的Gitee代码托管平台:

https://gitee.com/

这俩代码托管平台众多大公司都在上面贡献了优秀的代码,微软、谷歌、腾讯、阿里这些公司都有代码库。

同时,你会发现平时我们使用的一些开源代码,在GitHub平台上都有。比如:RTOS内核及组件、MCU厂家驱动代码、通信协议等源代码。

多动手写代码

实践是检验真理的唯一标准,这句话相信大家都听说过。

如果只看书不动手敲代码就能掌握程序开发,你觉得这个程序员能写出好的代码吗?很多人基础理论很不错,但实践操作起来各种问题、各种不懂。

比如下面这样写:

if(i = 1)
{
  //...
}

你可能认为是对的,编译也是对的,但实际这代码有bug。

编程是一个很注重实践的工作,因为现实中存在各种不确定的因素,比如:你写的函数,有可能因为传入的参数过大导致内存溢出。

代码写出来了还不算有本事,编译0警告0错误,并成功运行起来,你学的理论知识才发挥了作用。

编程习惯

这里说的多动手写代码,不只是为了写代码而写代码,写代码的同时,要培养良好的编程习惯。

如果养成了不良的编程习惯,后期改变可能很难。

比如函数、变量以“中文字母”方式命名:

int DianYa;

int CaiJiDianYa(void);

还比如:不写注释、源代码不分类、命名混乱等。

很多人初学的时候可能都没有意识,想到什么就写什么,所有功能在main中就实现了。

这里就要回到上面的内容,多参考别人优秀的代码。当然,不同阶段参考的代码不同,初学者可以参考一些基础教程配套的代码,有工作经验的工程师应该多参看成功项目的源代码。

看看别人怎样命名、怎么写注释、怎么将代码分类等。

编程思维

做小项目时,可能几百行代码,一个main就搞定了,这时你可能觉得编程思维不重要好。

但项目做大了,你就会发现以小项目的编程方式不能完成了,这个时候就要考虑软件架构、结构化、模块化了。

对于初学者来说,一下就要掌握软件架构、模块化设计可能有点难,但是,可以慢慢培养自己的编程思维。

举一个简单的模块化的例子,你做一个小车,你把“运动部分”的代码归为一类(模块化),对应的文件命名可以为 bsp_motion, app_motion,函数命名为 Motion_xxx 等。

当然,还有很多地方,你可以都归类为 Motion,比如:

#define MOTION_PWM_TIMx              TIM9
#define MOTION_PWM_TIM_CLK           RCC_APB2Periph_TIM9
#define MOTION_PWM_TIM_GPIO_CLK      RCC_AHB1Periph_GPIOE
#define MOTION_PWM_TIM_PIN           GPIO_Pin_5
#define MOTION_PWM_TIM_GPIO_PORT     GPIOE
#define MOTION_PWM_TIM_SOURCE        GPIO_PinSource5
#define MOTION_PWM_TIM_AF            GPIO_AF_TIM9
#define MOTION_PWM_TIM_OCxInit       TIM_OC1Init
#define MOTION_PWM_TIM_SetComparex   TIM_SetCompare1
#define MOTION_PWM_COUNTER_CLOCK     10000000

其实,说的再多,看的再多,不如自己行动起来敲代码,过程中你肯定会遇到各种各样的问题。

你用心解决这些问题的过程,就是你成长的过程。

最后,如何证明你编码水平提升了?

答:回看自己以前代码,如果觉得烂,那就说明你提升了。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部