天天看點

複制粘貼代碼,很可能會帶來災難性的後果

作者 | Entreprogrammer

譯者 | Sambodhi

策劃 | 淩敏

很多人都有過複制粘貼代碼的經曆,但如果你經常盲目地複制粘貼代碼,甚至是複制粘貼自己不了解的代碼,很可能會帶來災難性的後果。

1

當你複制粘貼自己不了解的代碼時會發生什麼

産生垃圾

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

重用性差

開發軟體的真正資産并非代碼,而是可重用的代碼。是以,從長遠來看,簡單地複制代碼并不能提高生産力。

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

複制 Bug

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

安全漏洞

我知道有個學弟把 GitHub 的一些代碼片段複制和粘貼到了他的項目中,因為他必須檢視他公司發送給使用者的最後一條資訊。

他确實是把那些代碼片段複制和粘貼了,但是卻沒有了解那些代碼。他運作了這段代碼,并且工作得很好。但問題在于,這段代碼可以讀取智能手機的所有資訊。這個問題影響很大,會讓你的應用變得緩慢。

引入新的錯誤

當你在你的項目中粘貼代碼時,重複的代碼還可能會産生額外的錯誤。有時候,可能是你沒有把代碼粘貼在正确的地方,也可能是你粘貼的代碼覆寫了以前的一些代碼。如果你不明白這些代碼,那麼會有很多複制粘貼的方式帶來災難。

許可證問題

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

2

一些建議

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

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

對複制粘貼的代碼進行調試,以便更好地了解。

在複制的代碼中添加一些有用的注釋,以便 QA 團隊能夠更好地檢視。

嘗試将代碼分解成可重複使用的函數。這将有助于你更好地了解。

在從開源項目中複制之前,請看清許可證。

請不要在項目中留下任何複制粘貼的代碼的垃圾代碼。

額外提示:

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

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

3

最後幾句話

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

而一個偉大的開發者并非在一日之内造就的。通過了解代碼來解決問題,是提高自己的最好方法之一。

是以,盡管複制粘貼代碼的做法很誘人,但在不了解的情況下就複制代碼,是不值得開發者花費寶貴的時間。在我看來,這是在自欺欺人。

作者介紹:

Entreprogrammer,科技企業家、變革創造者,熱衷于人工智能和區塊鍊。

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

繼續閱讀