【开源之夏专访】受教于开源又贡献在开源——丛国庆
夏天渐行渐远,秋天匆匆晃过,开源之夏2022在洁白如新的冬天如期收获了350 位同学的结项成果,这些同学也在开源软件社区留下了自己的足迹,感谢各位同学的支持。今年我们依旧按照最佳质量奖、突出贡献奖、最快进步奖、最具潜力奖四个角度评选出了具有代表性的20位优秀学生。
本次采访,我们邀请了最佳质量奖获奖者丛国庆,分享他的经验。
姓名:丛国庆
性别:男
年龄:23
学校:山东大学
兴趣爱好:健身
--自我介绍--
1、首先请简单介绍一下自己。
大家好,我叫丛国庆,本科毕业于哈工大的机械专业,研究生跨考到山东大学软件学院就读,实验室大方向就是软件工程。大四曾在商汤科技从事软件开发实习,目前在RisingWave Labs实习,参与云原生网关、可观测性系统、VPC规划系统相关的开发。
2、据了解,去年你有参与构建商汤 Cosine 开源社区,给大家介绍一下你的主要工作内容吧。
去年在商汤工程院实习,我所在的部门正好也负责商汤内部开源社区Cosine的软件开发和运营相关的工作。不过商汤的开源是对内部所有部门开源,和广义上的开源还有区别。我当时主要参与了Cosine系统的门户软件开发、管理系统开发,以及商汤内部代码搜索平台的开发,在这个过程中接触到了很多优秀的开源框架,如Dubbo、Nacos等,产生了对源代码学习的渴望,埋下了为知名开源社区贡献的想法。
3、之前做过哪些项目,请分享你最喜欢的一个项目。
学习计算机这几年,从前端折腾到后端、云原生,语言也从Typescript到Java、Golang,也做了不少的项目。现在给我印象最深的是之前一个参加竞赛的项目,用Java+Webflux手撸了一个API响应式网关。这个项目帮助我对Java的学习更深一步,也开启了我对开源框架的源码学习。当时做这个网关,阅读了Spring Cloud Gateway、Apache Shenyu的源码,借鉴了两者优秀的思想,也为我后续顺利中选OSPP做了不少沉淀。
--关于开源之夏2022--
4、请简单介绍一下你在开源之夏2022中的项目。
在Seata计算与存储分离下,Redis成为炙手可热的Seata事务存储模式,但在此模式下,使用的是java+jedis(pipeline,mulit)的处理,导致在server端断电、宕机等情况下,会因为多次网络io及计算下才算一次完整动作的原因,导致如全局锁被残留时,会影响AT模式下部分数据的处理。
我对Redis全局锁和事务存储扩展了lua的实现,将一系列计算+存储交由Redis进行,保证了TC存储数据和争抢全局锁时的原子性,保证Redis事务存储模式下的高可用、一致性。最终经过压测后, lua模式相较于pipeline+mulit模式,QPS提升近180%,RT减少48%左右。
5、是在哪里了解到开源之夏活动的,参与活动的契机是什么?
由于研一下学期特别想深入学习java,不甘心只写crud,就上网搜有没有什么比赛或者训练营,正好看到OSPP在招,于是报名参加了。
6、在项目中遇到最印象深刻的问题是什么?如何解决的?有什么收获吗?
在项目中,对我来说印象最深的就是对Seata的全局锁和事务存储这块的理解,因为在网上这块的资料很少,所以前期的大部分时间都是在理解这块。非常感谢我的OSPP导师陈健斌的支持,他提供了我一些资料和设计文档,我对着资料一遍遍梳理,然后去思考如果我去设计这块,我会怎样怎样,最后终于理清这块,上手coding也就比较轻松了。经过OSPP项目后,现在看一些源码都变得很快了,确实提高了不少相关的能力。
--关于开源和学习--
7、看到你的Github主页在2022年很活跃,对你来说,成就感最大的贡献是哪个?
今年对我来说最有成就的就是参与了Seata的贡献,作为一名Java开发,像Seata在我们心中是很牛的中间件,这也将是我简历上的一个很好的亮点。
8、之后会继续参与开源社区吗,开源社区有哪些吸引你的地方?
等忙完即将到来的24校招,我会继续参与开源贡献。开源最吸引我的地方就是技术的先进性和问题的可研究性,不同于我们做业务开发,做开源很多情况都是攻克很前沿的问题,对我们未来的职业生涯来说也是很有帮助的。
9、恭喜你这次被评选为最佳质量奖,给大家分享一些提高代码质量和可读性的方法和技巧吧。
首先就是命名要规范,不管是变量、函数名还是什么,命名规范易懂,能够让其他人一目了然。
其次是注意运用设计模式,良好的使用设计模式可以让我们的代码扩展性更强,可读性更高。
然后是对于复杂的功能要做好解耦,抽取出与程序主要目的“不相关的子逻辑”。
再就是满足特定语言的规范,比如Java的阿里Java手册,Go的effective go。代码习惯的养成需要一点一滴的积累,平时多看一些优秀的源码(Seata、Dubbo等)也很利于我们的提高。
10、在你的职业发展规划中,开源对你有什么帮助吗?
希望能够在毕业前拿到社区的Commiter,这对我做开源也是一个很强的动力,对将来正式工作后也是一个很不错的title。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
分布式注册服务中心etcd在云原生引擎中的实践
作者:王雷 etcd是什么 etcd是云原生架构中重要的基础组件,由CNCF孵化托管。ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统,是CoreOS公司发起的一个开源项目,授权协议为Apache。etcd 基于Go语言实现,主要用于共享配置,服务发现,集群监控,leader选举,分布式锁等场景。在微服务和 Kubernates 集群中不仅可以作为服务注册发现,还可以作为 key-value 存储的中间件。 提到键值存储系统,在大数据领域应用最多的当属ZOOKEEPER,而ETCD可以算得上是后起之秀了。在项目实现,一致性协议易理解性,运维,安全等多个维度上,ETCD相比Zookeeper都占据优势。 ETCD vs ZK ETCD ZK 一致性协议 Raft协议 ZAB(类Paxos协议) 运维方面 方便运维 难以运维 项目活跃度 活跃 没有etcd活跃 API ETCD提供HTTP+JSON, gRPC接口,跨平台跨语言 ZK需要使用其客户端 访问安全方面 ETCD支持HTTPS访问 ZK在这方面不支持 etcd的架构 etcd 是一个分布式的、可靠的 key-v...
- 下一篇
apijson-column 1.2.9 发布,腾讯 APIJSON 的字段插件•反选字段&名称映射
apijson-column1.2.9 更新内容 升级 APIJSON 和自身版本分别至 5.4.0 和 1.2.9; 具体见Release 发布版本。 apijson-column 腾讯APIJSON4.6.6+ 的字段插件,支持 !key 反选字段 和 字段名映射,可通过 Maven, Gradle 等远程依赖。 1.反选字段 "@column": "!columnKey" // 返回排除 columnKey 后的全部其它字段 { "User": { // id,sex,name,tag,head,contactIdList,pictureList,date "id": 82001, "@column": "!contactIdList" // -> id,sex,name,tag,head,pictureList,date } } 2.字段名映射 "@column": "showKey" // 隐藏了数据库的对应真实字段名 { "User": { // id,sex,name,tag,head,contactIdList,pictureList,da...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19