本期专访来自「开源之夏」暑期 2021 突出贡献奖获得者 -- 黄章衡。

outside_default.png

迷你简历

6573515b865124a771a8f2d2690f7019.png

姓名:黄章衡

年龄:21

学校:福州大学

最喜欢的开源软件:K8s

最喜欢的数码产品:MAC

最喜欢的开源社区:SOFAStack

自我介绍

我来自福州大学 19 级计算机系,平常喜欢研究分布式和数据库。兴趣是参与开源项目,做开源贡献,我活跃参与了多个开源项目,包括 SOFAJRaft、TIDB 等等。

暑期2021项目:

SOFAStack 社区——

实现 SOFAJRaft Segment Log 的索引模块

b66e10d9407385cc9c0a5e45d7e72fd0.png

Q:据了解,你在本科期间获得了诸多奖项,有丰富的实践经验。这对你的专业能力有什么帮助,有什么经验可以和同学们分享?

参加一些竞赛可以帮助我提高自己的团队协作能力,同时让我在一些“大场景“下能够镇定自若。

我觉得参加竞赛最重要的是要找到合适的队友,团队里每个队员都要各司其职。此外,作为队长,应该统筹管理整个团队的项目进度。

Q:你目前了解的开源项目中,有让你受益匪浅的项目吗?它对你有什么启发?

SOFAJRaft 让我学习到了很多东西,其加深了我对 “Raft“共识算法的理解。同时,让我学习到了如何构建一个大型的分布式系统。现在有很多的分布式系统都是基于 Raft 算法来做的(比如 TIKV),这对于我学习别的分布式系统有很大的帮助。

Q:请简单介绍一下暑期2021中你的开源项目

该项目主要负责为 SOFAJRaft 基于 Java 构建一个新的日志存储系统 -- LogStorage, 以替换原有的基于 Rocksdb 的存储系统。

de3dc3731d6bc31b73ef9315b52ee9ce.png

Q:在项目进行中遇到的印象最深刻的困难是什么?

      如何解决的?有什么收获吗?

所谓“万事开头难“,一开始我就对如何设计这个日志系统的架构而发愁。我的解决方法是去做调研——包括寻找相关的论文,研究别的相关的分布式系统,看看是否能让我找到启发。

收获就是,这让我学习到了如何去解决问题,特别是当自己没有思绪的时候,应该学会去找资料来突破困境。此外,只要克服了一开始的困难,后面的路就好走了。

Q:之后会继续丰富这次活动的文档和代码吗?

      对这个项目的内容有更高的期待和计划吗?

会的。

目前这个系统在性能方面还有提高的空间,后面我会配合社区负责人推动该项目的合并,并不断地改进项目的存储性能。

Q:导师对你的项目评价颇高甚至超出预期,

      对于项目的申请及开发有什么经验可以分享?

首先,我觉得,在开源之夏这个活动中,一个好的导师是非常重要的。

我十分有幸遇到了我的导师——冯家纯, 其在暑期不断的帮我改进项目方案, 同时花了很多时间帮我 review 代码, 这促进了我能够较好的完成该项目。其实一开始的时候,我提交的申请方案并不是很完美,甚至可以说很差劲。但是老师给了我机会,他相信我可以做得更好。

此外,关于项目的申请,我觉得最重要的是尽早联系导师,并尽早提供项目方案。如果不知道如何设计方案,可以去借鉴一些相关的开源项目。

Q:请简单介绍做过的其他项目,

     过程中遇到的最印象深刻的难题是什么?

     你是怎么解决的?

这几个月,我尝试动手实践了 Tinykv (分布式 kv 存储) 和 Mit-6.830 (Database management system)这两门课程。学习过程中,凭借着我在 SOFAJRaft 社区打下的 “分布式基础“, 我目前已经完成这两门课程。

学习过程中最大的困难就是如何坚持做完。这两门课程的难度比较大,很多人做到一半就放弃了。不过 “开源之夏“的活动让我再次意识到 “坚持就是胜利“。

Q:对于提高代码质量、可读性和文章的完整性,

      有什么可以分享的学习方法吗

代码质量方面: 

我的导师在结课点评中送给我一句话: 

'What really makes xxx stand out is attention to low-level details.'

coding 的过程中一定重视代码的细节,要构建属于自己的代码风格,不能随意敲代码。 此外,代码风格也要遵循社区的代码风格。最后,在做到一定阶段的时候,应该让导师帮忙 code review。

文章的完整性: 

首先需要对所做的项目有一个全面的认知,文章结构可以按照: 

1.项目背景

2.技术背景知识

3.项目架构概述

4.优化点及测试性能

5.总结

Q:有加入开源社区吗?

      通过本活动,你对开源社区有什么新的理解?

我加入了 SOFAJRaft 、TIDB、 RocketMQ 社区。一个字! 香!

参加开源社区, 做开源项目,对我的面试求职,个人能力的发展,人脉的扩充都非常有帮助。同时,借助开源社区,我也认识越来越多的前辈!

   本周推荐阅读  

19ef21cc2a2036b368733ab38336f945.png

蚂蚁大规模 Sigma 集群 Etcd 拆分实践


d0efb025a3b58e9976d194ffa2449777.png

攀登规模化的高峰 - 蚂蚁集团大规模 Sigma 集群 ApiServer 优化实践


a3063a1abc2fb971b8c8ff2ab2748652.png

「网商双十一」基于 ServiceMesh 技术的业务链路隔离技术及实践


5ca979ba5d2bb787d7ad09241a8da7da.png

Prometheus on CeresDB 演进之路

8c00f1b8975309493bd0bb35ab5678df.png

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