前面把Go 语言初阶的学习路线整理出来了:Golang 开发学习路线:初阶,今天继续把 Go 语言(中阶)的学习路线也梳理完了。
学习路线脑图如下:
https://gitmind.cn/app/doc/d949b4df6d9873e11bf48da1fc336cfa
另外我们今天也来聊聊如何成为一名优秀的 Go 语言开发工程师。
总结起来十六个字:掌握基础、熟悉生态、理解领域、使用组件。
掌握基础
掌握基础顾名思义就是我们需要在不同阶段掌握编程基本的知识。举个例子:
作为一名合格的开发者,首先要掌握并熟悉的应用编程语言去实现相应的业务,同时也要掌握一些开源工具来协同工作;
进一层次来,如果你是作为模块负责人或者说 leader,你需要学会使用设计模式的思想去抽象复杂的业务,以及要懂得一些组件的底层原理等。
熟悉生态
这里的生态包括:语言生态、架构生态和社区生态。
语言生态
每一门编程语言都有各自的生态,上一篇文章讲过,可以回过头看看。
架构生态
同样,每一门编程语言都有对应的框架,不同框架的设计和使用场景也不尽相同。比如有的框架提供比较重的解决方案,可以快速生成代码实现相应的逻辑,但也会牺牲其灵活性;对应的,另一种比较轻量级的插件化框架,则看重插件化、组装以及接口设计等,增加复杂性的同时,大大提高了灵活性。
社区生态
在探索技术的工作路上,往往有挺多问题的答案都是在社区中找到,当然社区中也有不少误人子弟的观点,大家要学会甄别,不然一不留神就掉坑了;不过也可以换种方式来想,坑踩多了,路也就好走了。
记住:一次成功往往有偶然因素在里面,而在失败中反思成长才会有价值。
理解领域
自工作以来,越发觉得“领域”的重要性,也是一些大厂考验高端人才的重要因素。
举几个比较经典的例子:
如果你是一名电商支付系统领域的负责人,你需要在“如何保证数据的一致性”,或者说你是怎么做到“数据的幂等性”的问题上有深入的理解和研究。
同样如果你是电商订单系统的专家,你需要对订单各种状态机非常熟悉,以及需要对复杂的状态流转模块进行抽象出来。
如果你是负责电商的秒杀系统,则需要考虑系统的“高并发”以及“异常兜底”的处理。
要想在某个领域有所成长,不仅要有相应的专业技能,还要有多年的经验积累和沉淀,从而让自己在某个领域有核心竞争力。
使用组件
Go 语言以简单和天然支持并发而出名。
简单
何为简单,就是 Go 语言的核心设计可读性非常好,无论是语法上还是使用上,都以简单著称。
云时代编程语言且天然支持并发
Go 语言天然支持并发的特性,很好的契合云编程,我们知道微服务的核心理念就是:拆。通过拆解,可以很好的把单体而又复杂的系统变得清晰简单,符合“高内聚,低耦合”的设计。
使用组件
近几年,随机 Docker 容器化,以及 Kubernetese 容器编排的出现和推广,已经成为微服务的最佳选择。
基于 k8s 为核心的云原生生态,涵盖了监控、日志采集、链路追踪和服务发现等领域的解决方案。其中各种核心组件都是用 Go 语言开发的,比如:Prometheus、etcd 等,我们没必要重复造轮子,要学会使用组件,掌握组件底层的实现原理。
总结
回顾以上四点:掌握基础、熟悉生态、理解领域和使用组件,在这过程中,可以说是“修炼内功”,学会利用外界资源来解决问题,沉淀于某一领域。
············· END ··············
推荐阅读:
Golang 开发学习路线:初阶