『主动些,你与“开源”才有故事可言』—— 新晋 PMC 成员端正强专访
自 2016 年 1 月正式開源,ShardingSphere 的開源之路已走過了 6 年多的時間。在這 6 年中,有越來越多的開發(fā)者不求回報主動參與到 ShardingSphere 項目建設(shè)中來,推動著項目與社區(qū)的繁榮。同時 ShardingSphere 社區(qū)的成長,也離不開社區(qū)成員在代碼、案例、文檔等諸多方面的持續(xù)貢獻,尤其是社區(qū)中 18 位 PMC 成員,他們不僅是在各個崗位上的團隊核心,也是熱衷于維護 ShardingSphere 社區(qū)的技術(shù)中堅力量。
2022 年 7 月,Apache ShardingSphere PMC 團隊又迎來了一位新成員--端正強,目前就職于 SphereEx,擔(dān)任高級中間件工程師。主要負(fù)責(zé) ShardingSphere 內(nèi)核模塊的研發(fā),對于海量數(shù)據(jù)的分庫分表有著豐富的實踐經(jīng)驗。
自 2018 年接觸到 ShardingSphere 社區(qū)后,端正強從最基礎(chǔ)的文檔翻譯工作開始,一步步深入到 ShardingSphere 能力的核心。在他看來,因為熱愛,所以堅持。對于編程和開源的熱愛,正是推動他走上代碼這條『不歸路』最核心動力。
一、比起“被動索取”
我在“主動付出”的過程中收獲更多
工程師接觸開源大多是源于工作需要,由于在工作中使用了某些開源軟件,為了更好地掌握這項技術(shù),就需要深入學(xué)習(xí)項目源碼的核心原理。一步一步,了解得越多,所做的貢獻也越來越多。
端正強也是如此。起初他主要負(fù)責(zé)公司內(nèi)部 SASS 系統(tǒng)商品中心的維護,后面隨著公司業(yè)務(wù)的快速發(fā)展,商品數(shù)據(jù)不斷增長,數(shù)十億的商品數(shù)據(jù)給單機 MySQL 數(shù)據(jù)庫帶來了巨大的壓力,為了提升系統(tǒng)的穩(wěn)定性和查詢性能,他主導(dǎo)了公司內(nèi)部商品系統(tǒng)分庫分表的選型和落地。在對市面上多款分庫分表工具的考慮后,綜合考慮社區(qū)活躍度和功能完善度,最終毫無懸念地選擇了 ShardingSphere。但是在落地 ShardingSphere 的過程中,他發(fā)現(xiàn)其中仍然有不少 SQL 無法支持。為了解決這些問題,減少整體業(yè)務(wù)改造的成本,端正強選擇親自參與到 ShardingSphere 社區(qū)中來完善這些 SQL,并最終將成果反饋到社區(qū)中。
在參與過程中,來自社區(qū)的干預(yù)是極少的,這最大化發(fā)揮了每個人思維層面的不同的優(yōu)勢,這也是開源項目往往會越來越龐大的原因。但,自由度高并不意味著沒有方向。
社區(qū)之所以被稱作社區(qū),協(xié)作、互助就成為離不開的關(guān)鍵詞,對于一個活躍的社區(qū)來說,更是如此。端正強對于社區(qū)印象最深刻的就是社區(qū)前輩耐心地指導(dǎo)和幫助,事無巨細。從完成最初一個 Scaling 文檔翻譯并提交后,多位社區(qū)的 PMC 和 Committer 留下了多條 review 建議。這種認(rèn)真的態(tài)度,在不求回報的開源社區(qū)中,是彌足珍貴的。
二、『熱愛』
是我堅持開源最核心的動力
和大多數(shù)開發(fā)者參與開源的經(jīng)歷一樣,端正強也循著由淺入深、從入門到精通的路徑。在個性深處,也有著那么一股子『軸勁』。
在大學(xué)地理科學(xué)的地理信息系統(tǒng)、遙感分析等課程中,需要編寫代碼對系統(tǒng)進行二次開發(fā),以及使用算法對遙感影像進行分析變換,編程能力在其中發(fā)揮出了相當(dāng)重要的作用。后續(xù)他又參與了數(shù)學(xué)建模、可視化數(shù)據(jù)分析等編程實踐比賽,這些經(jīng)歷都幫助他打下了良好的編程基礎(chǔ),也埋下了代碼的種子。最后選擇走上工程師的道路,也是由于對編程的熱愛,希望將自己的興趣和工作結(jié)合到一起,不斷地追求進度和突破。
最開始參與 ShardingSphere 項目,端正強是從最基礎(chǔ)的文檔和單元測試開始,然后逐步學(xué)習(xí)內(nèi)部實現(xiàn)。有了一定積累之后,又參與了接入端 API 的改造,進而了解到 ShardingSphere 內(nèi)核的邏輯。后續(xù)在社區(qū)的配合下,通過深入學(xué)習(xí)內(nèi)核邏輯,逐步貢獻了 INSERTSELECT, REPLACE INTO 等 SQL 語句的支持。這些,都得益于端正強自己能在社區(qū)中堅持下來。
很多工程師都會愿意參與到開源社區(qū)中來,一次兩次圖個新鮮還可以,但時間一長,相較于如此大基數(shù)的開發(fā)者群體來說,能堅持下來的無疑就屬于鳳毛麟角了。
當(dāng)然也可以理解,開源對于大多數(shù)人來說都是一次『圖新鮮』的過程,長期不求回報的奉獻無異于個人『苦修』。最開始的無人問津、沒有回報等個中滋味并不好受。如果不是發(fā)自內(nèi)心的熱愛和認(rèn)同開源,一定很難堅持下來。
端正強認(rèn)為自己之所以能持續(xù)投入到開源項目中來,最主要還是源于一名理工男對編程的喜愛以及對開源文化、開源模式的認(rèn)可。此外,『Apache』在開源領(lǐng)域也是一塊『金字招牌』,能夠為 Apache 旗下的頂級開源項目貢獻核心代碼,對于技術(shù)人來說這種榮譽感是不言而喻的。
三、社區(qū)與公司
如果能做同一件事就最好不過了
一個人可以走得很快,但一群人可以走得更遠。而這,也是端正強選擇加入到 SphereEx 的原因。
2021 年,Apache ShardingSphere 作者張亮創(chuàng)立了商業(yè)化公司 SphereEx。作為一家由全球頂級開源項目 ShardingSphere 脫胎而出的商業(yè)化公司,SpereEx 比任何人都清楚開源對于工程師的價值,不僅在公司層面非常倡導(dǎo)工程師加入開源,在日常工作層面更是為員工提供了全職做開源的機會。因此,在加入到 SphereEx 后,所做的事情和之前并沒有太大差異。截止目前,在端正強的日常工作中,有很大一部分是依然負(fù)責(zé) ShardingSphere 內(nèi)核模塊的維護和研發(fā),包括數(shù)據(jù)分片、加解密、讀寫分離、聯(lián)邦查詢等功能。
開源理念和 ShardingSphere 技術(shù)布道,已經(jīng)成為端正強日常工作中非常重要的一部分。正是因為 ShardingSphere 和 SphereEx,極大擴展了端正強本身的技術(shù)視野,也讓他能夠有機會邁入到分布式數(shù)據(jù)庫這個新興領(lǐng)域。
在參與開源的過程中,許多人會感覺到迷茫,難以了解這個項目的全貌。對于端正強來說也是如此,他在向 ShardingSphere 貢獻的過程中遇到的最大困難就是對于項目的把控不足。由于對項目缺乏整體理解,往往可能“只見樹木,不見森林”,解決一個問題可能會在其它方面引入一個新的問題,對項目缺乏整體把控一度讓他非常苦惱。而這也是 SphereEx 公司成立的價值所在。
在 SphereEx 公司成立后,相當(dāng)于 Apache ShardingSphere 項目本身擁有了更加穩(wěn)定的更新團隊,項目管理和發(fā)展路徑也更加科學(xué)。
四、從?Committer?到?PMC
榮譽與責(zé)任并舉
從項目 Committer 到 PMC,也就意味著從參與者變成了管理者,這種角色的轉(zhuǎn)變,更多體現(xiàn)在內(nèi)心責(zé)任感層面上。作為項目的 Committer,可能只需要關(guān)注自己認(rèn)領(lǐng)的任務(wù)并將其實現(xiàn)就可以了。但對于 PMC 而言,不僅需要參與功能的研發(fā),還需要時刻關(guān)注社區(qū)的發(fā)展,積極引導(dǎo)新的開發(fā)者參與社區(qū),讓社區(qū)有源源不斷的新人加入進來,保持社區(qū)長期的活躍度。
而作為新晉 PMC,面對開發(fā)者,端正強也給到了自己的建議:
首先應(yīng)明確自己感興趣的方向,ShardingSphere 中含有 200 多個模塊,可以選擇一個自己感興趣的模塊作為起點進行參與;
閱讀該模塊的功能和設(shè)計文檔,文檔能夠幫助快速建立起你對功能的整體認(rèn)識;
在社區(qū)認(rèn)領(lǐng)標(biāo)記為 good first issue 的任務(wù),通過這些入門級任務(wù)可以熟悉參與開源的流程規(guī)范,通過單元測試的閱讀,也能夠加深對代碼邏輯的理解;
積極參與相關(guān) bug 的修復(fù),不用擔(dān)心自己所做的會不會有問題,ShardingSphere 社區(qū)的導(dǎo)師也會在 review 過程中提供建議,幫助大家更好地融入社區(qū);
在對某個模塊有比較深刻的理解之后,可以延伸到其它模塊,了解不同模塊之間的關(guān)系,逐步對 ShardingSphere 整體建立全局認(rèn)識。
最后,作為一個包容、開放的全球開源社區(qū),ShardingSphere 歡迎越來越多的小伙伴加入進來,共同完善 ShardingSphere 周邊能力與數(shù)據(jù)庫生態(tài)。
Apache ShardingSphere 項目地址:https://github.com/apache/shardingsphere
總結(jié)
以上是生活随笔為你收集整理的『主动些,你与“开源”才有故事可言』—— 新晋 PMC 成员端正强专访的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 统信UOS下Gedit文本编辑器的安装方
- 下一篇: 【neovim 技巧系列】quickfi