「開源訪談」劉文豪:在視覺化大屏中摸清技術前行方向

NebulaGraph發表於2022-12-30

初識開源之夏

結緣 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和其他開源社群添磚加瓦,貢獻⾃⼰的⼒量,共同締造⼀種良好的氛圍,照亮⼀束光,指引前進的⽅向。


謝謝你讀完本文 (///▽///)

想來近距離體驗視覺化大屏的酷炫流暢嗎?現在可以用用 NebulaGraph Cloud 來搭建自己的圖資料系統,搭載視覺化監控大屏輕鬆搞定線上業務吧~ NebulaGraph 阿里雲端計算巢現 30 天免費使用中,點選連結來用用圖資料庫吧~

想看原始碼的小夥伴可以前往 GitHub 閱讀、使用、(^з^)-☆ star 它 -> GitHub;和其他的 NebulaGraph 使用者一起交流圖資料庫技術和應用技能,留下「你的名片」一起玩耍呢~

相關文章