专访 | 刘乔升:开源是人类智力劳动最好的组织形式

news2024/11/25 16:24:58

file
OpenMLDB: 可以请你先自我介绍一下吗?
刘乔升: 我叫刘乔升,来自复旦大学,就读于软件工程专业,是 2022 开源之夏 OpenMLDB Go SDK 项目的贡献者。在参加本届开源之夏活动前,我就有参加过一些开源社区的贡献,也有幸参加了 2021 年的开源之夏。加上在实验室和实习过程中对开源软件的研究使用,其实已经对开源生态有了一定的了解,也算是一个“开源老手”了吧。

OpenMLDB: 为什么会想继续参加开源之夏呢?
刘乔升: 在第一次参加开源之夏后,我对开源产生了更多兴趣。我希望能通过参加不同社区,了解更多领域。另外,我去年选择的是中等难度的项目,今年想要挑战一下进阶项目。

OpenMLDB: 其实开源之夏活动中的社区和项目非常丰富,为什么选择了 OpenMLDB 呢?
刘乔升: 一开始点进 OpenMLDB 的任务页面是因为之前就对这个开源项目有所耳闻,听同学介绍过OpenMLDB,看到开源之夏里有这个社区觉得比较亲切。了解之后,发现其中的 Go SDK 开发项目和自己的技术栈比较契合,加上开发者工具和数据库也是我感兴趣的方向,所以我就选择了 OpenMLDB 作为第二年的挑战。

OpenMLDB: 想问一下 OpenMLDB 给你的第一印象是怎样的?
刘乔升: 因为接触的开源软件比较多,所以我有一套快速了解社区的流程。首先,我会浏览一下官网和 GitHub 主页,了解这个软件的使用场景、核心特性、开发语言等等。接着,我会看一看文档,特别是 QuickStart,简单明了的上手流程在一定程度上显示了社区专业化程度。最后我会在 GitHub 的 issue 和 pull request 里观察一下项目是否活跃、问题响应是否及时、协作流程是否规范等等。用这一套流程初步了解下来,OpenMLDB 带给我的观感是十分良好,无论是社区的维护还是文档的建设都比较专业和用心。

OpenMLDB: 你在开发过程中遇到最具挑战的问题是什么?你是怎么解决的?
刘乔升: 最具挑战的问题还是在方案设计。OpenMLDB 的底层代码是由 C++ 完成的,我的工作是要开发一个 Go SDK,这就要求两种语言都要掌握且都能熟练运用。一开始我和指导老师讨论的方案与 C++ 的关系更密切,实现起来比较繁杂,编译链也会相对杂乱。后来我和指导老师多次讨论后,设计了一个更简单的方式,把 SDK 和 数据库解耦,通过 REST API 通信。在这个思路下,进展就比较顺利了。

OpenMLDB: 你认为社区和导师在活动中最重要的作用是什么?
刘乔升: 首先肯定是技术上的支持。在开发的初期,我其实对 OpenMLDB 整个的数据库结构不是非常了解,对它的底层代码也不是很能参透,这时候指导老师就会给我很多方向上的指导,主要关注哪些内容,重点修改某个部分。在指导下我可以分解 OpenMLDB 的架构,熟悉最关键的内容,拆解自己的任务。
现在回顾合并代码前讨论,可以发现每次合并前都有来来回回的讨论,大概每次合并前都有 30 多条讨论,10 多次的修改打磨,对我来说每次提交代码都是一次学习和打磨。

OpenMLDB: 可以说说你参与这次开源活动的收获吗?
刘乔升: 简历上又多了一条亮眼的经历,GitHub 主页上的七八九月也因为开发的忙碌都被填满了,还结识了许多帮忙指导开发、审核代码的老师,各种收获都让我觉得参与 OpenMLDB 的开源项目充实且有成就感。
还有我认为特别有帮助的一点是可以通过一次又一次的开源经历学会怎样参加开源项目,怎样和社区进行合作。即使我接触项目的时间并不长,但我依然可以凭借自己的开源经验快速了解项目,可以加入社区讨论,可以找到渠道提问求助。
举一个在开源协作的过程中收获的经验吧。代码提交不能像在学校里写作业一样埋头苦干再一次性提交,可能给审核者带来困扰,也又可能浪费自己的时间心血。我们需要尽可能把代码改动拆分的小一点,一边开发一边沟通,这是比较行得通的开源协作习惯。

