国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
35 個讓你的代碼變得糟糕的不良習慣

壞習慣很難改變,如果你不知道你的壞習慣正在影響工作,那就更難。如果你知道,但不在乎——這是最糟糕的情況。但好在你已經(jīng)來這里看了,不是嗎?

作為一個程序員,我看到很多不好的做法,不僅僅與代碼相關,還包括團隊合作能力。我自己曾經(jīng)就有不少這些壞習慣。這里是我認為最糟糕的 35 個壞習慣,它們涵蓋了四大類:組織代碼、團隊合作、編寫代碼以及測試和維護。

組織代碼

1. 說“我稍后會改”

推遲修復代碼這個習慣不僅僅涉及到優(yōu)先級的問題。跟蹤管理問題可能會是不錯的選擇,但你需要一種方法來跟蹤小問題。有一個快捷的方法,添加 “TODO” 注釋,它能保證你不錯過任何問題。

2. 堅持一行代碼解決問題

癡迷于編寫高效、優(yōu)雅的代碼是程序員的共同特點。這就像解決一個謎題——你會發(fā)現(xiàn)組合函數(shù)和正則表達式可以把20行代碼變成2至3行。不幸的是,這樣寫出來的代碼并不總是容易閱讀,而這通常是更應該重視的事情。先讓你的代碼可讀,然后再說技巧的事情。

3. 無意義的優(yōu)化

我們常常把工作重心放在另一個錯誤的地方,就是優(yōu)化。把網(wǎng)站減少幾個字節(jié)的大小看起來是很不錯,但為什么不讓 gzip 來干這個事情?需求不是更重要的事情嗎?把優(yōu)化工作放在項目結束的時候,因為多數(shù)情況下需求會變化,這會讓你之前花時間進行的優(yōu)化工作浪費掉。

“過早優(yōu)化是萬惡之源?!?br>—Donald Knuth

4. 告訴自己風格問題并不是那么重要

如果說我從多年來觀察別人的代碼學到了什么,那就是處理編碼風格的問題是開發(fā)者最可能推遲的事情。缺乏經(jīng)驗的程序員很難看到風格問題的好處,但隨著時間推移,這會越來越明顯,一旦有代碼質量出現(xiàn)問題,雪球效應就會讓項目變得一塌糊涂。應該嚴格要求按最佳實踐來工作,即使它們看起來微不足道。使用代碼檢查工具和靜態(tài)分析工具可以讓你從風格問題中解脫出來關注更重要的事情。

5. 把東西掃到地毯下(不被看見)

捕捉然后忽略異常,或者使用不報告錯誤的庫(比如 jQuery),這些都是在把東西掃到地毯下的作法。如果那些錯誤中的某一個非常關鍵,那修復它將會是數(shù)倍的挑戰(zhàn),因為你找不到線索,不知道從哪里開始。避免這種事情最簡單的辦法是把這些被忽略的錯誤記錄到日志中,這樣以后還可以研究它們。

6. 使用無意義的名稱

命名是件難事,但它是確保變量名稱和函數(shù)名稱高質的簡單方法。如果名稱中含有其它代碼不能傳遞的信息,別的開發(fā)者閱讀你的代碼時就會覺得輕松。命名之所以如此重要,因為名稱可以讓人對代碼所做的事情產(chǎn)生基本的概念。如果你需要深入計算過程去發(fā)現(xiàn)代碼的工作,會需要很多時間,但好的名稱可以幫助你很快理解代碼在干什么。

7. 忽略被證實的最佳實踐

代碼審查、測試驅動開發(fā)、質量保證、自動化部署——它們以及其它一些實踐都已經(jīng)在無數(shù)項目證明了其價值所在,也正是如此,開發(fā)者們的博客在不斷的提到它們?!堕_發(fā)軟件:真正的工作是什么,我們?yōu)槭裁匆嘈潘愤@本書是關于最佳實踐非常不錯的參考?;c時間學習如何正確地做事情,你的開發(fā)過程就會在所有項目中得到改善,其效果會讓你大吃一驚。

協(xié)作

8. 太早放棄計劃

不遵守計劃可以讓你的項目變得不受控制。如果你的代碼受到批評你可以說是因為計算不完整。無論如何,讓未完成的模塊結合起來一起工作將會導致緊密耦合。這種復雜的情況也會在項目領導角色發(fā)生變化時出現(xiàn),如果新的領導會認為他們的方式會比架構的一致性更重要的話。

9. 堅持一個幾乎不會發(fā)生的計劃

