我在阿里实习做开源

成长的过程就是不断经历和体验的过程,一段又一段不同心境的开始和结束。我希望三个月后,那个过了 22 岁生日的年轻人会如愿顺利拿到毕业证,再次出现在这里,我想那时的他一定更熟悉 Java 了吧。

本科时光


循规蹈矩的大学生涯,大概是是四年本科和三年硕士,而我属于校园的时光,只有两年半。在外实习到现在已经整整一年了,从北京到深圳再到杭州,我也非常庆幸能拥有这样的经历。

三段不同方向的实习,从最一开始在学校里的 GoOnline 在线 IDE 项目,让我对真正落地的开发项目充满了向往;到 “互享“ 平台运维开发,让我对企业落地的日常开发运维流程有所了解;再到看点业务开发与需求上线,让我对拥有百万用户的项目和技术充满了激情;再到中间件研发,专注于云原生领域的探索和落地。

第一段实习是在北京时代复兴投资公司,期间充满了懵懂和纠结的,纠结于是选择研发还是科研,懵懂与对从没见过的花里胡哨的各种工具的胆怯,但很幸运最终习惯了自己的选择。

第二段实习是在深圳腾讯,整个过程充满了刺激和危机感,危机来源于在社会上和技术上如何站住脚跟,惊险刺激于一连串从没料到的事情。很感谢我能冷静对待遇到的各种突发情况,来自就业的压力,来自转正的压力,都不足以压垮一个有梦想的年轻人。至今依旧怀念当时带领我成长的导师 Steven

去年秋天开始在阿里集团中间件团队开始了我的第三段实习经历,相比前两次,这次实习舒服了很多。当看清前路的时候,活的还是比较滋润的,所要做的就是积累、沉淀和享受来自研发的快乐。很幸运,实习经历中遇到的导师、同事和领导们都非常 nice,都可以遇到一起聊天交心、一起吃饭喝酒的前辈们,或许对于初入社会的年轻人,是一盏盏指向未来散发光芒的灯塔。

dubbogo 社区


拿到阿里实习 offer 后还未入职西厂前,便被大 Boss 引入了 dubbogo 社区,被告知实习的任务就是推动dubbo-go 在内部的落地和 dubbo-go 3.0 的开发。这是一个有技术的组织,更是一个有人情味的地方。

时光到回到去年刚拿到 offer 的 10 月份,第一次将 dubbo-go clone 到本地,成功实现了 RPC 调用,心情是无比激动的。因为这个场景陌生中带着熟悉。第一次 bug fix,第一次贡献 feature,写源码解读,再到后面成为 dubbo committer,投入 Dubbo-go 3.0 的贡献中。专属于年轻 IT 工程师的快乐,莫非于让自己和项目一起成长。

在阿里的实习过程,2021 年的重大版本 dubbo-go 3.0 贯穿了整条时间线。从我尚未入职还在石家庄的时候,便开始一边在按摩店洗脚一边开周会接任务,到后面熟识了社区中的领导们、技术大佬们,很多次被前辈的技术和精神所感动,说社区充满了人情味毫不为过。

马上就要到了三月底,我也希望 dubbo-go 3.0 可以成为实习过程中属于我的一份期末答卷,而 3.0 版本一定不是终点,而是国内开源 RPC 框架发展的过程所在,因为有了每一个阶段的创新,才成就了在未来长河中的丰富的云原生发展史。

比起项目本身,我更爱这种技术氛围:

  • 很多技术人员可以凝聚在一起,各尽所长为了一个目标而努力;

  • 一种“有我在项目就在”的责任心;

  • 一种在贯彻于编码中的开源项目的严谨;

  • 一种聚会时可以快乐吹水和交流的默契。

1.png

就在上周六晚上,dubbogo 社区负责 dubbo-go-pixiu 项目的负责人铁城大哥,为了庆祝自己成功从阿里外围公司转到盒马,召集了社区杭州的网友们成功小聚。觥筹交错间从技术八卦到社区秘闻,无所不谈,并纷纷“讨伐”图中某位马上从杭州某 IoT 公司离职要投奔蚂蚁的大佬 _。很感激在前行路上遇到的许多优秀又充满情怀的前辈!

Triple-go


实习当然不可能只有周末的风月,更多的是期间的工作经历和成长。整个实习期间个人主要负责 dubbo-go 3.0 的 Triple 协议和新路由规则实现。

开源 Triple 协议作为 dubbo-go 3.0 的重要 feature,简单来说,就是扩展 gRPC 协议,在 gRPC 的基础上引入 dubbo 的服务治理能力和扩展空间。

刚开始想的很简单,在 HTTP2 之上实现 Triple,并兼容 gRPC。但难点在于既要和 gRPC 在普通/流式/状态码上完全兼容,又要具有 dubbo 服务治理能力 — 在 dubbo-go 已有基础上扩展,还要扩展的优雅。

  • **手撕 HTTP2 **

只借助数据帧层的 SDK 手撕 HTTP2 协议,首先需要解决发包逻辑的正确性。搞了一两个星期。实现了调用打通。

但自己实现的总会有问题…

除了数据帧发送正确,还要考虑滑动窗口流控、上下线、数据帧的拆包合包等等一系列流式场景下的问题。我的解决方法很直接,抓包看 grpc 怎么做的(没时间看源码了),然后按照它的逻辑去实现。

当问题一个在掉头发的过程中解决,看似美好,实则陷入死胡同 — 手撕真的比不上官方库,无论是稳定性还是速度。

  • 改官方库

一开始没有选择官方库,因为 gRPC 并不是这么做的。调研的过程中感觉困难重重,Go 语言官方库只给了少的可怜的接口,怎么自定义 Header 和 Trailer?怎么实现 stream 调用?给官方库提交 issue 后被回复:“想法不错,你自己实现个贡献出来吧”…

在这一点上,隔壁 java 的实现就舒服了很多,功能强大的 java-http2 库直接信手拈来。后来对于大型项目的贡献已经有点恐惧了,条条框框太多,跟师兄学聪明点,干脆 fork 个分支自己改,改的自己都觉得骚,但是能实现需求。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后如何让自己一步步成为技术专家

说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。

当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。

推荐一份Java架构之路必备的学习笔记,内容相当全面!!!

成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。

你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!

进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!

【关注】+【转发】+【点赞】支持我!创作不易!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
往后轻松!

【关注】+【转发】+【点赞】支持我!创作不易!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值