重新敲一遍程式碼,勝過拷貝貼上
如今這個時代,Google 和 Stack Overflow 已經成為了很多開發者不可或缺的工具。但是最近,後者貌似名聲壞了。一方面,是因為表面上特別、有時候會偏離適度的原則。說得更中肯些,取笑別人是「十足 的 Stack Overflow 式的開發者」的現象,明顯增多了。
說簡單點兒,有些人在 Stack Overflow 上扔程式碼、還大肆拷貝、貼上回答裡的程式碼示例,他們最應該得到這個稱號。他們幹起活來可能相當麻利,但是對於他們所面對的問題、以及他們樂於使用的解決方案,缺乏應有的理解。
當然,程式碼的拷貝貼上不應該都被鄙視。我敢肯定,大部分閱讀本文的讀者(當然包括寫本 文的我!)恥於把 Stack Overflow 上的程式碼片段、原封不動地拷貝到他們自己的程式碼庫裡。那又能怎樣呢,人家的程式碼為什麼要這樣寫,我們或許根本沒有興趣去了解。從本質上講,不是每一項技術 都讓人著迷,畢竟,deadline 有時過於急迫。
但是,果真如此的話,是不是意味著,我們漸漸就變成了十足的 Stack Overflow 式的開發者?對頭!我們肯定不希望走到這一步!
緩解對策
每當你想把 Stack Overflow 的一段程式碼拷貝到專案裡時,別急著斷網,而要考慮下面的技巧。
不要使用剪貼簿。不要拷貝和貼上。而是把你找到的程式碼,重新敲一遍。
是的,這要多花些時間。和你簡單地敲擊 Ctrl+C/Ctrl+V 相比,這肯定笨拙不堪。或許沒有多少意義:如果最終結果是一樣的,那麼,程式碼的轉移是否通過了剪貼簿,又有多大的關係呢?
理由
無論如何,我堅持認為,敲一遍程式碼,意義十分深遠。按照重要程度,下面列出我的理由:
重新敲一遍,要比拷貝貼上慢,這實際上非常好。如果你發誓不再使用剪貼簿了,就不會只是尋找 Google 給出的第一條 Stack Overflow 的結果。你將權衡不同的解決方案,正常情況下,你將傾向於更短、更簡潔的方案。
在你敲程式碼時,你不可能完全無意識地敲著。不管你是否願意,你都將潛移默化地吸收一部 分知識,因為當程式碼從瀏覽器轉移到編輯器或 IDE 時,也是在你的眼睛和大腦之間流動。你下意識地會對部分資訊感興趣,並梳理清楚,便於今後使用。即使你不想這樣做,你也會學到點兒東西。
最重要的、也是幾乎可以肯定的是,你自己敲的東西不等同於原始程式碼片段的完全拷貝。在 你敲程式碼的過程中,只要你遵從專案正在採用的、特定的風格規範,那麼,你將不可避免地偏離原始程式碼。更有可能發生的是,你也會做出更大的修改。你將替換調 用工具函式的常見模式。為了更好的可閱讀性,你將重新組織程式碼。你將新增註釋、或抽出功能,讓其更加自文件化(self-documenting)。甚至 改善並個性化,這樣,你就能抽象並多次複用。
此後,你剛才敲好的程式碼,就不只是你從網上找到的程式碼。它成了你自己的程式碼。
相關文章
- 淺拷貝與深拷貝程式碼(javascript)JavaScript
- 淺拷貝&深拷貝
- python 指標拷貝,淺拷貝和深拷貝Python指標
- 淺拷貝與深拷貝
- 淺拷貝和深拷貝
- 深拷貝和淺拷貝
- 平板上敲程式碼code-serverServer
- C++拷貝建構函式(深拷貝,淺拷貝)C++函式
- jquery之物件拷貝深拷貝淺拷貝案例講解jQuery物件
- 一文搞懂Java引用拷貝、淺拷貝、深拷貝Java
- TexStudio拷貝程式碼保留縮排的問題
- Java深拷貝和淺拷貝Java
- Python淺拷貝與深拷貝Python
- 物件深拷貝和淺拷貝物件
- JavaScript深拷貝和淺拷貝JavaScript
- javascript 淺拷貝VS深拷貝JavaScript
- JavaScript 深度拷貝和淺拷貝JavaScript
- js 淺拷貝和深拷貝JS
- JS深拷貝與淺拷貝JS
- iOS深拷貝和淺拷貝iOS
- python深拷貝與淺拷貝Python
- js 深拷貝和淺拷貝JS
- JavaScript淺拷貝和深拷貝JavaScript
- 淺談深拷貝與淺拷貝?深拷貝幾種方法。
- 正則以及淺拷貝深拷貝
- 談談深拷貝與淺拷貝
- 賦值、淺拷貝與深拷貝賦值
- JavaScript之深拷貝和淺拷貝JavaScript
- ECMAScript-淺拷貝和深拷貝
- C++淺拷貝和深拷貝C++
- 深拷貝、淺拷貝與Cloneable介面
- 實現物件淺拷貝、深拷貝物件
- js的深拷貝和淺拷貝JS
- 聊聊物件深拷貝和淺拷貝物件
- React之淺拷貝與深拷貝React
- go slice深拷貝和淺拷貝Go
- js之淺拷貝和深拷貝JS
- 深度解析深拷貝和淺拷貝
- 【JS】深拷貝與淺拷貝,實現深拷貝的幾種方法JS