就像放棄計劃會導致問題一樣,堅持一個行不通的計劃也是如此。因此你應該在事件變得棘手的時候向團隊分享意見,并收集反饋和意見。有時候不同的視角會改變一切。

10. 總是一個人在戰(zhàn)斗

你應該努力與團隊分享你的進步和想法。有時候你認為自己在做正確的事情,其實并不是,所以不斷的交流會非常有價值。這對和你一起工作的人也會帶來好處。如果你與團隊一起討論,并指導那些驗證不足經(jīng)常被卡住的成員,他們的工作通常會有所改善。

11. 拒絕寫不好的代碼

每個開發(fā)者都經(jīng)歷過被最后期限逼迫著寫壞代碼的時候,其實沒什么。你可能試圖警告客戶或者經(jīng)理這會產(chǎn)生嚴重后果,但他們堅持原來的最后期限,所以現(xiàn)在只能繼續(xù)寫代碼。也許存在一個緊急的錯誤等不到你想出清晰的解決辦法。這也是為什么程序員多才多藝是非常重要的,因為他要既能寫并不優(yōu)雅的代碼,也能寫好代碼。不過希望你能重新考慮這些代碼并償還技術債務。

12. 責備別人

在開發(fā)人員和其它技術人員之間,自負是一個非常普遍的特征,這已經(jīng)不是什么秘密了。對自己的錯誤負責是一種美德,它會讓你在同行中脫穎而出。不要害怕承認你所犯的錯誤。只有你不再害怕承認錯誤,才會輕松地專注于研究為什么會出錯,以及如何避免這種錯誤再次發(fā)生。如果你連錯誤都不能承認,何談學習?

13. 不與團隊分享你學到的東西

你作為一個開發(fā)者的價值不僅存在于你寫的代碼中,還存在于你在寫代碼的時候學到了什么。分享你的經(jīng)驗,寫下相關的評論,讓其他人知道為什么事情是這樣的,并幫助他們了解項目中難以理解的新事務。

14. 不及時向經(jīng)理/客戶的反饋

工匠精神最有價值的一點是盡可能讓所有人在同一層面工作。這樣做并不是因為管理者需要填寫電子表格。這也是為了你自己:這會減輕你的不安全感,減少對項目生命周期和未來的不確定性。

15. 少用 Google

解決一個問題最快的辦法并不是去解決它。如果有問題,上 Google。當然,當然你也可以麻煩坐你旁邊的工程師,但他可能很少會給出像 Stack Overflow 上那樣詳細的解釋,更不用說你這樣做會打斷他的工作。

16. 高估你的個人風格

始終協(xié)調自己的工作風格和工作環(huán)境與團隊保持一致。理想情況下,團隊中的每個人都應該工作在類似的環(huán)境,遵從相同的代碼風格。用你自己的方式來做事情可能會更有意思,但同事可能會不習慣你的代碼風格。如果你的風格不同尋常,那別的開發(fā)者就很難接手你的工作。

17. 為代碼綁上個人的標簽

如果某人評論你的代碼,不要認為這是私事。你的代碼應該經(jīng)得住考驗;也就是說,你應該能解決為什么這樣寫。如果代碼需要改進,那是因為代碼需要改進,而不是因為你。

編寫代碼

18. 不知道如何優(yōu)化

良好而正確的優(yōu)化策略需要經(jīng)驗的積累。這產(chǎn)生了探索、分析和了解每個系統(tǒng)的過程中。讓自己知道這些事情,學習算法的復雜度、數(shù)據(jù)庫查詢評估、協(xié)議以及一般情況下如何衡量性能。

19. 使用錯誤的工具來工作

你所知有限,但讓你保持學習的原因是新問題會引出不同的上下文,需要不同的工具——適用于當前任務的工作。以開放的心態(tài)面對新的庫和語言。不要總是根據(jù)自已經(jīng)知道的事情來做決定。

20. 不想分散精力去掌握工具和 IDE

在使用工具的過程中不斷學習新的熱鍵、快捷方式或參數(shù),可以提高你編碼的速度和認知。這與使用熱鍵來節(jié)約幾秒種時間無關,它會降低你上下文切換的頻率。你花在每個小動作上的時間越多,花在考慮問題(為什么這么做,接下來該干什么)上的時間就越少。掌握捷徑會讓你恍然大悟。

21. 忽略錯誤消息

