开源新力量|CherryMarkdown 高海峰:第一次提出PR并且被merge的心情,无论如何也是相当开心的

2023-11-25 14:26:52 浏览数 (2)

请简单介绍一下自己,及你的开源经历。

高海峰:大家好,我是北京航空航天大学计算机学院的高海峰,这次有幸参加CherryMarkdown项目开源实战,获得了任务奖金同时被提名“腾讯开源贡献者”非常开心。关于“开源”这个词,虽然已经在很多地方都已经听过了,自己也用过一些开源的软件,但始终都是站在一个用户的层面,从来没有真正作为一个“贡献者”去为项目贡献代码。因此这是我第一次亲身参与到开源项目贡献上来。

请介绍一下你在本次腾讯犀牛鸟计划中参与的是哪个项目,具体工作和当前项目收获或成果?

高海峰:我参与的是 CherryMarkdown项目,配置了4位导师给我们指导。根据培养阶段工作可以分为以下两项:第一项是为预览区域的代码块添加“编辑”功能,实现代码块的“所见即所得”功能,使得在预览区可以直接编辑代码,并使编辑结果反映到markdown代码区。第二项是实现输入中文符号时给出英文联想的功能。在键入全角符号时可以联想出半角符号,并对用户所键入的全角符号进行特殊的标记,让用户意识到自己输入的是全角。并且实现了自定义联想符号以及联想选定后的光标定位、选中功能。

恭喜你成功入选项目实战,可以为后续想参与该项目的同学们分享一下你的项目申请书是如何编写的吗?有什么亮点或者攻略吗?

高海峰:项目申请书最主要的部分应当是“技术方案”,要重点展示出自己对开源项目的理解程度,可以从以下几点入手:根据自己的理解和前期项目学习储备来拆解目标开源项目,尽可能描述各个模块的功能;重点对项目发布的任务或需求进行分析,体现自己的思考和思路;具体描述自己的技术方案,比如自己的方案将会添加哪些模块,以及这些模块如何与现有模块通信;当然如果能提前提出issue或给出PR肯定更有机会被选入项目实战。

参与项目实战的过程中有什么印象深刻的经历与体会呢?

高海峰:实战过程中印象最深的应当是自己第一次提出PR并且被merge的心情,自己也能为一个比较庞大的项目贡献代码,知道自己的付出是有意义的,无论如何也是比较开心的。

参与项目实战期间,有没有遇到哪些困难?最后是如何解决的呢?

高海峰:在实战的各个过程中都遇到了不少困难,因为完全没有经验,甚至连如何开始构建项目都不知道。当然在成功构建项目之后,对整个项目运行过程的理解也有不少的困难,从“它在做什么”到“我要干什么”的转变就花了两天的时间。不过在与导师取得联系后,在导师的意见与指导下,实战的过程就顺利了许多。也有不少困难是在思路构思上的:如何写出漂亮、易于维护、易于扩展的代码是我想要做到的,当然在这个过程中,必须要求自己对项目有更深的理解,才能找到更加合适的解决方案。当然在写代码过程中遇到的一些细枝末节的问题,也有不少是通过互联网、查询官方指导书、询问ChatGPT解决的。

项目实战期间,社区和导师们给你带来了哪些帮助?你认为自己获得了哪些成长?

高海峰:由于项目也算比较庞大,想要了解一些代码的细枝末节还是非常困难的,这个时候导师给予了我不少的帮助:告诉我这块代码想要做什么、其核心逻辑是什么,正是有了导师的帮助我才能更加顺利的推进项目实战的完成。除了在“理解”层面上导师给予了不少帮助,在代码层面上导师也为我指出了一些问题:导师在PR的code review过程中,帮我优化了不少细节问题,我也从中学到了更多代码设计层面的方法。总体而言,通过这次项目实战我学到了该如何为开源社区做出贡献,代码的阅读能力有了一定的提高,同时丰富了这个假期的经历。

越来越多的学生参与到腾讯犀牛鸟开源人才培养计划,你对学弟学妹们有什么建议或者经验分享呢?

高海峰:首先最重要的应该是能够成功参与到项目实战当中,所以在前期的准备要尽可能充分,提高自己入选项目实战的机会。其次因为项目实战在暑假,虽然有充分的时间,但是还是得安排出来足够的时间来参与项目实战。多和导师沟通,主动联系到导师进行沟通,一个人做的效果和有导师指导的效果差距还是很大的。

你认为参与腾讯犀牛鸟开源人才培养计划,对你的的职业发展和个人成长有什么帮助吗?

高海峰:通过参与开源项目,让我有机会深入了解项目的代码结构和工作原理,编程和技术能力都得到了提高。特别是在与导师的互动中,我学到了很多代码设计规范和优化的理念,这对我未来职业发展非常有意义。参与开源项目不仅丰富了我的人生履历,也让我了解了开源社区的运作方式和规范,学会了如何与其他开发者合作、提交合并请求以及进行代码审查。这是一个非常宝贵的经验。

0 人点赞