程序员成长第一步,从成为开源社区贡献者开始!

程序员想要快速成长,就必须要要阅读大量的代码,学习别人的经验。幸好,这个世界有开源!
从使用开源项目到阅读源码,从阅读源码到贡献代码,是程序员成长的重要标志。
Apache 开源基金会已经成立超过25年了,Github 社区自从成立以来也已经走过了16个年头,那么你今天为开源社区贡献代码了吗?
阅读和理解别人的代码,向来都是程序员的一大难关。随着AI 的发展,诸多编程助手为我们快速了解和上手一个项目提供了便捷的途径。本文以豆包 MarsCode 和 开源项目 VisActor为例,为您展示如何借助AI快速提升个人能力。

出发!

首先我们通过链接 下载Marscode 和了解如何使用(https://www.marscode.cn/home?utm_source=school&utm_medium=visactor&utm_campaign=oss)。

MarsCode在这里插入图片描述

现在有了豆包 MarsCode 插件的帮助,我们可以快速高效的了解一个项目的核心逻辑与模块构成,轻松几步就能完成开源项目的代码贡献。
要是你还没有想法或者不知道该从哪里下手也没有关系,可以跟随这篇文章的脚步来了解如果从零开始为开源项目添砖加瓦,成为一名真正的“开源项目贡献者”吧!
Let’s GO!

在这里插入图片描述

First Thing First

在贡献代码之前,推荐阅读贡献者指南:https://github.com/VisActor/VChart/blob/develop/CONTRIBUTING.zh-CN.md
首先让我们先挑选一个心仪的任务。
VisActor 空间下的 VChart (https://github.com/VisActor/VChart) 项目中已经记录了许多的 issue,里面打着 good first issue 标签的 issue 就是适合开源新手踏上开源贡献之路第一步的任务啦:

目前 VChart issue 中挂了许多的特性开发任务以及环境兼容任务。给 VChart 添加 Vue 环境的支持需要对 Vue 生态有一定的掌握,优化鸿蒙环境下的 VChart 使用本身也需要先足够了解鸿蒙本身的语法与环境能力,这些任务对于初心者而言可能有些难度。
我们可以从教程补充之类的简单任务着手,逐步了解 VChart 项目本身的逻辑,一步步向更有挑战的工作进发。
在这篇文章里我们就从“补充 Scales 相关教程”的任务入手吧:

选定任务了,让我们开始敲代码!

Set Sail

如果你对于 VChart 项目本身还并不太熟悉的话,可以加入 VisActor 微信群组或者 VisActor 的飞书群组提出任何感兴趣的问题。群里的热心同学们会积极帮助所有外部开发者解惑答疑,不用觉得害羞,尽管去提问吧~
VisActor
如果你想要依靠自己的力量来理解 VChart 的核心逻辑,但是又觉得一口气阅读 VChart 这么多的代码有些抓不到思路,不知道如何掌握 VChart 项目的脉络的话,那不妨来试试豆包的 MarsCode 插件的大模型对话能力。
无论是使用 VScode 还是 Jet Brains 系列的编辑器,MarsCode 都提供了相应的编辑器插件,能够帮助你快速接入大模型能力,提升编码与开发效率。
比如让我们先问问 packages/vchart 这个核心包里头究竟包含了哪些重要模块呢:

又或者你可以向 MarsCode 询问 VChart 中某一个类的核心函数是用来做什么的:

有 MarsCode 的辅助,相信以你聪明的小脑瓜肯定能很快了解 VChart 的代码逻辑辣。如果还有什么不清楚的,群组里头的热心同学们也随时为你效劳~

Show Me The Code

观察 VChart 的项目结构,可以看到的所有的文档内容都存放在 根目录/docs/assets 路径里头。
需要注意啦,VChart 中所有的教程文档都是按照原生的 MarkDown 的格式编写的,所有的配置项文档都是按照嵌套的 MarkDown 格式编写的。两者的差异在于前者可以在任何的 MarkDown 编辑器/阅读器中查看,后者则需要通过编译以及执行 VChart 本地命令才能查看。

万里长征第一步:找到落笔的地方,写下第一行内容。
顺着 Scale 代码类型定义的脉络一路找到最终 ScaleType 的类型定义。可以看到 ScaleType 里除了现在教程里头包含的 linear 以及 ordinal 两种类型以外,还包含了 band、point 以及 threshold 类型。
在这里插入图片描述

那么这些 Scale 类型又是什么含义呢?让我们来问问万能的 MarsCode 插件吧:
在这里插入图片描述

好,我们已经彻底理解了 Band Scale 的含义,是时候让我们开始编写具体的教程内容了!
在这里插入图片描述

Scale 的配置文档内容存放在 visual-scale-spec.md 文件中,先找到这个文件,然就可以开始写下第一行代码内容辣。

当然了,在你添加相应文档内容的时候,MarsCode 插件仍然在勤勤恳恳的工作中!MarsCode 在你专心致志敲击键盘的时候自动补全后续的文字,帮助你省去一大堆的重复劳动时间。话不多说,快端上来吧:

**敲黑板敲黑板:**需要注意每个文档都是包含中英文的内容,写完中文文档之后不要忘记补充对应的英文文档哦~
在这里插入图片描述

所有文档编写就绪之后,也别忘了在 VChart 项目中运行 rush update 以及 rush docs 命令来执行文档的渲染,检查一下自己的文档内容是否正确呀。

PR! PR!

代码就绪之后,最后一步就该是推送代码内容,提交 Pull Request,等待自己的代码正式合入啦。
在这里插入图片描述

向 VChart 仓库的 Push 分支提交 Commit 内容需要等待单元测试的执行完成。不过对于我们的教程编写而言并没有什么影响,只要稍作等待,就可以在 VChart 项目中提起 Pull Request 了:
在这里插入图片描述

提交 PR 之后 VChart 的相关同学会查看你所提交的 PR 内容,并且与你就 PR 内容做一些讨论。如果大家拜读了你所编写的精妙绝伦的代码之后觉得毫无问题,那就是万事俱备,可以合入代码啦。
如果 PR 交流的过程发现了一些问题也不要灰心,可以就讨论的结果做一些相应的修改。负责 Review PR 的同学也会持续跟进 PR 的调整,确保内容最终能够顺利合入仓库。

整个流程是不是非常简单?还在等待什么,赶紧向 VisActor 贡献代码吧。下一位开源贡献的明日之星就是你!

相关链接

  • Marscode 官网:https://www.marscode.cn/home?utm_source=school&utm_medium=visactor&utm_campaign=oss
  • VisActor 官网:https://www.visactor.io/
  • VisActor github(欢迎Star):
  1. VChart:https://github.com/VisActor/VChart
  2. VTable:https://github.com/VisActor/VTable
  3. VMind:https://github.com/VisActor/VMind

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

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

相关文章

C++之STL—常用排序算法

sort (iterator beg, iterator end, _Pred) // 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // _Pred 谓词 random_shuffle(iterator beg, iterator end); // 指定范围内的元素随机调…

JAVA JVM常见面试题

1.JVM的内存区域是怎么划分的? 2.OOM可能发生在哪些区域上? 根据javadoc的描述,OOM是指JVM的内存不够用了,同时垃圾收集器也无法提供更多的内存。从描述中可以看出,在JVM抛出OutOfMemoryError之前,垃圾收集…

rk3588S 调试USB摄像头

问题: 客户的 usb 摄像头 接上 板卡上的 USB2.0 的接口是可以的,但是 接上 typec 接口上的 OTGUSB的时候 ,就会出现,无法识别USB的问题。 情况的说明: 先来看一下硬件。 这里的 typec 接口实际上 只用到了 otg USB的 两根线, 也就是 把TYPEC 当做 USB2.0 来用了。(通…

2024-09-27 buildroot C和语言将 中文的GBK编码转换为 UTF-8 的代码, printf 显示出来,使用 iconv 库去实现。

一、GBK 的英文全称是 "Guobiao Kuozhan",意为 "National Standard Extended"。它是对 GB2312 编码的扩展,用于表示更多汉字和符号 GBK(国标扩展汉字编码)是一种用于简体中文和繁体中文字符的编码方式&#x…

起号半个月GMV 1300W+,视频号这个赛道真香!

双减”后,教育的主阵地重回学校和家庭,特别是家庭教育被赋予了更多的期待,家庭无疑要承担起更多教育职责。 同时亲子关系进一步受到考验,家庭教育除了辅导孩子学习外,更牵涉孩子成长的每个方面、每个点滴,掌…

计算机视觉|机器学习中图片特征向量的提取方式:开启图像世界的钥匙

文章目录 什么是特征向量?常见的图片特征向量提取方法1. **手工设计的特征**SIFT(尺度不变特征变换)HOG(方向梯度直方图) 2. **卷积神经网络 (CNN)**3. **预训练模型**4. **自监督学习** 结语 今天我们将一起深入探讨机…

C++:采用模板封装顺序表,栈,队列

1.顺序表&#xff1a; list.hpp #ifndef LIST_HPP #define LIST_HPP #include <iostream>using namespace std;template <class L>class Seqlist { private:L *ptr;L size;L len0;public:void init(L n){//堆区申请空间&#xff08;大小为n&#xff09;this->…

React学习笔记(2.0)

React事件绑定 语法&#xff1a;在对应标签上书写on事件&#xff08;比如onClick,onChange&#xff09;&#xff0c;注意和原生的事件区分&#xff0c;React的事件首字母要大写。 const handleChange(e:any)>{console.log(e);console.log(change事件触发);// e不是原生事件…

IGZO基底无电容DRAM单元前景看好

1.DRAM技术简介 DRAM&#xff08;Dynamic Random Access Memory&#xff0c;动态随机存取存储器&#xff09;是一种用于计算机和其他电子设备中的主存储器类型&#xff0c;其主要由存储单元阵列构成&#xff0c;而每一个存储单元由一个电容器和一个晶体管组成&#xff0c;如图…

python-金币/打分/小理学数列3

一&#xff1a;金币 题目描述 国王将金币作为工资&#xff0c;发放给忠诚的骑士。 第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;里&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&#xff09…

智慧农业案例 (一)- 自动化机械

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案&#xff0c;帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、领域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…

【Python基础(一)】

学习分享 一、基本语法1、输出print语句2、常量的写法3、运算符 (/) 与(//)4、字符串5、列表5.1、列表查询元素是否存在5.2、列表查询元素是否存在5.3、身份运算符5.4、列表的增删改查 6、元组6.1、tuple() 7、字典8、函数8.1、值传递8.2、引用传递8.3、函数的传参 二、文件的操…

Java零工市场小程序如何实现一站式服务

零工市场小程序作为一个为自由职业者服务的平台&#xff0c;Java编程语言是其坚实的后盾&#xff0c;为自由职业者提供了良好的服务&#xff0c;提高了用户体验感和工作效率&#xff0c;实现了一站式服务。 首先&#xff0c;用户只需在微信中就可使用&#xff0c;注册完善个人信…

基于RustDesk自建远程桌面服务

最近向日葵越来越难用了&#xff0c;官方好像限制了免费用户的带宽&#xff0c;但是限制的有点过头了&#xff0c;卡的基本没法用。 向日葵的平替todesk对于免费用户又有时长限制&#xff0c;对于经常用的小伙伴不大友好。 咱也不是说非得白嫖&#xff0c;但是向日葵和todesk这…

Leetcode 除自身以外数组的乘积

class Solution {public int[] productExceptSelf(int[] nums) {int length nums.length;//一维数组 answer[]存储最终的结果//首先从左往右记录乘积&#xff0c;暂时存储到一维数组 answer[] 中int[] answer new int[length];//先从左往右, 由于由于第一个元素左边没有元素&…

【漏洞复现】灵当CRM multipleUpload.php接口处存在文件上传漏洞

》》》产品描述《《《 灵当CRM致力于为企业提供客户管理数字化、销售管理自动化、服务管理智能化、项目管理一体化的个性化CRM行业解决方案,构建全生命周期的数字化管理体系,实现可持续的业绩增长! 》》》漏洞描述《《《 灵当CRM系统接口multipleUpload.php文件上传漏洞&#x…

艺术家刘欢近况时隔5年再登《歌手》舞台,国家级嗓音引发热议

在我国&#xff0c;有这样一位艺术家&#xff0c;他自上世纪80年代至今&#xff0c;用一首首脍炙人口的歌曲和他那独特的嗓音陪伴数代人成长。凭借音乐上的造诣和天赋&#xff0c;他被众多网友誉为“音乐教父”&#xff1b;攀登至领域巅峰时&#xff0c;他不忘提携后辈&#xf…

通俗易懂的Latex使用步骤

目录 Latex的安装和基本框架 TeX Live和TeXstudio的安装 Latex基本框架 标题 目录 列表 字体设置 图片 单张图片 多张图片&#xff08;以两张图片为例&#xff09;&#xff1a; 多张图片&#xff08;以三张图片为例&#xff09;&#xff1a; 公式 公式复制神器: …

高性能计算应用优化实践之WRF

WRF&#xff08;Weather Research Forecast&#xff09;模式是由美国国家大气研究中心&#xff08;NCAR&#xff09;、国家环境预报中心&#xff08;NCEP&#xff09;等机构自1997年起联合开发的新一代高分辨率中尺度天气研究预报模式&#xff0c;重点解决分辨率为1&#xff5e…

jinaai/jina-embeddings-v2-base-zh向量模型报错解决

报错信息 OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file, couldn’t find it in the cached files and it looks like jinaai/jina-bert-implementation is not the path to a directory containing a file named configuration_bert.py. 报…