技术分享社区动态
「开源之夏」分享:在可视化大屏中摸清技术方向
初识开源之夏
结缘 NebulaGraph
Hello,⼤家好,我叫刘⽂豪。⽬前是⼀名计算机专业的研⼆研究⽣,就读于北京邮电⼤学。我很⾼兴能参与到这次的开源之夏项⽬中,加⼊到了 NebulaGraph 的社区建设中,并成功完成了可视化⼤屏项⽬的实现。
说起与开源之夏结缘,需要归功于我的好朋友男哥,他是我实验室的同⻔,在研⼀的时候给予了我很多帮助。他是⼀名技术控,对数据库、云原⽣、传统前后端开发等各个领域都有涉猎,在本次开源之夏的活动中参与了 KubeVela 社区的项⽬,取得了丰硕的成果。在今年上半年北京疫情冲击下,我们北邮经历了⼀段封校的⽇⼦,在百⽆聊赖之际,男哥向我们推荐了本次开源之夏的活动,成为了我开源之夏的引路⼈。
在选取开源之夏的项⽬时,我根据⾃身特点进⾏考虑——我研⼀时接⼿了实验室⼀个国家级项⽬的前端部分。在开发迭代过程中,与负责后端的男哥有许多交流。我当时认为⾃⼰对前端⽅向的⼯程化实现更感兴趣⼀些,也⾃学了很多前端领域的知识。但前端⽅向的特点是杂乱,加上国内前端⽣态建设良莠不⻬,很容易让⼈摸不清努⼒的⽅向。如果能找到⾏业内从业多年的⾼⼿亲⾃指导,将事半功倍。抱着试⼀试的态度,我主动联系了我的导师汪洋,浏览运⾏了 NebulaGraph Dashboard 的项⽬,甚⾄还发现了⼀个⼩ bug,提了⾃⼰在 GitHub 上的第⼀个 PR。
介绍下这是我的导师
汪哥给我的初印象是⽐较平易近⼈,⽽且反馈很快,不是那种⾼⾼在上的导师,能够亲⾃指导⼀些技术上 Google 不到的具体问题。在仔细考量对⽐之后(导师汪洋通过了考核🎉),我选择了 NebulaGraph 社区的可视化⼤屏实现的项⽬。
很多同学可能会认为,追求名字看上去“⾼⼤上”的项⽬才是正确的。⽽我认为,⽆论是怎样的项⽬,能落地才是最重要的。
我认为⼀个项⽬能否成功落地主要取决于两点:
- 项⽬本身是否具有可⾏性;
- 参与项⽬的⼈是否靠谱。
这两点也在最终敲定项⽬⼈选的⾯试时,双⽅达成了⼀致。
“辛”而不酸的项目史
这可是可视化大屏
可视化大屏项⽬旨在帮助运维⼈员更直观、便捷地感知系统内的各项关键指标,设计出 NebulaGraph Dashboard 的 Community 版可视化⼤屏。
整个项⽬流程涉及需求分析、原型设计、代码实现、合⼊仓库等完整的软件开发流程,深⼊体验了企业内部产品的上线、开发流程。
在整个开发流程中,代码实施只是其中的⼀部分。导师汪洋考虑到⼯作量较⼤,尤其是起步的需求分析和原型设计部分,期望更多的开源⼒量加⼊本次项⽬开发中。这不是巧了,来⾃美国的宇晴⼩姐姐对这个可视化项目也很感兴趣,经过协商沟通,宇晴⼩姐姐也参与到了我们的项⽬开发中,我们组成了三⼈的开发⼩团队。
在起步阶段,我们做了详细的调研,仔细阅读导师汪洋提供的材料,敲定了设计蓝图、开发语⾔、框架、环境。我们选择重新设计仪表盘的整体布局,在打包⼯具的选择上,我们⽤ Vite 搭建了新的开发环境,没有使⽤旧的 WebPack 开发环境,提⾼了开发效率。
在具体的代码实施阶段,因为我跟宇晴的跨时区因素,体验了⼀下近年很⽕的跨国团队的远程协作⽅式——⼤家在项⽬沟通群中提出问题,明确各⾃的分⼯,采⽤“接⼒式”的开发模式,分别在各⾃时区的⼯作时间,在 NebulaGraph 社区提供的开发机上进⾏代码编写。我们也经常会在群⾥提前商量时间,来进⾏⼩组组会,确保项⽬的顺利推进。⼩组组会的形式和内容,也随着项⽬开发阶段的深⼊,不断地在做调整适应,做到了灵活性和有效性的统⼀。
开源之旅不停
虽然可视化大屏是一个开源之夏的项目,项目总有结项之日。但是,开源之旅不停,后续我将会从以下方面继续走我的开源之路:
- 优化 UI 设计、提升代码质量
- 更多参与开源社区的建设中
在开源之夏感受开源的魅力
本次活动,我亲身体会了 NebulaGraph 社区友好的开源氛围。
而我认为开源社区的魅⼒在于,它不仅只为代码⾼⼿开放,还欢迎刚⼊⻔的⼩⽩。我在参与到 NebulaGraph 的社区前,并没有从零开始完整地搭建过⼀个⼤型的前端项⽬,缺乏对所学前端知识的整合。
⽽宇晴⼩姐姐是转码选⼿,今年还⾯临着严峻的应聘形势。我们在整个项⽬开发过程中,互帮互助,相互⿎励,不仅攻克了⼀个个具体的问题,更收获了信⼼和彼此之间的友谊。这⼀切的根源在于,我们勇敢地迈出了最重要的第⼀步,选择主动参与到开源之夏的活动中,并且幸运地加⼊到了 NebulaGraph 社区。在 NebulaGraph 社区,⽆论是负责技术的汪哥,还是负责运营的迷⼈的⼩姐姐,都向我们展示出了他们积极、宽容、耐⼼的友好开源氛围,帮助我们顺利完成了第⼀步的开源之路。
在开源中提升自我
很明显的是能⼒提升,在整个项⽬的开发过程中,我们各⽅⾯能⼒都有所提升,具体体现在以下两点:
技术和⽂档能⼒
我的调研技术⽅案、学习技术细节、应⽤技术解决具体问题的效率得到了显著提⾼。在实践中,⼀步步利⽤所学的零碎的技术知识,孕育出了完整的产品呈现。
开源之夏的官⽅组需要提供结项报告等书⾯材料,我们没有敷衍了事,⽽是选择了使⽤全英⽂的书写模式,认真地完成了组委会的要求。我认为⽆论是为了社区层⾯的与国际开源社区接轨的需要,还是为了个⼈层⾯的⻓期职业发展的考量,选择主动提升英⽂技术⽂档的能⼒,都是必要且正确的。
纵观前端发展的历史,⽆论是之前的 Flash、JQuery,还是如今的 Vue、React,都只是各个时期流⾏的代表技术⽅案。⽆论它们的设计多么精巧,代码多么规范,终有⼀天会被淘汰。掌握了对它们的使⽤,仅仅是达到了熟练运⽤“术”的⼯具层⾯。近年,前端各领域发展迅速,各种技术⽅案层出不穷,经常会有⼈调侃“学不动了” 。我也在刚⼊⻔的初期,陷⼊了努⼒⽅向的误区,以尝试各种新鲜的技术⽅案作为主要兴趣驱动点。随着项⽬的深⼊进⾏,我逐渐摸清了作为“道”的能⼒层⾯。我知道了作为职业⽣涯初期的菜⻦选⼿,应该着重养成良好的职业态度和职业习惯,⽽不是⼀味沉迷于粗浅地了解各种技术实现⽅案。加上⼤环境⻛云突变,对应届⽣就业趋势越发地不友好。如果只是将⾃⼰培养成专注“术”的技术熟练⼯,⽽不是关注“道”的技术爱好者,也将丧失⾃⼰作为应届⽣的优势。
沟通和协作能⼒
在项⽬开发的过程中,如何进⾏有效的沟通和协作成为了⼀个很重要的议题,尤其是在社会分⼯⽇益精细化的今⽇。我们三⼈⼩团队均是拿出⾃⼰的业余时间来参与到项⽬中,关于沟通协作⽅式、各⾃时间安排上,都进⾏了多次的讨论和改进。开源对多数人来说是⼀项业余爱好的任务,很少有⼈能够全职从事其中。⽽能有机会在职业⽣涯未正式开始之前,就参与到有公司导师牵头的开源项⽬中,也算是⼀⼤幸事,希望能为⾃⼰未来的团队协作能⼒奠定⼀个良好的基础。
开源之外的友谊
感谢开源之夏官⽅提供这次机会,让我有机会接触到 NebulaGraph 社区,认识了运营⼩姐姐、汪哥和宇晴。我认为任何东⻄想要做成,关键在于“⼈”的部分。有优秀的⼈才,就会有良好的氛围,就能孕育出有意思的产品。我跟汪哥、宇晴的三⼈⼩群,也逐渐成为了⽆话不谈的地⽅。虽然我们三⼈背景、身份各异,但产⽣了⾮常良好的化学反应。希望在以后的⽇⼦⾥,⼤家能够铭记这段有意思的经历,砥砺前⾏,奋发向上。
在这个不确定性⼤⼤增加的时代⾥,努⼒制造⼀些确定的⼩温馨。希望⼤家之后继续为 Nebula 和其他开源社区添砖加瓦,贡献⾃⼰的⼒量,共同缔造⼀种良好的氛围,照亮⼀束光,指引前进的⽅向。