关注我们 CCF开源发展委员会专区:CCF开源发展委员会 (gitlink.org.cn)
GLCC参赛心得
分享人:吕波
⼤家好,我是吕波,⽬前是华中科技⼤学的在读硕⼠⽣,⽬前⽅向是轻量化神经⽹络。
在本次由中国计算机学会(CCF)主办,GitLink社区和CCF开源发展委员会(CCF ODC)共同举办的⾯向全国⾼校学⽣的暑期开源项⽬实习计划GLCC中,我有幸能够参与到本次活动中由 OpenIM 社区(使⽤纯Golang开发⼀款即时通讯服务器)设置的议题《基于OpenIM的开源在线客服系统》⼦项⽬,并且基于OpenIM社区提供的能⼒构建上层系统,并引⼊⼤模型服务作为本地知识库系统,提供私有AI客服的功能。历时四个⽉的时间,最终完了我们的项⽬openkf。
01
参与活动的机遇
在去年的时候,我在浏览和学习Golang的开源社区时,从其他社区的github issue上了解到GLCC开源夏令营的活动,并且在GLCC的官⽹上看到了⾮常丰富和⾮常有深⼊学习价值的项⽬列表,这些议题⽐⾃⼰⼿上的demo项⽬更具有引导性和吸引⼒。但由于参与的时间较晚,以及对开源社区的了解不够充分,⾮常遗憾地错失这次参与机会。但是同时,也给我后续参与社区贡献提供了⽅向,在各开源社区中存在⾮常具有实践价值的议题,可以了解和汲取前沿的实践经验。
02
早期的开源状态
在本科期间,我就有接触⼀点开源社区的冲动。当时主要是在课后学习中,会从各类技术⽹站上了解⼀些新技术和新的设计思想。但当时在学习态度上存在⼀些误区,仅仅将Gitlink/Gitee/Github开源成果当作学习样本去参考,⽽没有分享⾃⼰成果和想法的勇⽓,担⼼⾃⼰的想法过于幼稚,⽽没能及时与社区或者项⽬的作者进⾏沟通。
03
接触GLCC社区与项⽬导师
本科后期和研究⽣阶段后,我有更多的时间和精⼒投⼊到前沿技术的学习当中。领域变得⼩众后,可学习的资料就显得愈发匮乏,因此我就需要花费更多的时间去了解开源社区和社区的⼀些成果,并需要了解第⼀⼿的资料。这个阶段的学习,弥补了我对开源社区的认知空缺,开源社区的管理者维护者其实都是⾮常热情和乐于和求知者⼀起讨论问题的,因此我也逐渐改变了我⾃⾝对开源贡献的看法,能够输出⼀些⾃⼰的成果。
在积累了⼀些经验之后,我再次惊喜地看到GLCC官⽹公布夏令营的消息:有⼀百多个课题可供选择!我在了解部分课题的背景之后,最终选择 OpenIM 作为我本次参与的社区。
在了解到OpenIM社区之后,我⽴即和社区的导师熊鑫伟进⾏邮件沟通(导师真的⾮常热情!),随后带着我参与了OpenIM的双周会,并从中了解到社区的职责。我也针对这次项⽬分享了我的想法(可以集成离线知识库和⼤模型作解决⽂档内提问的痛点),这个想法也得到了导师的肯定!
04
项目开发
熟悉了本项⽬的基本要求之后,导师建议按照开源社区的规范来完成本项⽬。包括拟定RFC,匹配issue和PR,建⽴CI/CD,代码评审等。OpenIM社区也是在朝着K8S等顶级社区的规范发展,通过这个⼦项⽬,我更加清晰的认识到开源社区的⾼效运⾏模式(我也认为这对我之后的团队合作有很⼤的作⽤)。
后⾯具体到该项⽬的开发中,由于和OpenIM的核⼼功能息息相关,因此我也时刻关注社区的动向。在开发过程中,也跟随OpenIM社区经历⼤版本更新,并且跟进OpenKF⼦项⽬的项⽬依赖与进度。也⾮常感谢熊鑫伟导师能够在⼯作之余对我的代码进⾏审查,并且对我的代码⻛格和代码结构提出宝贵的意⻅,最后及时完成项⽬内容。
后期在项⽬的规划中,会针对项⽬部署,项⽬⽂档和⾼可⽤⽅⾯进⾏持续的优化,还有更多的道路需要去探索。
05
感悟与思考
对于我个⼈⽽⾔,参与开源社区的贡献和开发是⼀种⾮常有意义和充实的经历。通过参与开源项⽬,我能够学习到其他开发者的经验和知识,提升⾃⼰的技术能⼒。同时,我也能够为社区做出贡献,改善软件的质量和功能,帮助其他⼈解决问题。参与开源社区也是⼀个⾮常好的学习和成⻓机会。通过积极参与、贡献⾃⼰的代码和经验,可以在开源社区中体验到合作与共享的⼒量,同时也能够为开源软件的发展做出⼀份贡献,这份经历是⾮常宝贵的!
但是同时,我也会时常反思⾃⼰没能尽早融⼊开源社区党当中,虽然同龄⼈以及前辈后辈们的经历经验都⾮常的出彩,但是他们也不会吝啬于接收和分享⾃⼰的成果,开源社区是⼀个⾮常开放包容的群体,对贡献者的没有限制!只要感兴趣就可以主动提出issue和PR!不论你是初学者还是有经验的开发者,⽆论你什么时候开始参与,都绝对不算迟。希望更多的伙伴们能够参与到开源事业当中,共同推动技术的进步和⻅证科技的发展!