為什麼開發者擔心將程式碼公佈

csdn發表於2013-12-16

  本文作者Matthew MombreaCypress North的創始人、軟體工程師、科技愛好者,在這篇文章裡介紹了開發者為什麼害怕將程式碼公佈的四點原因。程式碼公佈不是什麼壞事,不僅能夠促進交流、提高開發者的個人技能,還能提升軟體質量。(以下為編譯)

  從開原始碼或者是公佈程式碼裡獲得的利益是無法估量的。也很難想象,在今天的程式設計世界裡,如果沒有免費的類庫、程式碼片段和技術教程的話,那會帶來多少麻煩。可是,為什麼大多數開發者如此擔心將他們的程式碼公佈出來呢?其實對於這個問題,沒有明確標準的答案,下面所提到的四點原因主要是代表那些絕大多數反對程式碼公佈者的觀點:

  1. 我的程式碼還不夠好

  這是最常見的反應,也許是出於謙虛的態度。幾乎每個公佈程式碼的開發者在一開始都會有這樣的感受。對於開發者來說,軟體是一種在表達能力上非常個性化的表現形式。解決問題的方案是多種多樣的,但是你所選擇的解決方式可以代表你的個性和技術水平。

為什麼開發者擔心將程式碼公佈

  從另一個角度來看,有多少開發者沒有看過別人的程式碼?有多少開發者沒借鑑過別人的基礎程式碼?估計開發者大部分時間都是在看別人的程式碼來完善自己的程式碼程式。甚至有的時候,當你在看別人的程式碼的時候,發現程式碼裡有問題或者解決方案是無效的,你可能會認為這個開發者一定是笨蛋!或許你會出於好意提醒那個開發者如何修改這個問題,併為他節省了很多時間,但結果呢,你得到的回報可能連一句謝謝都沒有。這也許就是為什麼大多數開發者不願意公開自己的程式碼,怕被指出錯誤後覺得沒面子。事實上,只要儘自己的力量把工作做好,為那些需要程式碼的人提供你的程式碼,幫助別人在程式開發過程中獲得好處,大部分人還是會感謝你的。

  2. 不希望別人非議自己的軟體程式

  的確,這是另一個很自然的回答。現在網際網路就像是一個大熔爐,什麼樣的開發者都有,有的喜歡藏起來使用匿名,有的程式設計師喜歡背地裡搞點小手段。現在很多開發者素質不是很高,總是喜歡把任何事都搞得像是在競賽一樣,別人有點小的成就了,他就開始以不同的方式在那裡挑三揀四、追毛求疵,說些風涼話。在這裡不得不說,看過外文網站的人估計都會有這樣的感覺:文章下面的評論內容基本上是比較乾淨的、積極的,不像在國內的網站上,把別人的文章當成是打口水仗的戰場。不過這可能是大的環境所導致的。於是乎,有些程式設計師在這樣的環境下不得不變得具有防禦意識,更加任性,與此同時,自我意識更加強烈。

為什麼開發者擔心將程式碼公佈

  不過事實是這樣的,作為一個程式設計師,必須要有能夠接受批評的心胸。同時,還要能夠甩掉心理包袱,把批評當作是一種動力。換句話說,建設性的批評能夠幫助開發者快速成長,節省時間去經歷更多的經驗教訓。

  3. 事關安全問題

  安全的確是不可忽視的大事,任何需要公佈的東西都要考慮到是否會暴露敏感資訊或是訪問協議等等。如果你認為我們談論的東西和安全或敏感資料加密有關的話,這裡建議你在開發過程中儘可能早些時間公開程式碼。通過這種方式,將你設計的安全保密方法公佈出來,如果你的方法經不起推敲的話,肯定會有一些專業知識豐富的專家幫助你解決問題:儘早的查出程式策略裡的漏洞,或者是你根本沒注意到的錯誤。

為什麼開發者擔心將程式碼公佈

  最後,總結別人所提供的方式方法,你所獲得的就是一個更安全的最終產品。任何安全措施,只要能夠被瞭解程式碼的外人輕輕鬆鬆破解的話都不是安全程式碼。可以想想OAuth 2.0的安全事例,它的開放設計和編碼都是借鑑外部思想和安全方法的。

  4. 擁護自己的技術思想

  也許大多數人對現在這個網路世界不是很信任,因此公眾對於這方面的擔憂達到了一個荒謬的高度。就像有些人大聲跟你說:我有一個巨好的想法嗎想知道嗎?不過沒有NDA(保密協議)我是不會輕易告訴你的。事實上,沒人會偷你的想法,你所做的事情可能已經存在了,或者別人已經開始做了(甚至是開源的)。

為什麼開發者擔心將程式碼公佈

  這裡並不建議你將整個專案的開發方案和整個商業模式進行開源處理。這裡只是建議將可以共享並能更好的使用的元件和類庫進行開源。這裡以Square為例,Square是一個快速發展且很有價值的公司,它已經向外界公佈了一個龐大的程式碼庫。可能在外人看來這會阻礙它在核心業務上的前進步伐,但是,它所公佈的特定程式碼是不可重複使用的。Square所釋出的程式碼對於很多人來說,它改善了Android和iOS軟體質量。作為回報,來自世界各地的開發者免費為Square的類庫貢獻改善措施。

  結論

  將自己的程式碼公之於眾聽起來很嚇人,實際上你獲得的好處比失去的東西要多的多。別人看了你的程式碼之後,你的程式碼一定會比被看之前好很多,你接受批評的能力也會有所改善,同時,別人也能從你的分享過程中獲得很多好處和啟發。

  原文:IT World

相關文章