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

相关文章

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.