專訪|Dromara 社區(qū) 侯欣雨:代碼對所有人都是平等的

開源之夏專訪持續(xù)開放中,歡迎已從開源之夏畢業(yè)或正在參與開源之夏活動的學(xué)生、導(dǎo)師一同加入專訪行動,掃描文末二維碼填寫專訪問卷,與大家分享你眼中的開源之夏!
本期采訪人物是開源之夏 2023 活動 Dromara 社區(qū)中選學(xué)生侯欣雨同學(xué),她所承擔(dān)的項目是為規(guī)則引擎 LiteFlow 提供基于 Redis 規(guī)則存儲適配。
項目鏈接:https://summer-ospp.ac.cn/org/prodetail/23ee40018

# 關(guān)于侯欣雨
OSPP:請簡單介紹一下自己。
侯欣雨:大家好,我叫侯欣雨,目前在中國科學(xué)院大學(xué)電子信息專業(yè)就讀。今年參與了 OSPP 2023 的活動,有幸通過這次活動成為了 Dromara 社區(qū) LiteFlow 項目的 commiter,現(xiàn)在在為項目做一些優(yōu)化和維護工作。
OSPP:據(jù)了解你有著非常豐富的項目經(jīng)歷與獲獎經(jīng)驗,這些項目經(jīng)歷和經(jīng)驗對你的學(xué)習(xí)和深造有什么幫助?你是如何平衡項目、賽事和業(yè)余生活的呢?
侯欣雨:我在本科的時候參與過數(shù)學(xué)建模、挑戰(zhàn)杯之類的比賽,讀研的時候參與了一些項目的開發(fā),也在開發(fā)崗實習(xí)過一段時間。我覺得做項目首先是可以提升自己的技術(shù)水平和實踐能力的,很多時候只有在真正做一個項目或是解決一個問題的時候,才能發(fā)現(xiàn)并理解那些學(xué)過的理論知識;很多問題也只有在實踐時才會遇到,從而激勵自己去探究,讓自己的技術(shù)知識更扎實。其次,從最初的不了解到真正完成好一個項目,這種成就感會讓我更有動力和信心去做好下一件事。當(dāng)然,這些經(jīng)歷也會給簡歷增加不少助力。
至于項目和學(xué)習(xí)生活的平衡,有時確實是很難在時間上做到平衡的,總體上我覺得最重要的基石永遠是工作效率。比如按照“四象限法則”,把事情按照重要和緊急程度劃分,均衡到每天完成一部分,在每件事上提高一點效率,其實最終任務(wù)都可以完成。如果一天是高效且充實的,對人的精力來說也是一個正反饋。

