作者 | Entreprogrammer
譯者 | Sambodhi
策劃 | 凌敏
很多人都有過複製貼上程式碼的經歷,但如果你經常盲目地複製貼上程式碼,甚至是複製貼上自己不理解的程式碼,很可能會帶來災難性的後果。
1
當你複製貼上自己不理解的程式碼時會發生什麼
產生垃圾
這是複製貼上程式碼的最大問題。複製貼上的程式碼往往包含很多你的程式不需要的額外程式碼行。如果開發者在沒有理解程式碼的情況下就進行復制,那麼程式碼就會變得很複雜,很難理解。
重用性差
開發軟體的真正資產並非程式碼,而是可重用的程式碼。因此,從長遠來看,簡單地複製程式碼並不能提高生產力。
如果你找到一段程式碼,卻沒有理解,僅僅是複製、貼上,那麼你就無法正確地重用這段程式碼,因為你不知道它的可用性。另外,你也失去了收集可重用程式碼的機會。
複製 Bug
複製程式碼的同時,也在複製 Bug。你所複製的程式碼片段可以在特定的環境下使用,但是你的問題會有所不同。所以,如果你沒有理解程式碼就去複製程式碼,那麼你就會製造出某些 Bug,這些 Bug 會暫時被掩蓋。
安全漏洞
我知道有個學弟把 GitHub 的一些程式碼片段複製和貼上到了他的專案中,因為他必須檢視他公司傳送給使用者的最後一條資訊。
他確實是把那些程式碼片段複製和貼上了,但是卻沒有理解那些程式碼。他運行了這段程式碼,並且工作得很好。但問題在於,這段程式碼可以讀取智慧手機的所有資訊。這個問題影響很大,會讓你的應用變得緩慢。
引入新的錯誤
當你在你的專案中貼上程式碼時,重複的程式碼還可能會產生額外的錯誤。有時候,可能是你沒有把程式碼貼上在正確的地方,也可能是你貼上的程式碼覆蓋了以前的一些程式碼。如果你不明白這些程式碼,那麼會有很多複製貼上的方式帶來災難。
許可證問題
開發者經常從一個開源專案中複製貼上程式碼。如何不瞭解複製的原始碼許可影響,那麼就會有很大的問題,對於嵌入式裝置來說更是如此,因為在嵌入式裝置中,板載軟體被認為是一個新的和唯一的副本。這不是 GrammaTech 專攻的領域,但其他公司提供這些型別的分析工具。
2
一些建議
如果你經常習慣複製貼上程式碼,那麼以下六點建議希望能對你有所幫助。
花時間去解決一個問題。你今天花的時間越多,明天要花的時間就越少。
對複製貼上的程式碼進行除錯,以便更好地理解。
在複製的程式碼中新增一些有用的註釋,以便 QA 團隊能夠更好地檢視。
嘗試將程式碼分解成可重複使用的函式。這將有助於你更好地理解。
在從開源專案中複製之前,請看清許可證。
請不要在專案中留下任何複製貼上的程式碼的垃圾程式碼。
額外提示:
一些資深的開發者建議,與其從網站上覆制貼上程式碼,不如透過重新敲入程式碼來重寫。透過這樣做,你可能會發現一些垃圾或無用的東西,並把它從你的程式碼中刪除。這將使程式碼變得乾淨,並幫助你更好地理解它。再一個就是,它將幫助你一步一步地理解執行程式。
如果我們僅僅是簡單地複製和貼上,就會失去這些寶貴的經驗。請相信我,一點小小的努力,就能使你從好的開發者變成偉大的開發者。
3
最後幾句話
複製程式碼使我們的生活變得更輕鬆。但如果不去理解程式碼的話,就不會讓我們成為更好的開發者。一個偉大的程式設計師,就是在大多數人不能解決困難問題的時候,能夠解決困難的程式設計師。
而一個偉大的開發者並非在一日之內造就的。透過理解程式碼來解決問題,是提高自己的最好方法之一。
因此,儘管複製貼上程式碼的做法很誘人,但在不理解的情況下就複製程式碼,是不值得開發者花費寶貴的時間。在我看來,這是在自欺欺人。
作者介紹:
Entreprogrammer,科技企業家、變革創造者,熱衷於人工智慧和區塊鏈。
https://levelup。gitconnected。com/copy-pasting-code-can-be-devastating-ae1c8252c8fa