關於“開源”的思考

2017-05-18    分類:程式設計師人生、首頁精華0人評論發表於2017-05-18

本文由碼農網 – LifeApprentice原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

最近,我經歷了一次有意思的討論。討論的主題是程式碼開源,尤其是指那些用作商業用途的程式碼,比如用於創造你自己的產品或者服務的程式碼。以下就是這次討論所得的,對“開源”的各個方面的思考。同時我也真心希望讀者能進行討論,分享自己的經驗。

質量

不論何時,只要你決定公開地做一件事,你就會傾向於對其付出更多的努力,力求將其做好。不管是一場演講,一次營銷活動,還是一個軟體專案。只要你想把這個軟體專案公開,你就絕不會希望你提交的程式碼糟糕透頂,使你蒙羞。正因為其他人可以輕易地瀏覽,甚至評價你的程式碼,所以你會開始思考,自己到底在做什麼。另一方面,你也希望寫出漂亮而有效的程式碼,這樣,其他的程式設計師會欣賞,並在他們自己的程式碼中使用你的方案,或者對你的程式碼提出修改意見。

社群

不管你使用的是哪一種技術,也不管你做的專案有多小眾,可以肯定的是,只要你付出最低限度的努力,在一些論壇或者使用者小組中為你的專案做點宣傳,就一定會有人對你的專案感興趣。當你的程式碼出現第一個分支,你就可以為自己感到驕傲,因為有人覺得你的程式碼有用。這整個過程實際上與寫部落格非常相似。所有人都很喜歡讀那些能夠解答我們正在面臨的問題的文章。同時,我們也很喜歡使用一些免費和開源的軟體,不管它是一款應用還是隻是我們使用的一個庫。既然其他的開發者們用他們自己寶貴的時間,分享了他們的成果,為什麼我們不分享點什麼呢?不要只做一名消費者,也做一名生產者吧:  )。

透明

在應用中處理使用者資料是常常發生的事,因此,透明就顯得尤為重要。部分使用者對於使用我們的服務會心生疑慮,因為他們會懷疑我們用他們的私人資料做一些不太正當的事。而當你的服務物件是政府部門時,這一點更是非常關鍵。如果程式碼不是開源的,勢必會產生懷疑。反之,如果你的專案是開源的,那麼所有人都能看到,並確認這款應用並沒有侵犯他的個人隱私,沒有洩露他的個人資料,也沒有後門程式等。這可能是讓使用者相信你的唯一方法。

效益

不管你是獨自開發一個專案,還是管理著一群人,隨著你的專案越來越大,程式碼開源都將會給你帶來巨大的效益。對你個人來說,你將會更容易獲得一份好的工作。因為你的目標公司,可以輕易地瀏覽到你寫的程式碼和你的思路。同樣的道理,如果你經營的公司是程式碼開源的,那麼,潛在的客戶們就可以輕易的看到你的程式碼,並判斷你的服務是否是他們想要的。

管理

不便於管理可能是開源的一個劣勢。當你在管理一個大專案時,好幾只團隊同時工作,許許多多的參與者們都會提交他們的修改。此時,你就必須要做好兩件事——首先,堅持按照最初的計劃,進行核心部分的開發,同時你還應該處理所有發現的bug或者需要加強的地方,給所有員工的工作排出優先順序。如果你完全不考慮(或者很少考慮)參與者的建議,那麼很可能會民怨四起。所以,對於開源專案來說,這個問題可能比較棘手。

禁忌

當然,我們不能讓所有的專案都開源。大部分的公司都不希望將程式碼公開,這是完全可以理解的。比如,有些專案可能使用了某種特別的演算法,公開則有可能被盜用等等。不過,如果你只是在開發自己的專案,不要害怕與世界分享你的經驗和知識。實際上,不會有人真的偷你的程式碼,而你卻為整個開發者社群提供了高質量的程式碼。

譯文連結:http://www.codeceo.com/article/think-about-open-source.html
英文原文:Open source implications
翻譯作者:碼農網 – LifeApprentice
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章