程式設計不要犯的錯誤

2021-07-24 17:16:25 字數 2606 閱讀 2683

1.不加理解複製**:上線後出現意料不到的bug,並該塊**會很難理解,不易修改。

2.每次都從頭開始:使用類庫,重構**,提取公共函式(光提取是不夠的,還要根據職責進行相應組織分類);寫部落格,有自己的**庫。

3.沒自己嘗試就開始搜尋:不要讓自己思維停止挑戰,只有多思考才能進步。

[注:並不是要大家不使用搜尋引擎,而是要告訴大家要勤思考,對乙個問題要自己的想法,可能這個想法會很荒謬,不過沒關係,一步一步來,總比止步不前的好;思考和搜尋引擎好同時使用,而不是過度依賴搜尋]

4.鑽牛角尖:遇到乙個問題,就一種方法走到黑,沒有考慮用別的方法(給自己設定個時間限制,如果乙個問題1個小時解決不了,那就要起來喝喝水,重新組織下了,對橡皮鴨或者玩偶描述問題所在,你有時候你就會恍然大悟;如果還是解決不了可以向同事請求幫助,不過之前你要先把問題組織好,有時候我們大半天解決不了的問題,被同事一句話解決了。並不是你的同事水平有多高,而是我們走入思維誤區不可自拔)[注:其實這條包含了兩條資訊,第一:像橡皮鴨描述,這個過程就是重新整理問題的過程,走出誤區;第二:向同事求助,幫助自己走出誤區,前提要把自己問題要描述清楚,學會如何提問,而不是把大問題拋給別人]

5.忽略警告:對待警告和對錯誤一樣對待,不僅**乾淨,而且會避免了一些bug(遇到一些bug,找了半天,發現警告中已經提示)。

6.快速修復而不是永久性解決:容易引入bug,並且**會很快腐爛,成為以後的爛攤子。

7.沒有完全測試就上線:會出現意料之外的bug。測試時候要考慮全面(關鍵點,邊界,還有函式前置條件)[注:**層面可以使用防禦式程式設計思想,前置條件校驗,及時失敗,在出現錯誤地方及時處理,而不是在對資料破壞後才出現莫名其妙的錯誤]

8.考慮一件事情不夠全面,就誇下海口(某個技術點,沒有認真去研究,了解,就誇下海口多久能完成或者這個可以實現):造成自己痛苦的根源,如果研究後,發現並不是想這麼簡單,造成時間延期;或者根本解決不了當前需求,造成需求重新評審,會自己個人聲譽造成傷害,讓人覺得你不靠譜或者技術不行。

9.沒有認真理解需求,遇到需求有歧義地方沒有找相關人員確認:造成測試不通過,專案返工,時間延期;所有你認為該這樣的,其實80%都是錯誤的!不要在理解需求時候帶上你認為,然後不去確認就開始編寫**。

10.不新增日誌(不要等到上線後,系統異常時候再新增日誌,然後重新發布來找bug)

11.涉及到利益方面**要慎之又慎:使用防禦式程式設計,驗證前置條件,出現錯誤快速失敗;關鍵點列印日誌;全面測試,注意邊界條件測試,不要依賴測試幫你把安全性bug找出來[注:這個涉及到你的聲譽,如果出問題了,那就是大問題]

12.寫出質量不高義大利麵條式**:

造成自己噩夢的根源:易出bug,且不好修改,修改同時有會引入其他bug;尤其等上線後發現問題,大家來評審你的**對你**無語。

[注:改變這一切,就要考自己努力學習,提高**質量,參考書籍有:**整潔之道,**大全,編寫可讀的**藝術,重構改善既有**設計,程式設計師修煉之道,重構與模式,敏捷軟體開發:原則、模式與實踐等,後面部落格會有專為乙個主題講解這個內容]

補充:

如何使用技術來避免上述問題

1.前置校驗後置校驗

使用spring 提供的assert方法。[注:可以進行再次封裝,1,不暴露assert,可以以後進行替換,2.進行增強,加入自己專案個性校驗]

2.異常處理

統一規範的異常處理

目前我使用的是

資料校驗全部放在 action層[方便提示,保障傳到service層沒有異常資料;(校驗可以使用開源類庫)service層做斷言,其他層如果有異常丟擲,由action層【ajax】或者***來出來],

注:丟擲的異常注意封裝,讓錯誤離最近的**。容易排查

3.日誌處理

目前使用:log4j。注意關鍵點步驟日誌列印;級別的選擇;使用***做引數列印,方便排查錯誤;根據級別來輸出對應的日誌檔案

4.可配置化

使用列舉,反射,表查詢,設計模式等方法實現流程等可配置,而不是使用if else if等硬編碼

5.單一職責

不論方法或者乙個類,要確保他隻且只負責一件事情(同一抽象)【影響該類的變化因子只能乙個】

6.做好筆記

任何東西都記錄下來,不要怕麻煩,不要以為能查到就不記錄,記錄過程也是總結的過程,學習的過程!

7. 刻意練習

如何成為乙個高手。

學會學習

進行大量基礎訓練。 刻意練習

讓大腦在學習區,而不是舒適區;學習的本質就是脫離舒適區

及時反饋!!!!!

學習就是把新東西和原來東西縫在一起;做筆記

注:每學習乙個知識點,要寫遍筆記。

8.關於命名下篇補充

做好網頁排版,不要犯這10種錯誤

短腿殭屍木 網路上95 以上的資訊是書面形式的。優化排版則是優化可讀性,可訪問性,可用性,整體圖形平衡。換句話說 優化排版也是優化使用者介面。本文將提供一組規則,幫助您提高文字內容的可讀性和易讀性。1.最少使用字型數量使用超過 3 種不同的字型使 看起來非結構化和不專業,太多的型別尺寸和樣式一次也可...

影響程式設計師生涯的三個錯誤觀念,你千萬不要犯!

到底是怎樣乙個生活群體?是否能找到自己方向?其實,路一直都在那裡,只是你看不到而已!如果你還是乙個剛步入這行的新手,希望這篇文章能讓你今後的程式設計之路,少走一些彎路。好,我們看正文。是不是每天想安安靜靜地寫 時,im視窗或者email總會不合時宜地彈出各種提示,一會要開會啦一會要討論需求了,再一會...

C語言大牛推薦初學者不要犯的17種BUG

c語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,經常會出一些連自己都不知道錯在 的錯誤。看著有錯的程式,不知該如何改起,我們通過對c的學習,積累了一些c...