# 參與開源之夏與開源
OSPP:你是如何了解到并決定參與開源之夏活動的?
侯欣雨:我是今年 4 月份在??团既涣私獾降?,后來在 OSPP 官網(wǎng)上查看了一些去年的項目和活動經(jīng)驗分享,意識到這是個很好的增加項目經(jīng)驗、接觸業(yè)界需要的機會,于是仔細留意了申請時間和報名流程。在正式申請前也看了很多去年的中選項目申請書和今年的備選項目,很多申請書都讓我感嘆參與活動的同學(xué)的優(yōu)秀,能有行業(yè)內(nèi)專業(yè)嚴(yán)謹(jǐn)?shù)膶?dǎo)師指導(dǎo)去參與工業(yè)界需要的項目對我來說是很有吸引力的。
OSPP:開源之夏活動與你之前參與的比賽和項目有什么區(qū)別?
侯欣雨:從我個人來說,我以前做過的很多比賽是停留在理論層面上的,一些練手的個人項目也大多是為了熟悉技術(shù)棧。開源之夏的不同一方面在于他項目是貼近工業(yè)需求和用戶實際問題的,有大量的用戶在真正使用;另一方面是開源的特點使得用戶會幫助社區(qū)項目發(fā)現(xiàn)問題、提出問題甚至解決問題,代碼面向的是成千上萬的使用者,這造就了開源代碼必須要精益求精,不能止步于“能用就行”,這也是這次活動給我最大的鍛煉。
OSPP:請簡單介紹一下你所在的 Dromara 社區(qū)?
侯欣雨:Dromara 是一個國內(nèi)許多優(yōu)秀開源愛好者組建的 Java 開源社區(qū),在我眼里 Dromara 是一個組織規(guī)范、友善、年輕、充滿潛力和可能性社區(qū)。接觸到的很多社區(qū)成員都是友好且很有實力的開發(fā)者,很多求助者的問題都能被很快解答。社區(qū)對新人也很包容,有很完善豐富的文檔,鼓勵大家加入開源。Dromara 每個月的月會都會跟蹤一下各個項目的近期任務(wù),討論下最近的 issue,這樣規(guī)范負責(zé)且有活力的生態(tài)也讓我更有興趣和動力去參與開源。項目結(jié)項加入社區(qū)后,還收到了社區(qū)送的獎狀水晶碑和 LiteFlow 的 T 恤等周邊文創(chuàng)。
關(guān)于?Dromara?開源組織
dromara 開源組織是由國內(nèi)最頂尖的開源項目作者共同組成的開源組織。目前擁有 10+GVP 項目,總 star 數(shù)量超過 7 萬,構(gòu)建了上萬人的開源社區(qū),有成百上千的公司在使用 dromara 社區(qū)的開源項目。
官網(wǎng):https://dromara.org/
OSPP:請簡單介紹一下你在本屆活動中承擔(dān)的開源項目,在開發(fā)過程中有遇到什么困難與挑戰(zhàn)么?你是如何克服的?
侯欣雨:這次活動我參與的是“為規(guī)則引擎 LiteFlow 提供基于 Redis 規(guī)則存儲適配”項目。項目用到的技術(shù)棧是我很熟悉的,最大的難點在于項目方案的設(shè)計以及一些細節(jié)上的權(quán)衡考量。在 Redis 規(guī)則存儲支持平滑刷新這個功能上,最初我只簡單的考慮使用 Redis 已有的訂閱鍵空間機制實現(xiàn),但與導(dǎo)師溝通后,我發(fā)現(xiàn)開啟這個機制會對 Redis 性能造成很大影響,而實際業(yè)務(wù)場景中,Redis 作為抗高并發(fā)、提升性能的中間件,性能損耗是不可接受的。在后續(xù)思考其他可行方案時,也發(fā)現(xiàn)了不同的方案在實時性和性能等方面無法全面顧及,考慮到不同的用戶需求,最終實現(xiàn)了兩種方案,交由用戶根據(jù)情況自行選擇。
LiteFlow 是一個測試用例完善且行覆蓋率達 90% 的項目,導(dǎo)師曾告訴我“測試用例才是區(qū)分一個開源項目優(yōu)秀與否的關(guān)鍵因素,決定了項目能走多遠”,最初我對單元測試的理解并不深,在測試環(huán)節(jié)也遇到了一些問題,后續(xù)在導(dǎo)師的建議下,對核心代碼做出了一些調(diào)整改進,通過層次和包裝來更好的支持測試。這種代碼設(shè)計思路在后續(xù)的許多開發(fā)中都可以應(yīng)用,也讓我對代碼設(shè)計和測試用例都有了更深的理解。
OSPP:在項目開發(fā)過程中,導(dǎo)師和社區(qū)成員們?yōu)槟銕砹四男椭?/p>
侯欣雨:整個開發(fā)過程中,導(dǎo)師不僅在方案上會給出建議和思路,每次提交的代碼還會逐行 review,提出細致的優(yōu)化建議,導(dǎo)師的一些設(shè)計思路也給了我很大的啟發(fā)。在提交 PR 時,社區(qū)成員也會針對性的提出建議,讓整體代碼更優(yōu)雅更完善。
OSPP:今后是否打算繼續(xù)參與開源社區(qū)或開源項目?為什么?
侯欣雨:之后會繼續(xù)參與開源社區(qū)的活動,這次活動結(jié)束后有幸加入了 LiteFlow,參與了一些其他特性的開發(fā),開發(fā)過的功能在上線后得到了一些使用者的建議,后續(xù)會繼續(xù)積極維護和完善項目。社區(qū)和項目的氛圍我也很喜歡,可以接觸到很多優(yōu)秀的開發(fā)者,有更多機會感受一個功能的開發(fā)在一個項目背后的思考,也希望在開源道路上結(jié)識更多優(yōu)秀的小伙伴。
OSPP:你在參與開源之夏活動的過程中收獲了什么?對于開源和開源社區(qū)有什么新的認(rèn)識么?
侯欣雨:這次開發(fā)是我第一次參與開源,這次經(jīng)歷對我在項目中針對某個需求功能的設(shè)計和代碼編寫能力都有很大的提升。在項目最初的方案設(shè)計階段,導(dǎo)師告訴我需求的框架設(shè)計遠比具體實現(xiàn)要重要,這讓我對開發(fā)有了更成熟的理解,對項目整體也有了更多的了解;在實際代碼編寫上也會更加遵守規(guī)范,做到比之前的代碼更優(yōu)雅。第一次參與開源帶給我的收獲也不僅是技術(shù)能力上,加入到開源社區(qū)會讓我更有興趣去精進自己的技能,有更多的動力去深入理解一個項目,從而對其優(yōu)化和改善。
特別要感謝我的導(dǎo)師鉑賽東老師,在開發(fā)過程中知無不言,耐心解答,認(rèn)真把控代碼質(zhì)量,給我的思路和優(yōu)化建議讓我學(xué)到了很多,老師的鼓勵和肯定給了我在開源和技術(shù)道路上走下去的信心。老師是個很有開源精神和情懷的人,他的專業(yè)和嚴(yán)謹(jǐn)是我作為開發(fā)者的榜樣。
# 寄語
OSPP:你身邊了解和參與開源項目的同學(xué)多嗎?你認(rèn)為參與開源活動和社區(qū)貢獻對于在校生的學(xué)習(xí)和專業(yè)提升、就業(yè)選擇方面有哪些幫助?
侯欣雨:我身邊參與開源項目的同學(xué)還是不太多,大部分同學(xué)可能都會像我最開始一樣覺得自己能力不足以參與或是沒有意識到自己也可以參與項目共建。開源之夏給了學(xué)生一個接觸開源的機會,這幾年也越來越多人了解到了開源,相信以后開源的參與者會越來越多。
我覺得開源活動對學(xué)生的幫助很大,從專業(yè)提升角度來說可以接觸到一些頂級的項目,從中學(xué)習(xí)到很多設(shè)計思想和實際開發(fā)經(jīng)驗,提升自身的工程能力;從就業(yè)角度來說,除了增加項目經(jīng)歷,認(rèn)識到行業(yè)內(nèi)優(yōu)秀開發(fā)者外,開源活動也提供了一個更廣闊的視角,會看到很多不止于前后端的不同就業(yè)路線,可以從廣泛的方向中找到自己的興趣所在。
OSPP:社區(qū)導(dǎo)師對你的評價非常高,你有著良好的代碼功底、嚴(yán)謹(jǐn)?shù)倪壿嬆芰σ约皬姶蟮淖灾鲗W(xué)習(xí)能力,可以跟我們分享一下你的學(xué)習(xí)方法么?對于提高代碼質(zhì)量、溝通問題、解決問題有什么好的建議?
侯欣雨:其實沒有什么特別的方法,對代碼來說我覺得就是要多寫和多看,多看其他人質(zhì)量高的代碼,再在項目中多寫自己的代碼,對項目的需求有明確的理解更有助于理清代碼的邏輯思路。溝通問題上,我覺得社區(qū)成員都很友好,對不理解的地方或者不確定怎么寫更好的情況都可以大膽求助,當(dāng)然前提是在自己已經(jīng)嘗試解決或者搜索過相應(yīng)問題的基礎(chǔ)上,社區(qū)內(nèi)成員對不同解決方案的探討也能開闊自己的思路。
OSPP:想對正在學(xué)習(xí)或想要從事技術(shù)工作的女生們說些什么呢?
侯欣雨:在我之前的實習(xí)和日常學(xué)習(xí)中發(fā)現(xiàn)從事開發(fā)的女生確實相對來說更少一些,我覺得女生從事技術(shù)工作首先就是不要自己給自己設(shè)限,不要潛意識認(rèn)為女生不能做或者做不好技術(shù)。在腦力勞動上,女生也并不存在天然相對于男生的劣勢,很多時候是自己對自己的不認(rèn)同影響了自己的表現(xiàn)。代碼對所有人都是平等的,只要自己感興趣并付出足夠努力,任何人都可以從事任何喜歡的技術(shù)領(lǐng)域,無論是否從事技術(shù)都不該束縛住自己~
OSPP:有什么話想對計劃參加開源之夏活動的學(xué)弟學(xué)妹們說?
侯欣雨:開源可能對很多人來說還有些陌生,開源之夏給了在校學(xué)生一個很好的接觸開源的機會,無論是從技術(shù)學(xué)習(xí)還是就業(yè)角度上,勇敢的邁出第一步,你會收獲一段很值得的經(jīng)歷。開源之夏的項目范圍很廣,記得要提前關(guān)注社區(qū)和項目,根據(jù)自己的方向和技術(shù)棧選擇一到兩個最感興趣的項目。對項目和需求有一定了解的基礎(chǔ)上,主動與導(dǎo)師溝通很重要,導(dǎo)師的建議很大可能會幫助你更好的寫出項目申請書。申請書是決定項目中選與否最重要的因素,可以查看往年一些優(yōu)秀的中選申請書,最關(guān)鍵的仍然是要從中體現(xiàn)自己對項目的理解、實際的開發(fā)能力和完成項目的決心。項目的導(dǎo)師都很開放包容,可以大膽提出問題,積極與導(dǎo)師溝通,更好地融入開源社區(qū)。
END
專欄編輯:大夢
校對:校大山、侯欣雨
制圖:GoodWhite

專欄投稿請聯(lián)系開源小助手:kaiyuanzhixia 或?qū)诰庉嫞篐ungryfish34(備注“專欄投稿”加速通過),或填寫下方專訪信息收集問卷。
