資訊中心管理
5 個開發工程師 使用 Open Source 常見錯誤
前往目錄
即使有了「敏捷」的開發環境,仍會因問題而失敗,我們列出開發人員在使用 OpenSource 時最常見的五個錯誤,希望能減少開發的成本及時間

開源概念日漸蓬勃,感謝奉獻這一切的開源社群及團體,
為幫助其他人更快地構建創新產品而付出的努力和無私精神,
讓我們能便利的將程式碼添加到所需的應用程式和網站中,
使得許多開發人員、企業及組織節省相當龐大的時間和金錢。

 

9 4

不幸的是,現今資訊科技發展快速蓬勃,開發團隊從未獲得他們應得的肯定,大家的目光總是放在具有吸引力的產品上。然而,我們體認到即使開發團隊具有「敏捷」的開發環境,能夠協助團隊即早發現問題,但還是會因問題的發生而導致團隊失敗。因此我們列出開發人員在使用OpenSource時最常見的五個錯誤,希望能減少開發的成本及時間。

09 1


#1複製貼上開源程式碼

Copy&PasteOpenSourceCode對於開源程式碼的應用,開發人員最常犯的錯誤是直接複製和貼上程式碼,而未注意到在目前應用的環境中是否又增加其他不需要的程式碼。


程式設計師BillSourour在其發表的Copy.Paste.Code?文章中提出,如果您了解像是Google、Github和StackOverflow等運作方式,複製貼上程式片段是沒問題的,但是相同邏輯並不適用於開源程式碼。為了避免這類錯誤,開發人員應清楚了解哪些程式碼及程式碼哪些部分,是可以直接在應用程式上複製貼上,哪些是不可以直接使用的,而非概括承受。

#2每天都應該重視資訊安全SecurityAllDayEveryday

09 2當人們想到開源程式碼,首先會想到的問題通常是,如果程式碼開放了,真的夠安全嗎?雖然有些人會認為封閉式商業軟體或付費式商業軟體看起來更安全,但是開源程式碼因開放的特性,越多開發人員使用,就越容易提高安全性。反之,封閉程式碼在較少的專案中使用,可能存在嚴重漏洞。這些漏洞在很長一段時間內都沒有被注意到,直到駭客出現攻破漏洞,往往已造成公司組織重大損失。

在使用開源程式碼時,開發人員需要了解若使用已知漏洞的資料庫,可能為程式碼帶來潛在安全風險。這也意味著開發人員須徹底了解產品中應用了哪些開源碼,已確保安全。

 

 

#3別忘記更新
Don'tForgettoUpdate


09 3當選擇了最適合您的開源管理工具,也別忘了隨時保持最新版本。通常,新版本提供新功能,軟體錯誤的修復報告、安全漏洞或添加與其他開源專案的相容性。這些是開源社群共同協作的結果,社群共同努力生成更好的程式碼。但是,如果未能隨時更新,將無法從中受益。更新除了帶來產品最新功能之外,更針對安全漏洞的重要修復,協助保護產品。


如果不更新這些版本,則可能使企業面臨重大風險,因為駭客能夠找到相同的漏洞並嘗試利用它們。他們所要做的就是尋找新發布的漏洞,並攻擊在那些更新速度太慢而無法修補的組織。另一個威脅來自駭客將舊版本與新版本進行比較,挑選出已修補的內容,了解差異後,瞄準可攻擊的目標。所以可別因為未即時更新而被駭客剝削了您的安全權利。

 

#4我可以使用這個授權嗎?
AmIAllowedtousethisLicense?

使用開源可以讓開發人員的生活變得更加輕鬆,但有時也會帶來巨大的麻煩,尤其是企業的法務團隊。開發人員遇到另一個常見錯誤是使用違反公司政策的開源授權。典型且常見為GPL授權,向使用此授權的公司帶來了許多法律問題。其中最令人討厭的情況為開發人員使用GPL授權的元件/程式碼,然後在系統上線前才發現,公司不能使用它。只好將有爭議的開源程式移除,但也需要異動相關的程式,並根據貴公司的政策再另外找尋可使用用的開源程式來代替它。這一連串的過程耗費過多的人力及時間,延遲系統上線時間。


企業內部應設置有關哪些授權是被允許、哪些是不被允許的明確政策。我們建議您建立一個系統,讓您全面了解產品中的授權,從而快速釐清法律的問題,確認是否符合規定。

 

#5相依性
Dependencies

最後一點,通常最重要的錯誤都會與開源程式的相依性有關。開發人員在實際使用的開源函式庫數量,很容易會忽略相依性,如果有使用相依性管理工具例如:Maven(Java)、Bower(JavaScript)、Bundler(Ruby)等等自動引用開源元件的工具,這問題更發嚴重。


相依性主要分兩種型態:直接和傳遞。直接相依性是程式碼內直接引用函式庫(Library),傳遞相依性是指使用的函式庫(Library)中,還有用到其他的開源程式,即為開源程式中另有開源程式。


若不追蹤開源程式的相依性,很容易導致開發人員失去對軟體的可見性與控制。如果您的團隊正在使用開源,就像市場上幾乎所有商業軟體產品一樣,必須追蹤正在使用的所有開源庫,不管是直接相依或是傳遞相依都需要追蹤。


最安全的方式莫過於保持正確方式,但人不可能永遠不犯錯。問題是我們從錯誤中學到了多少?開發團隊採用哪些系統和工具將錯誤降至最低?希望這份清單可以幫助您和您的團隊在未來一年中繼續發展,同時避免前一年的陷阱。

09 5