OpenMLDB: 那作为“开源老手”,你可以给想要参与开源的新同学一些建议吗?
刘乔升: 通过活动加入开源就是一个很好的路径。像是开源之夏,还有其他的机构、社区都有举办一些面向开源新人、学生群体的开源活动,OpenMLDB 也有开放 good first issue 和一些学生活动。这都是非常实际、非常可行的、尝试开源的渠道。
在学校学习的大部分课程,对应的领域里都有大量开源软件而且依然在更新维护,比如操作系统的 Linux、数据库的 Postgres。如果对某门课的内容感兴趣,完全可以找到这个领域里最活跃的开源软件去探索研究,看看这些熟悉又陌生的开源社区是如何运作的,自己要如何加入他们。

OpenMLDB: 可以问一下你开源的初心或说动力吗?
刘乔升: 起初,我参加开源是为了获得成就感。想象一下,当你打开自己的 GitHub 主页,向周围的同学朋友展示参与贡献的项目,看那些知名开源社区的名字像群星闪耀般在你的 ID 旁,这是一件多酷的事情!
现在,更吸引我的是开源的理念和价值观。我越来越相信好的软件是通过开源的方式产生的,比如 Linux、Kubernetes,这些伟大的软件由来自不同国家、不同公司的工程师共同构建,并且为所有人使用。开源的运作方式使人类的知识劳动超越国家民族、语言文字、商业利益等各种因素结合在一起,避免了无谓的竞争,并且促进所有人的福祉。我相信,开源是人类智力劳动最好的组织形式。

OpenMLDB: 请说一句想对 OpenMLDB 的话吧!
刘乔升: 希望 OpenMLDB 越来越开放,能够吸引越来越多的开发者参与进来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义maven骨架

目录 一、自定义maven骨架 1、先创建一个新的工程、添加你需要的结构目录及pom所需要的依赖文件,以这个工程为模板,创建框架 2、添加在pom文件中添加依赖,com.test文件中这个坐标与maven仓库相对应 3、点击Edit....会有一个弹窗 4、点击加…

如何在SpringBoot中设置HTTP缓存,你知道么?

在工作之余阅读缓存相关的书籍时,看到了http缓存相关的知识,HTTP 缓存机制是一个 web 性能优化的重要手段,无论是做前端还是做web后台,都可能会用得到它,应该是知识体系库中的一个基础环节,以前这一块学的不…

TAPD新增需求自动写入腾讯文档

【实现效果:】TAPD新增需求/缺陷,可以自动写入腾讯文档智能表,方便通过腾讯文档灵活管理自己的项目排期,并且通过不同的视图效果,实现简单的需求统计/分组迭代,通过数据关联及时跟进延期项目。 【准备工作…

引用类型 - JavaScript 数组对象、遍历、复制、冒泡排序、选择排序、数组方法、数组去重

写在前面 哎呀呀,每次都是要沉淀好久好久才能更一篇文章…基本上半个月都很难出一篇,但还是想把这个系列做起来,主要是为了记录自己学习和开发的过程,以便在面试的时候讲项目,能说得头头是道(◍•ᴗ•◍) 马上就要开…

Clickhouse

目录 Clickhouse简介 整体架构 数据接入层 数据存储层 数据服务层 数据应用层 Clickhouse简介 目前企业用户行为日志每天百亿量级,虽然经过数仓的分层以及数据汇总层通用维度指标的预计算,有些个性化的分析场景还是需要直接编写程序或sql查询&…

python人工智能学习需要学什么?

前言 如果要从科技领域找出最大的变化和革新,那么我们很难不说到“人工智能”这个关键词。人工智能催生了大量新技术、新企业和新业态,为个人、企业、国家乃至全球提供了新的经济增长点,上到谷歌、苹果、百度等巨头,下到各类创业…

发布-订阅模式解读

发布-订阅模式 先简单说一下发布订阅模式各个组件的定义: 发布者 Publisher : 状态改变时 , 向 消息中心 发送事件 ; 订阅者 Subscriber : 到 消息中心 订阅自己关心的事件 ; 消息中心 : 负责维护一个 消息队列 , 根据 消息类型 将 消息 转发给 对应的 订阅者 ; 下面按照该…

差错控制方法----循环冗余码计算

差错控制方法----循环冗余码计算 循环冗余码,又称为多项式码。CRC的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,如果发现错误,则…

(附源码)php校园电子图像信息采集系统 毕业设计 010930

