別死寫代碼,這 25 條比漲工資都重要

來源:http://rrd.me/eucMAgit

若是每一個程序開發人員都只是周而復始地寫代碼,想必編程的工做就會讓不少程序員發狂。那麼如何在枯燥的工做中尋找樂趣,我認爲咱們要對工做保持激情和興奮感、始終學習的態度,還須要掌握一些實用高效的編程技巧,這樣對於提高工做樂趣和效率大有裨益。程序員

今天給你們分享一下 25 個實用編程小技巧,但願能夠給開發編程人員的工做和學習帶來更多的思考。github

一、不要毫無計劃地寫代碼,思考、調研、計劃、編碼、測試、修改,一個都不能少;算法

二、不要寫代碼前過分計劃,在一頭鑽進代碼前作點計劃是好事,可是即使是好事,也可能物極必反。spring

三、請勿低估代碼質量的重要性,若是你只可以關注你所寫的代碼的一個方面,那麼確定是可讀性。編程

四、使用實現功能的最簡單方案,做爲專業的程序員,你的職責不是找出問題的一個解決方案,而是找出問題的最簡單的解決方案;後端

五、適時放棄,當你開始懷疑一個解決方案的時候,你就應該考慮拋棄它,而且從新思考這個問題。無論你已經在這個解決方案中投入了多少精力。像 GIT 這樣的版本控制系統可以幫助你分開管理和嘗試多種不一樣的解決方案,把它利用起來吧;springboot

六、正確使用 Google,除非你正在使用一種極其前沿的技術,不然當你遇到一個問題時,極可能別人早就遇到過一樣的問題了,而且也找到了解決方案了。給本身省點時間,先 Google 一下;性能優化

七、作好封裝,基本的想法就是你想你的代碼高內聚和低耦合,意思是說保持相關的代碼在一塊兒(在一個類中),下降不一樣類之間的相互依賴;數據結構

八、作好規劃,寫好需求再寫代碼,儘量編寫目前正在實現的方案所需的最少許代碼;

九、要懂算法,使用合適的數據結構;

十、不要寫重複性代碼,要用好配置文件,不要使用不必的條件語句和臨時變量;

十一、作好代碼註釋,可是不要給傻子都知道的代碼寫註釋;

十二、必定要寫好測試,若是可能的話,甚至在開始寫代碼實現需求以前,你就應該開始預估和設計須要測試校驗的狀況了。測試驅動開發 (Testing-driven development, TDD)不是什麼花俏的炒做,它是會實實在在會對你思考功能特性、尋找更好的設計方案產生積極影響的。

1三、不要以爲代碼運行起來就是正確的,有些時候代碼的 bug 可能並非顯而易見的;

1四、要可以質疑既有代碼,做爲一個初學者,老是應該假定那些你讀不懂的、且沒有文檔註釋的代碼極可能就是糟糕的代碼。質疑之,詢問之,使用 git blame 揪出罪魁禍首!

1五、不要過分迷戀最佳實踐,我以爲 "最佳實踐" 實際上是害人的,它暗示着你不須要深刻研究它,這就是有史以來最佳實踐,不用質疑!

1六、不要過分迷戀性能優化,若是你在運行代碼以前就在優化它了,那極可能你就是在過早優化代碼了,也極可能你正在費時費力作的優化是徹底不必的。

1七、以用戶體驗爲目標,要站在最終用戶的角度看問題。專業的開發者要考慮這個特定功能的用戶須要什麼、怎樣使用,要千方百計使得這個功能容易讓用戶發現和使用,而不是千方百計在應用中用最便捷添加這個功能,絕不考慮這個功能的可發現性和可用性。

1八、爲你的開發任務挑選合適的工具,你可使用最原始的工具建造房子,而後享受甜蜜時光。你也能夠花費一些時間和金錢去了解先進的工具、更快地建造更好的房子。工具在不斷地改進中,你要樂意去學習它們、使用它們。

1九、要理解好代碼問題和數據問題之間的關係,即便是程序中最小的 bug 也會致使它所管理的數據去到一種不可預測的狀態。尤爲是當全部數據校驗都徹底在這個有 bug 的程序中進行時。

20、切勿重複造輪子,使用好現有的輪子和各類開源庫,會讓你事半功倍。固然,不要僅僅爲了使用一兩個函數就引入一整個代碼庫,在 JavaScript 中的典型例子就是 lodash 代碼庫;

2一、對代碼審查保持正確的態度,應該把每一次代碼複審看成是學習的機會,歡迎他們、感激他們、從中學習,最重要的,當你從你的代碼複審人員那裏學習到東西的時候,要感謝他們;

2二、用好版本控制工具和系統,新手每每低估了一個好的版本控制系統的威力,我這裏所說的好的版本控制系統其實就是指 Git;

2三、不要過分使用共享狀態,一個新手可能會嘗試使用定時器來解決這個共享變量的競態條件問題,特別是當他們必須處理一個數據鎖的問題時。這是危險的標誌,別這麼作,注意它,在代碼複審中指出它,永遠也不要接受這樣的代碼。

2四、正視 Error,Error 是好東西。Error 意味着你在進步,意味着你能夠經過簡單的後續修改就得到更多的進步。專業程序員喜好 Error。新手則痛恨 Error;

2五、學會休息,任何人的大腦都須要休息,身體也須要休息。

做者的其餘開源項目推薦:

  1. springboot-guide : 適合新手入門以及有經驗的開發人員查閱的 Spring Boot 教程(業餘時間維護中,歡迎一塊兒維護)。
  2. programmer-advancement : 我以爲技術人員應該有的一些好習慣!
  3. spring-security-jwt-guide :從零入門 !Spring Security With JWT(含權限驗證)後端部分代碼。

公衆號

若是你們想要實時關注我更新的文章以及分享的乾貨的話,能夠關注個人公衆號。

個人公衆號

相關文章
相關標籤/搜索