展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 系统应用 > 我在阿里实习做开源

我在阿里实习做开源

李志信 (GitHubID LaurenceLiZhixin),中山大学软件工程专业在校学生,擅长使用 Ja va/Go 语言,专注于云原生和微服务等技术方向。3月19日,初春的杭州,依旧阴雨朦胧。透过 EFC 健身房的落地窗往外看,远处的楼宇、青山、整齐的街道和稀疏的车辆在水雾中若隐若现。午后的小

李志信 (GitHubID LaurenceLiZhixin),中山大学软件工程专业在校学生,擅长使用 Ja va/Go 语言,专注于云原生和微服务等技术方向。

3月19日,初春的杭州,依旧阴雨朦胧。透过 EFC 健身房的落地窗往外看,远处的楼宇、青山、整齐的街道和稀疏的车辆在水雾中若隐若现。

午后的小憩时光,我拿了瓶咖啡回到工位,看着刚刚提交的PR通过了CI check,这或许是我人生中作为实习生的最后一天了。

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

本科时光

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

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

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

在深圳腾讯的那段实习经历,至今回想起来都让我心跳加速。你知道吗?在那里,我时刻都能感受到刺激与危机并存。这种危机,一方面来自于如何在竞争激烈的社会中站稳脚跟,另一方面则源于技术领域的不断更迭。而那些意想不到的事情,更是让整个实习过程充满了惊险与刺激。不过,我很庆幸自己能够在面对各种突发状况时保持冷静。就业的压力,转正的压力,对于一个怀揣梦想的年轻人来说,或许是巨大的挑战,但绝不是能够轻易压垮我的负担。如今,我依然十分怀念当时带领我成长的导师Steven【见链接1】。

去年秋天开始在阿里集团中间件团队开始了我的第三段实习经历,相比前两次,这次实习舒服了很多。当看清前路的时候,活的还是比较滋润的,所要做的就是积累、沉淀和享受来自研发的快乐。很幸运,实习经历中遇到的导师、同事和领导们都非常 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 框架发展的过程所在,因为有了每一个阶段的创新,才成就了在未来长河中的丰富的云原生发展史。

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

  • 很多技术人员可以凝聚在一起,各尽所长为了一个目标而努力;
  • 一种“有我在项目就在”的责任心;
  • 一种在贯彻于编码中的开源项目的严谨;
  • 一种聚会时可以快乐吹水和交流的默契。

就在上周六晚上,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?怎么流式调用?给官方库提交 issue 后被回复:“想法不错,你自己实现个贡献出来吧”...

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

    很感谢经验丰富的领导提醒我,官方库可以试试用。

  • 丝滑体验

    花了两天时间换了底层网络库,体验丝滑了很多,尤其是几兆的大个儿数据包,跟社区前辈一起测了一下,最后 2-3MiB 的双向数据包单机压测可达到 1.5k qps。

    当然没考虑到的问题还有很多,但沉浸在开发的快乐和成就感中真的很爽。

未来的云原生

实习期虽然只有短短地三个月,但到后来我越来越发现,中间件研发已经承包了我的太多快乐,我越来越发觉了对编程的热爱,对专业的敬畏,对云原生技术的信仰。

我认为任何一位IT工程师,无论技术深度如何,无论经验是否丰富,都应该拥有自己的技术信仰。我希望技术信仰于我而言,始于对于编程的喜爱和强烈的项目成就感,成长于与前辈的交流和源码的学习中,希望在未来将落实于在 “落地” 和 “创新” 两个词中。

我认为,任何的技术,如果不落地生产,将不具有太多意义。而将“形而上学”的架构观念,突破层层阻碍和壁垒,例如和已有服务/语言/设计理念相悖,不断推进落地,这过程是伟大的,这个过程中付出过努力的人都是站在浪潮之巅的弄潮儿。

中间件的未来是什么?sidecar 架构真正优雅落地是什么样子?Ja va 和 Go以后的关系又是如何?RPC 又能被什么替代,或者是以一种新形态出现?

很多东西就像年初的股市一样扑朔迷离,但未来一定会有一个唯一的答案。未来在杭州,我在技术上又会经历什么变化,业内技术栈又回产生什么样的突破和进展。

难以想象未来三年后,我的技术栈将会变成什么样?毕竟从测试、运维、业务开发、再到基础架构,唯一不变的是变化。

最后的话

配上实习最后一天离开西厂前的纪念照,纪念一段人生路程的结束。祝福开源的 dubbo/dubbogo/dapr,在未来将会变得越来越强大,越来越多的开发者可以使用它们,创造云原生更大的价值。

Dubbo 3.0 将于近期正式发布,敬请期待!如有兴趣,可到 dubbogo 社区钉钉群 31363295 找我聊聊。

谨以此文致敬我的三段实习经历中帮助我成长的各位导师和技术前辈们,并以此纪念我即将逝去的大学生涯!

相关链接

  • 1 我在腾讯看点的导师 Steven https://blog.csdn.net/forevermoonlight/article/details/108644085
  • 2 dubbo-go https://github.com/apache/dubbo-go
  • 3 Triple-go https://github.com/dubbogo/triple
  • 4 Dubbo-go 源码笔记(一)Server 端开启服务过程 https://developer.aliyun.com/article/777450
  • 5 Dubbo-go 源码笔记(二)客户端调用过程 https://mp.weixin.qq.com/s/eb2aHvILemPPm3QSc5nqlw
本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
系统应用
相关文章 更多
精品专题 更多
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

Mac软件 更多
photoshop
photoshop

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Mac
Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。