複製貼上程式碼,很可能會帶來災難性的後果

作者 | Entreprogrammer

譯者 | Sambodhi

策劃 | 凌敏

很多人都有過複製貼上程式碼的經歷,但如果你經常盲目地複製貼上程式碼,甚至是複製貼上自己不理解的程式碼,很可能會帶來災難性的後果。

1

當你複製貼上自己不理解的程式碼時會發生什麼

產生垃圾

這是複製貼上程式碼的最大問題。複製貼上的程式碼往往包含很多你的程式不需要的額外程式碼行。如果開發者在沒有理解程式碼的情況下就進行復制,那麼程式碼就會變得很複雜,很難理解。

重用性差

開發軟體的真正資產並非程式碼,而是可重用的程式碼。因此,從長遠來看,簡單地複製程式碼並不能提高生產力。

如果你找到一段程式碼,卻沒有理解,僅僅是複製、貼上,那麼你就無法正確地重用這段程式碼,因為你不知道它的可用性。另外,你也失去了收集可重用程式碼的機會。

複製 Bug

複製程式碼的同時,也在複製 Bug。你所複製的程式碼片段可以在特定的環境下使用,但是你的問題會有所不同。所以,如果你沒有理解程式碼就去複製程式碼,那麼你就會製造出某些 Bug,這些 Bug 會暫時被掩蓋。

安全漏洞

我知道有個學弟把 GitHub 的一些程式碼片段複製和貼上到了他的專案中,因為他必須檢視他公司傳送給使用者的最後一條資訊。

他確實是把那些程式碼片段複製和貼上了,但是卻沒有理解那些程式碼。他運行了這段程式碼,並且工作得很好。但問題在於,這段程式碼可以讀取智慧手機的所有資訊。這個問題影響很大,會讓你的應用變得緩慢。

引入新的錯誤

當你在你的專案中貼上程式碼時,重複的程式碼還可能會產生額外的錯誤。有時候,可能是你沒有把程式碼貼上在正確的地方,也可能是你貼上的程式碼覆蓋了以前的一些程式碼。如果你不明白這些程式碼,那麼會有很多複製貼上的方式帶來災難。

許可證問題

開發者經常從一個開源專案中複製貼上程式碼。如何不瞭解複製的原始碼許可影響,那麼就會有很大的問題,對於嵌入式裝置來說更是如此,因為在嵌入式裝置中,板載軟體被認為是一個新的和唯一的副本。這不是 GrammaTech 專攻的領域,但其他公司提供這些型別的分析工具。

2

一些建議

如果你經常習慣複製貼上程式碼,那麼以下六點建議希望能對你有所幫助。

花時間去解決一個問題。你今天花的時間越多,明天要花的時間就越少。

對複製貼上的程式碼進行除錯,以便更好地理解。

在複製的程式碼中新增一些有用的註釋,以便 QA 團隊能夠更好地檢視。

嘗試將程式碼分解成可重複使用的函式。這將有助於你更好地理解。

在從開源專案中複製之前,請看清許可證。

請不要在專案中留下任何複製貼上的程式碼的垃圾程式碼。

額外提示:

一些資深的開發者建議,與其從網站上覆制貼上程式碼,不如透過重新敲入程式碼來重寫。透過這樣做,你可能會發現一些垃圾或無用的東西,並把它從你的程式碼中刪除。這將使程式碼變得乾淨,並幫助你更好地理解它。再一個就是,它將幫助你一步一步地理解執行程式。

如果我們僅僅是簡單地複製和貼上,就會失去這些寶貴的經驗。請相信我,一點小小的努力,就能使你從好的開發者變成偉大的開發者。

3

最後幾句話

複製程式碼使我們的生活變得更輕鬆。但如果不去理解程式碼的話,就不會讓我們成為更好的開發者。一個偉大的程式設計師,就是在大多數人不能解決困難問題的時候,能夠解決困難的程式設計師。

而一個偉大的開發者並非在一日之內造就的。透過理解程式碼來解決問題,是提高自己的最好方法之一。

因此,儘管複製貼上程式碼的做法很誘人,但在不理解的情況下就複製程式碼,是不值得開發者花費寶貴的時間。在我看來,這是在自欺欺人。

作者介紹:

Entreprogrammer,科技企業家、變革創造者,熱衷於人工智慧和區塊鏈。

https://levelup。gitconnected。com/copy-pasting-code-can-be-devastating-ae1c8252c8fa