2019年褪去羞涩,走向成熟
2019年已经过去99.5%了,算起来,从毕业到现在也2年多了。2年说长不长,说短不短,特别是2019年,对于我个人发展来说,是重要的一年。
在今年换了工作,开发语言变成了Go,虽说一个开发人员不应该被一门语言限定,但是切换一门语言,意味着生态圈是跟着切换的,所以今年的技术栈主要是go+中间件+容器化了。
1、工作
1.1、业务框架
- gin
- beego
在业务中对于go框架的选择,业务接口是gin,后台运营系统orCMS系统是beego,这两个框架作为脚手架在今年伴随着我的开发生涯。
1.1.1、gin
gin目前是34.3K Star。充分证明了gin确实是go中最受欢迎的web框架。在使用的过程中,越发的觉得gin的抽象封装能力确实是令人满意,一个前缀树路由+一个Engine+一个Context,这就是gin,不管是写接口,还是作为微服务的接口服务模块,都是值得你拥有,基于gin可以舒服的写出RESTFul的api,哈哈哈~~
1.1.2、beego
beego目前是22.9K Star。beego是国内大神谢大开发的,是一个典型的 MVC 架构的开发脚手架。大而全,给人的感觉是笨重,里面一些功能可能用不上的。虽然很多人吐槽,但是毫不能阻挡它成为go的一个优秀的框架,在平时的开发中,其实用来开发后台管理系统这类的项目,beego还是很省心的,完全够用。
1.1.3、中间件
不管使用哪种开发语言,都离不开中间件。在我看来,中间件就是所写的业务应用于系统之间的这层的所有软件。中间件的出现,就是软件分层,各自分工,各自做自己擅长的事而出现的。比如redis,消息队列,网关,分布式组件等等。在这两年中,接触和使用的中间件包括了redis,mysql,mongodb,nsq,kafka,etcd,nginx。。。
1.1.4、容器化
公司目前是公司本来并不是真正的ci/cd,但在今年下半年开始搭建容器化部署和编排。主要是docker+k8s,但此工作是归为运维那边的,实质和我们开发人员相关的是自己开发和自测是打好镜像,直接推到内网测试环境,然后基于docker容器化来调试和测试应用,待测试那边通过后,应用容器化部署和编排等工作和开发就无关了,轮到运维那边的接手了。
但是通过这一套下来,自己也熟悉了docker相关的,买两台阿里云机器自己搞搞docker+k8s,也算圆了自己掌控容器化部署,编排,监控等知识了。
1.2、后端程序员的工作方式
大半年下来,也从小鸟变成“老鸟”了,越发的熟悉整个开发流程了。
- 1、拿到产品需求
- 2、做接口设计,架构设计,DB设计
- 3、拿出方案来做技术方案评审
- 4、评审通过,开始预估时间
- 5、禅道新建项目,任务清单,具体到日程。每日更新自己的Task
- 6、接口完成自测n遍,并部署到开发环境,随时集成
- 7、CodeReview
- 8、重构代码
- 9、性能测试
- 10、Demo通过
- 11、发布到测试环境
- 12、修正Bug
- 13、重新发布
- 14、发布到线上环境
2、生活
2019年生活还是老样子,工作,和女朋友约约会,去了一次成都(也算完成了一年一次旅游的计划了,2020年应该是去北京了,哈哈)。就是运动少了,每天要早睡了。2020年要多运动,多打球,重新成为短跑小王子。
3、书籍
3.1、2019计划
哈,今年可能是看书最多的一年了。先看去年定的计划:
3.2、2019真实执行
较真来说,这个计划只是完成了30%。因为这个计划是根据今年没有换工作来准备的。但是在3月份的时候,一个机缘巧合的机会,入职如今的公司,技术栈相应有了变化,所以计划也是变了,真的是计划赶不上变化。
再来看今年看过的书单:
go:
- Go Web编程
- Go并发编程实战
- Go程序设计语言
- go语言并发之道
- go语言实战
看完之后,书籍都是大同小异,说明go真的非常简洁,坑不多,非常吊,若再搭配泛型(2.0将出),那表达能力真的是逆天了(少了c++的内管管理烦恼,可以把更多的时间花在设计模式,架构方面)。
数据库:
- MySQL必知必会
- MySQL 是怎样运行的:从根儿上理解 MySQL
- 密集型型应用系统设计
《密集型型应用系统设计》这本书,我买的是中文版,但是翻译非常给力。是在我读的书中,翻译较出色的一本书。此书可以是大型分布式系统的入门,也可以是进阶,正在刷第二遍。力推!!!
redis:
- redis设计与实现(第二版)
- Redis 深度历险:核心原理与应用实践
redis在工作中,基本每个项目都应用的了,redis就是瑞士军刀,适用场景太多了。用好了,真的是大大提高系统的并发。redis设计与实现是国内大佬写,同为90后,差距好多啊~,此书也是力推的,详细的讲了redis的底层,读下来,对redis确实深入了解了。2020年准备继续深入学习redis,毕竟6.0都即将出了,将支持多线程,应该是一个大改版,期待。
分布式:
- 大型网站技术架构:核心原理与案例分析
- 深入分布式缓存 - 从原理到实践
《大型网站技术架构》神书,作者的总结能力和表达能力真的很好,能够把那么多知识点和实战浓缩成300多页,真的很厉害。读完这本书,犹如真的经历了互联网从最初的架构到如今的微服务等主流架构的发展。
协议:
- 图解HTTP
- 其他的protobuf,raft等等
极客时间专栏:
- 趣谈网络协议
- Linux性能优化实战
- 消息队列高手课
- MySQL实战45讲
- 说透中台
- 深入理解RPC
- 高并发系统设计40问
极客时间专栏主要是在碎片化的时间看的,地铁上,午休时间,等女朋友化妆时,上厕所时。。。其实单单看专栏,更多的是学习思想,经验。毕竟因篇幅的原因,不能把知识点都展开,更多的是起指引的作用,让我们有方向,直到业界一般的解决方案,优秀的工作经验之类。
4、开源项目
2019年的开源项目主要是个人的开发项目。
5、2020年计划
2019年从工作,生活,学习都总结完了。终于到2020年的计划了。
工作学习方面的:
- 继续深入掌握常用中间件(redis,db,消息队列【nsq,kafka,RocketMQ】)
- go方面。深入到调优,gc方面
- 微服务相关(应用网关,服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离、事务补偿)、Tracing 监控、SOA/ESB、CQRS、EDA)。打算前端基于小程序,后台采取微服务架构,上线一款小程序
- 学习产品相关的知识。跨界,开拓眼界
阅读书籍:
- redis设计与实现+配合源码
- 高性能MySQL
- 密集型型应用系统设计
- 大型网站系统与Java中间件实践
- 实用负载均衡技术:网站性能优化攻略
- 从Paxos到Zookeeper:分布式一致性原理与实践
- 第一本docker书
- Kubernetes In Action
- kubernetes权威指南
- 淘宝技术这十年
- 京东技术解密
开源项目:
- 整理个人开发轮子
- 小程序+微服务
- 参与著名开源项目,提pr,提交code
6、总结
2019年褪去羞涩,走向成熟。
那么2020年?继续提高专业,逐步打造IP