logo
企业版

技术分享社区动态

「开源之夏」分享:在可视化大屏中摸清技术方向

初识开源之夏

结缘 NebulaGraph

Hello,⼤家好,我叫刘⽂豪。⽬前是⼀名计算机专业的研⼆研究⽣,就读于北京邮电⼤学。我很⾼兴能参与到这次的开源之夏项⽬中,加⼊到了 NebulaGraph 的社区建设中,并成功完成了可视化⼤屏项⽬的实现。

说起与开源之夏结缘,需要归功于我的好朋友男哥,他是我实验室的同⻔,在研⼀的时候给予了我很多帮助。他是⼀名技术控,对数据库、云原⽣、传统前后端开发等各个领域都有涉猎,在本次开源之夏的活动中参与了 KubeVela 社区的项⽬,取得了丰硕的成果。在今年上半年北京疫情冲击下,我们北邮经历了⼀段封校的⽇⼦,在百⽆聊赖之际,男哥向我们推荐了本次开源之夏的活动,成为了我开源之夏的引路⼈。

在选取开源之夏的项⽬时,我根据⾃身特点进⾏考虑——我研⼀时接⼿了实验室⼀个国家级项⽬的前端部分。在开发迭代过程中,与负责后端的男哥有许多交流。我当时认为⾃⼰对前端⽅向的⼯程化实现更感兴趣⼀些,也⾃学了很多前端领域的知识。但前端⽅向的特点是杂乱,加上国内前端⽣态建设良莠不⻬,很容易让⼈摸不清努⼒的⽅向。如果能找到⾏业内从业多年的⾼⼿亲⾃指导,将事半功倍。抱着试⼀试的态度,我主动联系了我的导师汪洋,浏览运⾏了 NebulaGraph Dashboard 的项⽬,甚⾄还发现了⼀个⼩ bug,提了⾃⼰在 GitHub 上的第⼀个 PR。

介绍下这是我的导师

汪哥给我的初印象是⽐较平易近⼈,⽽且反馈很快,不是那种⾼⾼在上的导师,能够亲⾃指导⼀些技术上 Google 不到的具体问题。在仔细考量对⽐之后(导师汪洋通过了考核🎉),我选择了 NebulaGraph 社区的可视化⼤屏实现的项⽬。

很多同学可能会认为,追求名字看上去“⾼⼤上”的项⽬才是正确的。⽽我认为,⽆论是怎样的项⽬,能落地才是最重要的

我认为⼀个项⽬能否成功落地主要取决于两点:

  1. 项⽬本身是否具有可⾏性;
  2. 参与项⽬的⼈是否靠谱。

这两点也在最终敲定项⽬⼈选的⾯试时,双⽅达成了⼀致。

“辛”而不酸的项目史

这可是可视化大屏

可视化大屏项⽬旨在帮助运维⼈员更直观、便捷地感知系统内的各项关键指标,设计出 NebulaGraph Dashboard 的 Community 版可视化⼤屏。

整个项⽬流程涉及需求分析原型设计代码实现合⼊仓库等完整的软件开发流程,深⼊体验了企业内部产品的上线、开发流程。

在整个开发流程中,代码实施只是其中的⼀部分。导师汪洋考虑到⼯作量较⼤,尤其是起步的需求分析和原型设计部分,期望更多的开源⼒量加⼊本次项⽬开发中。这不是巧了,来⾃美国的宇晴⼩姐姐对这个可视化项目也很感兴趣,经过协商沟通,宇晴⼩姐姐也参与到了我们的项⽬开发中,我们组成了三⼈的开发⼩团队。

在起步阶段,我们做了详细的调研,仔细阅读导师汪洋提供的材料,敲定了设计蓝图、开发语⾔、框架、环境。我们选择重新设计仪表盘的整体布局,在打包⼯具的选择上,我们⽤ Vite 搭建了新的开发环境,没有使⽤旧的 WebPack 开发环境,提⾼了开发效率。

在具体的代码实施阶段,因为我跟宇晴的跨时区因素,体验了⼀下近年很⽕的跨国团队的远程协作⽅式——⼤家在项⽬沟通群中提出问题,明确各⾃的分⼯,采⽤“接⼒式”的开发模式,分别在各⾃时区的⼯作时间,在 NebulaGraph 社区提供的开发机上进⾏代码编写。我们也经常会在群⾥提前商量时间,来进⾏⼩组组会,确保项⽬的顺利推进。⼩组组会的形式和内容,也随着项⽬开发阶段的深⼊,不断地在做调整适应,做到了灵活性和有效性的统⼀。

开源之旅不停

虽然可视化大屏是一个开源之夏的项目,项目总有结项之日。但是,开源之旅不停,后续我将会从以下方面继续走我的开源之路:

  • 优化 UI 设计、提升代码质量
  • 更多参与开源社区的建设中

