如何脫穎而出?少數(shù)開發(fā)人員才有的6種編程習慣
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)
其實說到優(yōu)秀的程序員,我們能想到很多特性,其中很多是某些職業(yè)習慣。大多數(shù)程序員認為有些工作習慣可以讓他們更出色,但知道和做到是兩碼事兒,大部分人并沒有這些習慣。
眾所周知,習慣決定成敗。脫穎而出的關(guān)鍵就在于那些良好的編程習慣。
1. 清理代碼
一個好的編程習慣是,每更改一次代碼都要有一次進步,無論是只修改一行代碼還是給現(xiàn)有代碼添加新的指令。
羅伯特·C·馬丁借用童子軍規(guī)則對這個習慣做了一個精彩的總結(jié):“編輯后的代碼一定要比編輯前的好。”
在瀏覽一段代碼時,你會驚訝地發(fā)現(xiàn)有很多可以改進的小細節(jié),比如重命名變量或函數(shù)。只要確保每次至少完善一處地方即可,你的代碼就能得到優(yōu)化。
養(yǎng)成這個良好習慣的原因是我們的認知在不斷完善:昨天做得不錯的事情,今天就能做得更好。代碼會隨著時間的流逝而“腐爛”,因此,完善代碼是保持代碼可維護性的關(guān)鍵。
圖源:unsplash
2. 寫好文檔
這是本文中所列舉的最棒的習慣,記錄工作非常重要。
你是否曾遇到過這樣一個存儲庫,沒有任何文檔說明如何正確設(shè)置所有內(nèi)容或應(yīng)用程序應(yīng)該如何工作?在閱讀了幾個小時的代碼后,你很可能仍然一無所獲,那時你會希望讀到相關(guān)文檔。
至少要為你的項目推薦一個合適的readme.md,它可以說明應(yīng)用程序應(yīng)該做什么以及如何啟動和運行它。
文檔部分在編碼時就能完成,花點時間考慮一下描述性的變量名,會有所幫助的。也許為變量、方法和類選擇好名字需要花費時間,但相比之下,節(jié)省的時間要多得多。
3. 考慮誰是下一個
每編寫一段代碼時,都應(yīng)該考慮下一位開發(fā)人員在查看這段代碼時會發(fā)現(xiàn)什么。要抱著易于理解,讓別人讀起來就像自己寫的一樣的心態(tài)來編寫代碼。
閱讀代碼與編寫代碼所花費的時間之比遠超過10:1。這意味著從長遠來看,你可以用多花些精力提升代碼可讀性的方式來節(jié)省大量時間。
在編碼方面不要花哨,寫出每個人都能理解的簡單代碼。完全沒必要做點什么“新花樣”,從Stack Overflow復制而來的自己都讀不懂代碼毫無意義。
4. 做需要的事——要有“度”
很多開發(fā)人員有一個奇怪的習慣:喜歡多做事。當要求他們做出某種功能時,大多數(shù)開發(fā)人員會加入一些額外的功能——“以防萬一”。我們將這種行為稱為 “過度工程”。讓你的代碼變得比要求的更健壯復雜,但其實真的沒必要。
圖源:unsplash
很多時候,人們會基于推測去構(gòu)建比實際所需更多的東西。開發(fā)人員根據(jù)自己的想法添加了將來可能有用的代碼,這些額外的代碼片段雖然已添加到代碼庫中,但可能永遠都不會使用。
過度工程會讓代碼整體變得十分平庸,無法看出它的初始目的是什么。這樣的代碼不僅不好用,而且還會從根本上變得難以理解。
5. 計劃代碼
有件事是很多程序員都會做的:在被分配特定任務(wù)時會直接跳到他們最喜歡的部分——他們會立刻開始編寫代碼。
乍一看,進入代碼環(huán)節(jié)似乎很令人興奮。但是,這種興奮可能最終會浪費很多時間。如果直接進入編碼部分,則會使你失去對全局的把握。
在開始編碼之前,你需要做規(guī)劃安排。思考可能會出現(xiàn)的問題以及如何解決這些問題。如何設(shè)計代碼?為什么要實現(xiàn)這項功能?這些問題可以讓你更清楚的意識到一個事實:編寫代碼之前,有很多事情要考慮。
圖源:unsplash
6. 永不停止學習
正如艾薩克·阿西莫夫所說:“停止學習就是走向衰敗的開始。” 在技術(shù)世界日新月異的今天更是如此。
緊跟變化的腳步是不可能的,即使你可以做到,我也不建議你這么做。過猶不及,但最好能夠保持時不時學習一種新的框架或編程語言。不是說你必須成為所有編程語言或框架的專家,只是去嘗試其中的一部分,看看是否喜歡它們就很好了。
通過使用另一種語言或框架來解決某些問題能使你從中獲得許多新見識,這會幫助你在程序員這條道路上越走越好。
圖源:unsplash
養(yǎng)成這些時間需要時間和堅持,它不會一蹴而就,你得有點兒耐心。但是所帶來的回報會讓你知道,一切付出都是值得的。