在沒有閱讀錯誤消息之前,不要假設你知道代碼有什么問題,也不要假設你會很快發(fā)現(xiàn)問題所在。掌握更多關于問題的信息總不是壞事,長遠來看,花時間收集這些信息會更節(jié)約時間。

22. 夸大你的開發(fā)工具包

有時候你首選的編輯器或命令行工具并非解決手頭工作最好的工具。Visual Studio 是個非常不錯的 IDE,Sublime 則非常適用于動態(tài)語言,Eclipse 與 Java 更配,等等。你可能比較喜歡 Vim 或者 Emacs,但并不表示它們適用于每項工作。

23. 在代碼中直接使用值而不使用配置

思考變化以及如何處理變化是件長期的事情。如果你不把隨時變動的碎片從工作中剝離出來,技術債務就會以驚人的速度增長。應該在適當?shù)牡胤绞褂贸A亢团渲梦募?/p>

24. 總是重新發(fā)明輪子

不要寫你不需要的代碼。也許別人已經(jīng)花了大量的時間在你遇到的問題上,他或者她可能已經(jīng)有一個通過測試的解決方案,你可以重用這些方案,少給自己找麻煩。

25. 盲目復制/代碼

你在重用一段代碼前應該搞懂它。有時候你不能在第一次看代碼馬上就注意到它干的所有事情。你應該花點時間仔細閱讀代碼同時深入研究要解決的問題。

26. 不花時間去研究事務是如何工作的

通過思考事務如何工作,以及它們潛在的問題,抓住機會擴大自己的知識面。你現(xiàn)在可能節(jié)約了時間,免受干擾,但長遠來看,從項目中學到的東西會比現(xiàn)在做的更重要。

27. 對自己的代碼過于自信

只因為是你自己寫的東西,就是一級棒,這種假設非常危險。學習更多關于編程的知識,就像新的工作任務那樣,從中獲取經(jīng)驗。所以,看看你以前寫的代碼,反思,并獲得進步。

28. 不權衡每個設計,解決方案,或庫

每個產(chǎn)品都存在優(yōu)點,你只能通過使用和分析來進行了解??匆粋€庫和幾個用法示例不會讓你掌握它,也不是說任何情況下它都可以完善適用于你的項目。辯證的看待你所使用的每個事物。

29. 卡住時不尋求幫助

保持簡短的反饋循環(huán)并如你所想的那么痛苦。尋找?guī)椭⒉淮砟銦o能。人們會看到你的獨立,承認無知可以驅動學習,這是美德。

測試和維護

30. 寫可以通過的測試

寫你明知可以通過的測試是有必要的。它們會在項目重構或重新組織的時候保證其質量。但另一方面,你也必須寫明知不能通過的測試。它們可以推進項目并跟蹤問題。

31. 不顧關鍵用例的性能測試

在項目開發(fā)的中間節(jié)點建設一個自動化的性能設置,這樣在項目逐步擴大的時候才能確保沒有性能問題。

32. 不檢查構建工作

構建通過但構建結果卻不能工作這種情況很少發(fā)生,但它確實會發(fā)生。而且,你拖延著不去調查這個問題的話,時間越長,就越難以修復。構建之后進行快速測試是個很重要的習慣。

33. 最后推送大量改動或推送大量改動之后就離開

可能這是因為你過度自信,直到多次引火上身之后才學會不這樣做。請現(xiàn)在就接受我的建議,當構建失敗的時候你就在旁邊。

34. 與自己的代碼斷開聯(lián)系

對自己寫的代碼提供支持。你是最了解這個代碼而且最可能為別人提供相關幫助的人。你應該努力使自己的代碼在多年后仍然能被自己或者別人看懂。

35. 忽略非功能性需求

發(fā)布的時候通常很容易忘記一些重要的領域,比如性能和安全性。應該有這一個清單記錄著這些事情。你肯定不希望因為在制定最后期限的時候忘了這些非功能性需求而破壞你的聚會。

你有什么糟糕的編程習慣嗎?

人們常說,我們是喜歡按部就班的生物。通過習慣來改善你的工作方式可以避免你每次遇到同樣的問題都得去費力思考。一旦你就做某件事情總結出并且吸收了一個不錯的辦法,以后再來做一次的話就會毫不費力了。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
20個毀掉你代碼的不良習慣 !
高效開發(fā)者都必須謹記的箴言
程序員需要避免的 10 個壞習慣
我從編程寫軟件學到的 7 件事
高效程序員的45個習慣-敏捷開發(fā)修煉之道
高效程序員的40個好習慣和行為方式
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服