六個開源軟體開發的「潛規則」

2021-09-23 06:52:11 字數 1916 閱讀 8826

你想成為開源專案中得意滿滿、功成名就的那個人嗎,那就要遵守下面的「潛規則」。

正如體育界不成文的規定一樣,這些規則基本上不會出現在官方文件和正式記錄上。比如說,在棒球運動中,從比分領先時不要盜壘,到跑壘員跑了第一時也不要放棄四壞球保送。對於圈外人來講,這些東西很難懂,甚至覺得沒什麼意義。但是對於那些想成為 mvp 的隊員來說,這些都是理所當然的。

軟體開發,特別是開源軟體開發中,也有一套不成文的規定。和其它的團隊運動一樣,這些規定很大程度上決定了開源社群如何看待一名開發者,特別是新加入社群的開發者。

按部就班,循序漸進

在參與社群之前,比如開放源**或者其它什麼的,你需要做一些基本工作。對於有眼界的開源貢獻者,這意味這你需要理解社群的目標,並學習應該從**起步。人人都想貢獻源**,但是只有少量的人做過準備,並且樂意、同時也有能力完成這項艱苦卓絕的工作:測試補丁、複審**、撰寫文件、修正錯誤。所有的這些不受待見的任務在乙個健康的社群中都是必要的。

為什麼要在優雅地寫**前做這些呢?這是一種信任,更重要的是,不要只關注自己開發的功能,而是要關注整個社群的動向。

博聞強識,敦善不怠

當你在某個社群中建立起自己的聲望,那麼很有必要全面了解該專案和**。不要停留於任務狀態上,而是要去鑽研專案本身,理解那些超出你擅長範圍之外的知識。不要只把自己的理解侷限於開發者,這樣會讓你著眼於讓你的**有更大的影響,而不只是你那一畝三分地。

打個比方,你已經完成了乙個網路模組的測試版本。你測試了一下,覺得不錯。然後你把它開放到社群,想要更多的人測試。結果發現,當它以特定的方式部署時,有可能會破壞安全設定,還可能導致主儲存洩露。如果你將**視為乙個整體時問題就可以迎刃而解,而不是孤立地看待問題。這表明,你要對專案各個部分如何與其他人協作互動有比較深入的理解。讓你的補丁填坑而不是挖坑。這樣你朝成為社群精英的目標上又前進了一大步。

粗枝大葉,自尋煩惱

**提交完畢後你的工作還沒結束。如果**被接受,還會有一些關於這些更改的討論和常見的問答,還要做測試。你要確保你可以準時提交,努力去理解如何在不影響社群其他成員的情況下,改進**和補丁。

和諧相處,助人助己

開源社群不是自相殘殺的叢林世界,我們更看重專案的價值而非個體的貢獻和成功。如果你想給自己加分,讓自己成為更重要的社群成員、讓社群接納你的**,那就努力幫助別人。如果你熟悉網路部分,那就去複審網路部分,用你的專業技能讓整個**更加優雅。道理很簡單,頂級的審查者經常和頂級的貢獻者打交道。你幫助的人越多,你就越有價值。

八面玲瓏,面面俱到

作為乙個開發者,你很可能希望為開源專案解決乙個特定的痛點。或許你想要執行在乙個目前還不支援的系統上,抑或你很希望改革社群目前使用的安全技術。想要引進新技術,特別是比較有爭議的技術,最好的辦法就是讓人無法拒絕它。你需要透徹地了解底層**,考慮每個極端情況。在不影響已實現功能的前提下增加新功能。不僅僅是完成就行,還要在特性的完善上下功夫。

糜不有初,鮮克有終

開源社群也有許多玩玩就算的人,但是承諾了就不要輕易失信。不要就因為提交被拒就離開社群。找出原因,修正錯誤,然後再試一試。當你開發時候,要和整個**庫保持一致,確保即使專案發生變化而你的補丁仍然可用。不要把你的**留給別人修復,要自己修復。這樣可以在社群形成良好的風氣,每個人都自己改。

這些「潛規則」看上去很簡單,但是還是有許多開源專案的貢獻者並沒有遵守。這樣做的開發者不僅可以為成功地推動他們自己的專案,而且也有助於開源社群。

作者簡介:

matt hicks 是 red hat 軟體工程的副主席,也是 red hat 開源合作團隊的奠基成員之一。他歷時十五年,在軟體工程中擔任多種職務:開發,執行,架構,管理。

軟體高手的六個階段

程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行 或者是幾分鐘能寫幾行 或者是用什麼所謂的視覺化工具產生最少的 這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。乙個程式設計師的成長可分為如下六個階段。第一階段 能熟練地使用某種語言。這就相當於練武中的套路...

軟體生命週期的六個階段

軟體的生命週期可以分為定義階段 開發階段 維護階段 下面給出具體的分類以及在這些階段裡各自的任務 1 定義階段 問題的定義及規劃 此階段是軟體開發方與需求方共同討論,主要確定軟體的開發目標及其可行性。2 開發階段 需求分析 在確定軟體開發可行的情況下,對軟體需要實現的各個功能進行詳細分析。需求分析階...

軟體開發的六大階段

第一階段 調研階段 本階段我們將組成企業專案調研組到企業進行現場調研,企業也部分需組織相應人員進行配合。整個調研工作將歷時三星期到乙個月左右時間。調研內容按以下方面進行。1 公司整體情況調研 目的 對企業的業務狀況,組織結構,企業文化,發展戰略進行仔細了解,從整體上對企業進行把握。2 oa系統調研 ...