專訪|江華禧:從參與者到引導者,開源可以是一條長行之路

開源之夏專訪持續(xù)開放中,歡迎已從開源之夏畢業(yè)或正在參與開源之夏活動的學生、導師一同加入專訪行動,掃描文末二維碼填寫專訪問卷,與大家分享你眼中的開源之夏!
本期采訪人物是陪伴開源之夏一起走過 4 年的參與者——江華禧,他在開源之夏 2023 作為 Apache SkyWalking?導師指導了項目?Skywalking Infra E2E 自測試 ?。
項目鏈接:https://summer-ospp.ac.cn/org/prodetail/237cc0238?list=org&navpage=org

# 自我介紹
ospp:請簡單介紹一下自己。
江華禧:大家好,我是江華禧,一名開源愛好者,目前主要活躍于 Kubernetes 和 Apache SkyWalking 社區(qū),同時也是 Apache SkyWalking Committer。我算是開源之夏的“老顧客”了,已經(jīng)連續(xù) 4 年參與了活動,身份也從學生轉變?yōu)榱藢煟@讓我對開源也有了進一步的理解與感悟,很高興能夠和大家分享。
ospp:最開始是如何接觸到開源的呢?參與開源的動機是什么?能否簡單介紹一下相關經(jīng)歷或者印象最深刻的項目經(jīng)歷?
江華禧:我是在讀研時才開始接觸開源的,可以說是通過開源之夏開始正式走上開源之路的。當時正好是我所在的中國科學院軟件研究所主辦了首屆開源之夏活動,所以知道了這個活動,這與我渴望參與開源的意向不謀而合,就果斷參加了。當時就是想借助參與開源項目來提高自己的能力,豐富項目經(jīng)驗。說起印象深刻的項目經(jīng)歷,skywalking-eyes 這個項目算是一個(在開源之夏2021設置了兩個相關任務),這個是我和社區(qū)導師一起發(fā)起的一個項目,它是一個開源許可證檢查工具,可以幫助掃描和修復開源項目中的一些許可證問題。某天我在瀏覽一個開源項目的 PR 時看到,reviewer 讓 PR 作者在源代碼頭部加上許可證信息,我立馬意識到,這不是正好可以引入 skywalking-eyes 這個工具。于是我提交了 PR,在持續(xù)集成流程中加入 skywalking-eyes 的許可證檢查,這樣就不再需要人工提醒了。然后我發(fā)現(xiàn)項目中的所有 header license 都少了一行文字,這更加凸顯了我們工具的必要性和實用性??吹阶约簠⑴c開發(fā)的一個小工具能夠幫助到一個有上萬 star 的知名開源項目解決實際問題,提升效率,我就感到無比有成就感。目前,skywalking-eyes 已在超過兩千個代碼倉庫中使用。
ospp:您認為開源的意義是什么?參與開源對于您的專業(yè)提升、就業(yè)選擇方面有什么幫助么?
江華禧:我覺得開源的意義是共享與共建。共享是指人們分享軟件及其源代碼,使其他人可以從中受益,這降低了獲取信息的成本,可以避免重復造輪子;而共建則是在共享的基礎上,大家各展所長,協(xié)作解決問題,共同創(chuàng)造價值。這種共享與合作的精神可以推動技術快速發(fā)展與創(chuàng)新。對于我而言,可以說開源改變了我的人生軌跡。首先是學業(yè)上,我在研究生階段專注于智能軟件工程的研究,旨在將人工智能技術應用在軟件工程的各個環(huán)節(jié)中,這需要我親身實踐并發(fā)現(xiàn)實際問題。而開源則提供了這樣一個窗口,讓我有機會深入?yún)⑴c到大型軟件項目的設計、開發(fā)、測試和發(fā)布等環(huán)節(jié)中,這為我的科研帶來了不少靈感?;谖以陂_源經(jīng)歷中發(fā)現(xiàn)的問題,我相繼開展了發(fā)布說明(release notes)和代碼審核評論(code review comments)自動生成的研究,研究成果發(fā)表在了 APSEC 和 ESEC/FSE 等軟件工程國際學術會議上。其次是在個人發(fā)展方面,參與開源讓我的溝通、編程、協(xié)作能力都得到了顯著提升,也積累了很多寶貴的項目經(jīng)驗,這讓我在就業(yè)市場上具有更大的競爭優(yōu)勢,我也因此得到了一份滿意的工作。
# 參與開源之夏
ospp:您已經(jīng)連續(xù)四屆參與開源之夏了,從學生開發(fā)者到導師,這其中的體驗如何?您認為如何才能成為一名合格的開源之夏導師?
江華禧:當學生的體驗很好,很幸運能遇到我的社區(qū)導師柯導(柯振旭),他給了我很多鼓勵和幫助,指引我進入開源的世界;但是成為導師后就覺得,當導師真不容易,首先得在諸位候選人中挑選出合適的學生來完成項目,接著在項目進行中要經(jīng)常與學生進行溝通指導,既要保持充足的耐心,還要及時給予正向的反饋,此外還得把握好指導的度,不然很容易變成有標準答案的考試,學生只是按部就班地寫代碼,沒有了自己的思考和鉆研。我覺得一名合格的開源之夏導師既要能夠在項目上盡心指導學生,讓學生能夠通過活動有所收獲和成長,也要傳播開源的理念與文化,引導學生愛上開源,享受開源,讓學生在活動結束后依然愿意參與開源。
ospp:從學生和導師的不同角度,您認為應該如何選擇適合自己項目以及如何設置適合學生開發(fā)的項目?
江華禧:站在學生的角度,我認為首先要選擇活躍、知名的開源社區(qū)。好的社區(qū)意味著成熟的協(xié)作流程、良好的氛圍、嚴謹?shù)拇a規(guī)范,以及有更大幾率遇到優(yōu)秀的導師,這些對于學生今后在開源方面的發(fā)展都是非常有幫助的;其次是以興趣為導向,結合自身未來的職業(yè)發(fā)展來選擇項目;然后要敢于走出舒適區(qū),選擇對自己有一定挑戰(zhàn)性的項目,讓自己能夠得到鍛煉有所成長。與前幾屆開源之夏相比,除了高年級的學生參與之外,越來越多的大一、大二學生也開始參與,作為導師,我覺得最好設置較為獨立、自閉環(huán)、難度適中的功能開發(fā)類項目,這樣學生可以更好地上手。
ospp:請簡單介紹一下您指導的項目及對項目成果的期望,目前開源之夏2023活動項目開發(fā)正在進行中,您指導的項目是否正常進行呢?
江華禧:我今年指導的項目是“Skywalking Infra E2E 自測試”,類似于編程語言的自舉,就是需要用這個 E2E 框架本身來對自己做 E2E 測試。對成果的期望就是希望通過這種方式編寫的測試用例覆蓋已有的主要功能,且能夠集成到 CI 中。目前指導的項目整體上來說在正常進行,就是進度稍晚于預期。
ospp:有什么項目開發(fā)建議可以分享給正在參與活動的學生?
江華禧:我覺得在項目中溝通比開發(fā)更重要,學生們一定要積極地和導師保持溝通,及時匯報進度和遇到的問題,避免出現(xiàn)一通埋頭苦干最后發(fā)現(xiàn)不符合導師的預期需要返工的情況。開發(fā)方面的話,一個是注意任務的分解,避免一次提交一個大 PR,而是合理拆分成小 PR;另一個是要注意代碼規(guī)范,寫好注釋,盡可能附上單元測試。這些都能夠幫助社區(qū)更好地 review 代碼,更快地合并。
ospp:您眼中的 Apache SkyWaling 是一個怎樣的開源社區(qū)?
江華禧:Apache SkyWalking (https://skywalking.apache.org/) 是一款針對云原生架構設計的應用程序性能監(jiān)控 (APM) 系統(tǒng),提供了一站式的 APM 解決方案。它支持分布式跟蹤、拓撲圖分析、指標聚合、日志管道、告警等功能,可以幫助開發(fā)人員了解應用程序的運行情況,特別是在微服務、服務網(wǎng)格等復雜環(huán)境中的可觀測性。SkyWalking 的生態(tài)非常強大,它提供了近十種編程語言探針,技術棧涵蓋前端、后端、基礎設施(kubernetes),以及 eBPF,甚至還開發(fā)了自己的數(shù)據(jù)庫。因此對于想?yún)⑴c開源的同學來說是一個不錯的選擇。
# 寄語
ospp:您認為如何才能更好的融入開源社區(qū),與他人協(xié)作分享經(jīng)驗,并在社區(qū)建立有價值的人際關系?
江華禧:我覺得這需要耐心和持續(xù)的努力。首先,你需要對項目的代碼有一定的了解,才有與他人交流的基礎;其次可以加入到社區(qū)的郵件列表或是 slack 等線上交流渠道,關注社區(qū)的動態(tài)和 issue,積極回答問題,提出新的想法及貢獻代碼,保持活躍;在對項目有了一定理解后,可以通過寫博客,做演講等方式分享你的知識;然后盡可能參與到線下的活動,與成員面對面地溝通,結識到志同道合的人。
ospp:有什么建議或鼓勵想對參與開源和開源之夏活動的同學們說的么?
江華禧:我想對未能中選開源之夏活動,但仍對開源心懷向往、抱有熱忱的同學們說,別感到氣餒,也不要放棄,落選不代表著就不能參與開源,參與開源的大門始終對每個人敞開。
END
專欄編輯:大夢
校對:校大山、江華禧
制圖:GoodWhite

專欄投稿請聯(lián)系開源小助手:kaiyuanzhixia 或專欄編輯:Hungryfish34(備注“專欄投稿”加速通過),或填寫下方專訪信息收集問卷。
