Go最全如何快速学会别人的代码和思维_怎么学习同事的代码,2024年最新Golang架构师必备技术

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

而实际也简单,像滤波这种,我们开发产品的时候,都是直接测试的,比如说0.1uF滤波效果不够,那我们就换大一点的,然后用示波器看看电源的波形,有没有毛刺那些,就是这样一步步调到最佳的一个容值,而不是说用乱七八糟的公式理论来算的,即便算出来,实际很大可能也是有误差的,这样太浪费时间了。

其实刚开始不用深入到这么细节,我们先要搞懂单片机怎么去控制,信号输入到单片机我们怎么通过程序采集就完事了,把主要的精力放在软件上,这是刚需。

硬件设计,画PCB会只是你的加分项,不是必须条件,你先把软件都搞定了,至少给你任何一款产品功能,你都知道怎么用程序去实现,这时候再进阶全栈,再针对性去学硬件,这个顺序一定要搞对。

我们的目标是以最快速度用这个技能去找份工作挣钱,有了稳定收入,你学啥都方便,前面你啥都想学,往往是还没学会就已经饿死了。

一定要循环渐进,一个个突破,不要贪!

第三步:学习产品代码

第三步就是整个课程的重点和难点。

我们这个产品是基于模块化编程的思维,也就是不同的功能模块拼凑起来,最后拼凑成完整的产品功能。

这样的好处就是移植维护起来很方便,每个功能稍作修改就可以直接用在不同的产品上,比如说按键检测功能、LED特效功能,基本上每个产品多多少少都会有LED指示灯、按键,这个时候直接把我们的代码移植过去改一下LED的个数,按键的个数就能马上把功能做出来。

我们先把我们产品的程序剖析一下:

二、主机程序的整体架构

img

**1.**硬件层驱动

**1.1)**单片机外设(STM32固件库)

这块不是我们学习的重点,但是必须要去学习,学到什么程度呢?

我们能把这个产品需要用到的单片机外设用起来就够了,具体要学要用哪些外设,跟着我们课程顺序做就行

剩下的外设以后开发新产品用到了再学习,因为不是所有的产品都会用STM32的,如果你花很多精力去学这个单片机外设,那一换单片机你大多数精力不是白费了?

这块,如果我们教程讲的不够详细,可以配合原子和野火的视频去理解,效果会更好一点。

**1.2)**功能驱动

比如喇叭报警功能、IIC读写系统参数功能、按键检测功能、LED特效功能、OLED显示功能、RFD软解码功能、定时器矩阵功能、LED特效功能、串口调试功能。

硬件层的驱动代码,通用性其实都比较强,大家稍作修改都可以直接移植到以后自己的产品上,所以个人建议大家在前期为了节约时间,可以直接拿来当做自己的”武器库”,前期自己写不出来没关系,但是一定要会用会改

慢慢你经历的项目多了,代码经验丰富了,到时候再自己写就容易很多了。

,这就是所谓的循环渐进,在正确的阶段做正确的事情,效率才会高。

我的要求:

第一遍写不出来,不要死磕,不要纠结自己写不出来,先学会用,并且能举一反三的用。

怎么用?直接拷贝我的代码,会修改关键的地方方便以后应用在自己产品中就行了。

比如说LED特效,我们是一个LED灯,几种特效功能,你可以加多几个灯,增加几种特效试试。

比如说按键检测功能,你可以去掉几个按键,或者再增加几个按键,又或者是加复合键(就是几个按键一起按下的时候)的功能试试。

我们需要达到这个程度,而不是你从头到尾写代码实现。

第二遍就是用自己的思维写一下,然后再对比我的代码,各有什么优缺点。

第二遍我们最好到实际工作中再去提升,这样性价比高,一边赚钱一边继续提升,因为你第一遍会用已经能解决很多产品功能了,而且这种硬件驱动一但写好,后面就是复制粘贴,很少再去重写。

**2.**系统内核

系统内核的作用是让不同的功能模块(LED特效、按键检测、RFD解码、串口Debug、喇叭报警功能、产品功能逻辑)执行起来更加灵活可控一点。

系统内核我是做了5,6年以后才写出来的,其实也不难,无非就是对结构体数组进行系列的操作。

第一遍大家不要重头自己写,一是浪费时间,而是经验不足很难写出来。

这个不是刚需,这个系统内核通用性很强,基本不受限于单片机, FLASH有个10K的51单片机都可以用,所以学会移植基本够用了。

等你整个项目做完了,代码水平和思维都会提升,到时候再回来研究怎么写就轻松很多了。

这个系统内核我们也有系统的教程,大家后面想自己写的时候可以去看一下,找无际单片机编程拿就行了。

img

**3.**产品功能

产品功能不具备通用性,相当于对前面每个功能模块代码的整合,所以第一遍就要自己动手写一下,如果前面写不出来,可以参考我的代码一边写一边思考。

最后总结:

不要想着看一遍视频教程就全会了,越复杂的项目越需要自己动手做写代码实践。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

取](https://bbs.youkuaiyun.com/topics/618658159)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值