在开源之夏感受开源的魅力

本次活动,我亲身体会了 NebulaGraph 社区友好的开源氛围。

而我认为开源社区的魅⼒在于,它不仅只为代码⾼⼿开放,还欢迎刚⼊⻔的⼩⽩。我在参与到 NebulaGraph 的社区前,并没有从零开始完整地搭建过⼀个⼤型的前端项⽬,缺乏对所学前端知识的整合。

⽽宇晴⼩姐姐是转码选⼿,今年还⾯临着严峻的应聘形势。我们在整个项⽬开发过程中,互帮互助,相互⿎励,不仅攻克了⼀个个具体的问题,更收获了信⼼和彼此之间的友谊。这⼀切的根源在于,我们勇敢地迈出了最重要的第⼀步,选择主动参与到开源之夏的活动中,并且幸运地加⼊到了 NebulaGraph 社区。在 NebulaGraph 社区,⽆论是负责技术的汪哥,还是负责运营的迷⼈的⼩姐姐,都向我们展示出了他们积极、宽容、耐⼼的友好开源氛围,帮助我们顺利完成了第⼀步的开源之路。

在开源中提升自我

很明显的是能⼒提升,在整个项⽬的开发过程中,我们各⽅⾯能⼒都有所提升,具体体现在以下两点:

技术和⽂档能⼒

我的调研技术⽅案、学习技术细节、应⽤技术解决具体问题的效率得到了显著提⾼。在实践中,⼀步步利⽤所学的零碎的技术知识,孕育出了完整的产品呈现。

开源之夏的官⽅组需要提供结项报告等书⾯材料,我们没有敷衍了事,⽽是选择了使⽤全英⽂的书写模式,认真地完成了组委会的要求。我认为⽆论是为了社区层⾯的与国际开源社区接轨的需要,还是为了个⼈层⾯的⻓期职业发展的考量,选择主动提升英⽂技术⽂档的能⼒,都是必要且正确的

纵观前端发展的历史,⽆论是之前的 Flash、JQuery,还是如今的 Vue、React,都只是各个时期流⾏的代表技术⽅案。⽆论它们的设计多么精巧,代码多么规范,终有⼀天会被淘汰。掌握了对它们的使⽤,仅仅是达到了熟练运⽤“术”的⼯具层⾯。近年,前端各领域发展迅速,各种技术⽅案层出不穷,经常会有⼈调侃“学不动了” 。我也在刚⼊⻔的初期,陷⼊了努⼒⽅向的误区,以尝试各种新鲜的技术⽅案作为主要兴趣驱动点。随着项⽬的深⼊进⾏,我逐渐摸清了作为“道”的能⼒层⾯。我知道了作为职业⽣涯初期的菜⻦选⼿,应该着重养成良好的职业态度和职业习惯,⽽不是⼀味沉迷于粗浅地了解各种技术实现⽅案。加上⼤环境⻛云突变,对应届⽣就业趋势越发地不友好。如果只是将⾃⼰培养成专注“术”的技术熟练⼯,⽽不是关注“道”的技术爱好者,也将丧失⾃⼰作为应届⽣的优势。

沟通和协作能⼒

在项⽬开发的过程中,如何进⾏有效的沟通和协作成为了⼀个很重要的议题,尤其是在社会分⼯⽇益精细化的今⽇。我们三⼈⼩团队均是拿出⾃⼰的业余时间来参与到项⽬中,关于沟通协作⽅式、各⾃时间安排上,都进⾏了多次的讨论和改进。开源对多数人来说是⼀项业余爱好的任务,很少有⼈能够全职从事其中。⽽能有机会在职业⽣涯未正式开始之前,就参与到有公司导师牵头的开源项⽬中,也算是⼀⼤幸事,希望能为⾃⼰未来的团队协作能⼒奠定⼀个良好的基础。

开源之外的友谊

感谢开源之夏官⽅提供这次机会,让我有机会接触到 NebulaGraph 社区,认识了运营⼩姐姐、汪哥和宇晴。我认为任何东⻄想要做成,关键在于“⼈”的部分。有优秀的⼈才,就会有良好的氛围,就能孕育出有意思的产品。我跟汪哥、宇晴的三⼈⼩群,也逐渐成为了⽆话不谈的地⽅。虽然我们三⼈背景、身份各异,但产⽣了⾮常良好的化学反应。希望在以后的⽇⼦⾥,⼤家能够铭记这段有意思的经历,砥砺前⾏,奋发向上。

在这个不确定性⼤⼤增加的时代⾥,努⼒制造⼀些确定的⼩温馨。希望⼤家之后继续为 Nebula 和其他开源社区添砖加瓦,贡献⾃⼰的⼒量,共同缔造⼀种良好的氛围,照亮⼀束光,指引前进的⽅向。