十多年前,当我第一次加入单片机开发时,我也很恐慌。 在此之前,我只了解过51个单片机,也玩过智能汽车。
幸运的是,一开始我只是维护旧项目并使用STC单片机。 仍然使用基本的开发环境。
如果你是应届毕业生或者刚刚转行,一般公司不会直接让你参与新项目的开发,除非比较简单。
毕竟面试的时候我才听到你吹牛。 事实上,它是一头骡子或一匹马。 你需要先走一圈才能理解和解释它。 熟悉它并说精通的人太多了。
其实维护老项目也是一件很头疼的事情,就像TM破案一样,不断地揣摩前任工程师的编程思维。 当他看到一堆狗屎代码的时候,他会边骂边想办法。
尤其是当你遇到变量、函数命名不规范的杂乱代码,以及没有模块化编程的代码时,简直是一种折磨。
如果一开始很痛苦,就需要端正心态。 毕竟每个工程师都是这个级别出来的。
我也不例外。 从艰难地改代码、维护老产品,到能够勉强独立完成简单的项目,再到独立完成复杂的项目,最后能够设计出整体的程序架构,保证功能的实现,同时又不失扩展性。 还有便携性,这条路我已经探索了快10年了。
原来我的代码风格是这样的:
现在看起来像这样:
关于程序架构,我曾经录过一个教程:
我觉得对于有基础或者工作过1-3年的人来说很有参考价值。 你可以来找我免费安排,没有套路。
当然,这并不意味着你需要花这么长时间并且你没有复杂的技术。 主要问题是,在你过去的工作中,很少有机会独立完成复杂项目的研发。 而且项目过程中细节太多,找不到人及时指导,所以进展缓慢。
你遇到的很多新项目并没有你想象的那么复杂,只是没有一个清晰的开发流程而已。
很多老手在了解我们无极单片机项目时,只关注项目内容和代码,却忽略了我们的开发流程。
你有这样的感觉吗?
当你被要求做一个新的项目时,你总是在开始之前思考如何完成所有的功能。
从宏观角度思考可能会很混乱,因为有太多问题需要思考。
不抽丝剥茧,这个项目由哪些小模块组成?
如果你仔细研究我们的项目,你会发现我们的开发步骤如下:
1.一定要先熟悉项目功能
刚开始工作时,我很急于完成任务。 我一开始就啃代码。 通过代码理解功能就是逆向工程。 当我没有经验时,这更加困难。 正确的顺序是先了解功能,再思考实现思路。
2.熟悉硬件原理
熟悉项目中使用的单片机,各功能电路如何连接和工作原理,了解协议和原理。
3.熟悉开发环境
遇到新项目时,我会先搭建开发环境,编写程序让LED循环闪烁。 这样,如果后面添加了新程序,出现了导致崩溃的bug,也能及时发现。
另外,如果支持在线仿真调试(如SWD、JTAG),则必须搭建仿真环境,以方便后续的代码调试和故障排除。
4.制定发展计划
将项目分解为多个小模块,细分为小任务,逐项突破。 这将使事情变得不那么困难,并使事情更有条理。
按照时间线进行,这样领导来问的时候,会有一个直观的进展展现出来,领导看到后就有了心理基础。
一般我都是先调整项目中用到的外设,然后再调整产品功能。 大部分工作都在产品功能的实现上。 对于单片机外设的代码,我一般都是直接去代理商那里,或者从芯片官方网站下载。 不要自己去那里。 折腾。
还有一些开发过程中的习惯也非常重要。
比如,如果你按照模块化、可复用的原则来编写代码,那么你在后面集成功能的时候就会知道它有多么重要。 不然的话,一个人跑也好。 一旦代码整合起来,功能就会相互冲突。
还有程序版本的管理,可以用Git来管理。 我一般都是以文件夹的形式保存在本地,自己电脑上一份,移动硬盘上一份,公司电脑上一份。 这是一个稳定的批次。
以下是无极更多原创的个人成长经历、行业经验、技术资讯。