SOFAJRaft Contributor 专访|黄章衡:前进的力量源于实践

本文主要是介绍SOFAJRaft Contributor 专访|黄章衡:前进的力量源于实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本期专访来自「开源之夏」暑期 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

这篇关于SOFAJRaft Contributor 专访|黄章衡:前进的力量源于实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423348

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO

springboot整合swagger2之最佳实践

来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 SpringBoot集成 pom <!--swagge

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

【HarmonyOS】-TaskPool和Worker的对比实践

ArkTS提供了TaskPool与Worker两种多线程并发方案,下面我们将从其工作原理、使用效果对比两种方案的差异,进而选择适用于ArkTS图片编辑场景的并发方案。 TaskPool与Worker工作原理 TaskPool与Worker两种多线程并发能力均是基于 Actor并发模型实现的。Worker主、子线程通过收发消息进行通信;TaskPool基于Worker做了更多场景化的功能封装,例

vue2实践:第一个非正规的自定义组件-动态表单对话框

前言 vue一个很重要的概念就是组件,作为一个没有经历过前几代前端开发的我来说,不太能理解它所带来的“进步”,但是,将它与后端c++、java类比,我感觉,组件就像是这些语言中的类和对象的概念,通过封装好的组件(类),可以通过挂载的方式,非常方便的调用其提供的功能,而不必重新写一遍实现逻辑。 我们常用的element UI就是由饿了么所提供的组件库,但是在项目开发中,我们可能还需要额外地定义一

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

AI 与大模型:物流行业的变革力量

一、物流行业的现状与挑战 物流行业在现代经济中扮演着至关重要的角色,但目前也面临着诸多挑战。 在效率方面,交通拥堵是一个突出问题。许多城市道路容量不足,无法满足日益增长的货物运输需求,导致运输时间延长。例如,在一些大城市,货物运输常常因交通拥堵而延迟,影响了整个供应链的效率。此外,信息不对称也严重影响了物流效率。供应商和购买方之间缺乏实时信息共享平台,双方无法准确了解货物的到达时间、配送状