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