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