目 录 摘要 1 1 绪论 1 1.1 研究背景 1 1.2研究内容 1 1.3论文结构与章节安排 1 2 校园电子图像信息采集系统 系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1 数据增加流程 3 2.2.2 数据修改流程 4 2.3.3数据删除流程 4 2.3 系统功能分析 4 2.3.1 功能性分析 4 2.3.2 …

多态——C++第三大特性

目录 一、多态的概念 1、概念 二、多态的定义及实现 1、构成条件 2、虚函数 3、虚函数的重写 4、C11提供了override和final两个关键字,可以帮助用户检测是否重写 5、重载、覆盖(重写)、隐藏(重定义)的对比 三、…

pytorch环境配置

pytorch环境配置pytorch环境配置1.NVIDIA驱动安装与更新1.查看自己的电脑显卡版本2.下载显卡驱动3.安装与验证2.pytorch环境安装1.打开anaconda的终端2. 创建虚拟环境3.换源4.安装5.验证3.pycharm项目的pytorch环境设置pytorch环境配置 使用Anacondapycharm搭建pytorch环境 提…

常见的四大搜索引擎区别

一般应用或网站的信息会存储在数据库中,而随着时间的推移,数据库中的信息量达到一个量级后会出现访问速度变慢的情况,例如用户在客户端搜索一个商品名称,系统可能加载了好几秒才显示数据,这个时候就需要进行一些优化处…

ET框架(三)

Model》数据 HotFix》行为 ET框架中的ECS和Unity的ECS无关 hotfix 静态类静态方法>行为 可以控制组件 Model》数据 继承Entity IAwake初始化 Scene实体的子实体类型 特殊: Unity.hotfixView : Unity相关的行为 Unity .modeView: Unity相关的数据 代码公用&a…

WSL_01 Windows WSL 安装并配置镜像与SSH

文章目录1 WSL介绍2 安装步骤2.1 启用适用于 Linux 的 Windows 子系统2.2 检查运行 WSL 2 的要求2.3 启用虚拟机功能2.4 下载 Linux 内核更新包2.5 将 WSL 2 设置为默认版本2.6 安装所选的Linux 分发解决无法打开微软商店2.6.1 配置网络2.6.2 使用官方教程的链接2.6.3 使用命令…

Redis实战——达人探店

目录 1、发布笔记 1.1 上传图片 1.2. 发表博文功能: 2. 查看探店笔记 3. 点赞功能的实现 4. 点赞排行榜的实现 1、发布笔记 笔记类似点评网站的评价,往往是图文结合。 对应的表有两个 tb_blog:探店笔记表,包含笔记中的…

java计算机毕业设计springboot+vue高校本科学生综评系统

项目介绍 通篇文章的撰写基础是实际的应用需要,然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程,以远程教育系统的实际应用需要出发,架构系统来改善现高校本科学生综评系统工作流程繁琐等问题。不仅如此以操作者的角度来说,该系统的架构能够对多媒…

网络流量回溯分析助力企业实现高效率运维(二)

背景 汽车配件电子图册系统是某汽车集团的重要业务系统。业务部门反映,汽车配件电子图册调用图纸时,出现访问慢现象。 某汽车总部已部署NetInside流量分析系统,使用流量分析系统提供实时和历史原始流量。本次分析重点针对汽车配件电子图册系…

在Python里使用ChatGPT

前言 近来chatGPT挺火的,也试玩了一下,确实挺有意思。这里记录一下在Python中如何去使用chatGPT。 本篇文章的实现100%基于 chatGPT,我是搬运工无疑了!!! 本片文章比较简单,下一篇基于本文章来写…

景联文科技:推动智慧医疗进程,浅谈运用到的数据标注技术

“近年来,人工智能蓬勃发展,不断赋能医疗健康领域,改善患者的就医体验,有效提高医疗质量。智能医疗的实现需要许多专业且精准的标注数据不断对智慧医疗技术中包含的算法模型进行训练调优。” 从2015年至今,我国急性脑梗…

java+MySQL 002ssm病人健康档案管理系统#毕业设计

随着时代的发展,人们对健康越来越重视。如何呢能够更好的对病人的健康档案信息进行管理是当前很多人关心的一个问题。本期系统也是出于这样的目的而进行开发的。 研究内容 1.不同用户的登录问题:根据用户的类别;超级管理员、普通用户;实现用户操作权限的区分并显示不…