NO IMAGE

作者: Samer Buna ,EdgeCoder編輯

這篇文章總結了我在過去這些年程式設計過程中踩過的坑。希望能夠分享給走在程式設計路上的你,時刻警醒避免再犯。

01 沒有合理計劃

高質量的程式碼從來不是一蹴而就的。它需要經過思考,調研,計劃,瘋狂寫,測試,改進一系列周而復始的過程,百轉千回,方能煉成。

新手最常犯的錯誤之一就是拿到任務,沒有任何調研和計劃就開寫。

小程式或許還行得通,如果是一個非常大且複雜的專案,基本就狗帶了…

02 過度計劃

凡事過猶不及。永遠沒有一個完美的計劃,計劃也總是在變化。

所以開始有一個大體的規劃後,就要開始想怎麼著手去寫程式碼了。

要在過度計劃和計劃不足間追求一個動態平衡,才能寫出最優程式碼。

切忌一下子把一個大程式中所有的feature一步一步全部考慮周密。

在寫程式碼的過程中,你需要隨時準備新增,刪改feature以及debug,保持高度靈活性。計劃重要,但開始寫更加重要。

03 不關注程式碼質量

混亂程式碼基本等同於垃圾。程式設計的本質是和別人交流關於問題的解決方案,力求清晰簡潔。

一些程式碼在寫的時候需要注意如下小細節:

注意縮排和大小寫

每行別超過80個字元

function長度別超過10行

變數名能夠不言自明,不易混淆

大多數時候,短程式碼比長程式碼好

“想象後面接管你程式碼那人是個有暴力傾向的精神病,一旦寫不清楚,他隨時到你家找你”

04 想到一個方案就開寫

剛開始程式設計時候,往往想到一個方案就開始寫,很少考慮這個方案的時間空間複雜度或者潛在的錯誤。

一個問題如果你沒有想到多個解決方案,很可能是你並沒有真正理解這個問題。

程式設計師的工作重點並不是找到一個問題的答案,而是找到一個問題最簡單的答案。

這裡簡單的意思是這個方案可以正確解決問題,同時又簡單易讀懂。

這個時候需要開闊思路,去google一下其他方法,綜合評定下,選一個可以解決問題並且最簡潔的。

05 不用封裝

封裝,簡單理解就是把一系列的資料放在一個類中。不用封裝常常會造成嚴重的系統維護問題。

新手程式設計師,很難按照直覺建立一個類,或者決定類裡面放什麼。

如果你想改個東西,發現需要同時改更多其他的feature,這個時候得重新想想是不是自己開始架構架錯了 。

就整體而言,你的程式碼需要高聚合性和低耦合性。

06 沒有正確選擇資料結構

新手程式設計師常糾結在演算法上,其實熟練掌握每種資料結構的優缺點更能讓你在程式設計中如虎添翼。關於正確使用資料結構的建議 :

多使用map來代替list

多使用棧來優化迴圈

讓現有程式更亂

在一堆已經很亂的程式裡面找到正確位置並且新增新的feature,類似於向亂成狗窩的房間裡隨手扔進一個新東西 —— 讓現狀變得更亂,並且你也找不到新東西放哪了。

正確的做法是先把現有的整理乾淨,然後再往裡面填加新東西。

以下是一些錯誤的做法:

僅僅為改一行而複製貼上一整段程式碼

不用配置檔案

用沒必要的if條件語句和臨時變數

關於上述的第三點,請看下面的例子

改動前的程式碼:

把不必要的if條件語句稍加改動,程式設計的樣子就清晰多了:

07 不寫測試

如果沒有自動化的話,在建網頁過程中,一般你會每寫幾行就重新整理下來測試。

手動測試並沒有什麼錯,但是更多你要考慮的是,怎麼讓測試這部分自動化,基本上是人做人該做的事情,電腦做電腦該做的事情。

製造並使用工具,是人和動物的本質區別。

“以測試為目標程式設計”並不是一句空話,甚至你可以在寫程式之前先想想怎麼設計測試程式。

08 沒找對工具

錘子可以將一個釘子砸進牆裡,但卻不能把螺絲擰進牆裡。不能說僅僅因為你喜歡用,或者你這把錘子在亞馬孫上面五星好評,你就非要用它做它並不能勝任的事情。

新手需要多瞭解現在手頭上工具的優缺點和侷限性,然後多去了解,多去學習新工具,力求用最合適的工具最高效的幹活。

沒意識到程式問題

會造成資料問題

新手開始往往不會想到資料和程式碼之間的這種關係,有bug的程式碼很可能持續帶來資料一致性的問題。

為避免此類問題,可以選擇用多層資料驗證方式,在前後端,網路傳輸和資料庫這些地方都加入資料驗證。

如果無法辦到這些,至少在資料庫層次加入以下限制。

能夠熟練應用:

NOT NULL

UNIQUE

CHECK

PRIMARY KEY

FOREIGN KEY

09 對Code Review持懷疑態度

新手常把code review當成負面的東西,所有比較抵觸,消極對待甚至害怕。

請點選此處輸入圖片描述

Code Review其實是一個很好的學習過程。

一朝為程式設計師,你需要接受這個過程並學會享受其中。

很多時候,code review會教你一些你不懂的東西,請用積極熱情的態度去迎接你的reviewer。

10 不用版本控制

新手程式設計師常常忽略用版本控制軟體,比如git的重要性。

版本控制並不只是指把你改好的東西匯入別人的程式裡面。

版本控制更多是關於一部開發的歷史。

從這裡面能夠幫我們和後續的開發者提供最一手,最全面的資訊,來了解現在的程式碼是怎麼一步一步得來的。

版本控制意味著可恢復性。 Git甚至可以通過二分法查詢到當初引進bug的那個commit是源自哪裡

更多科技求職諮詢,請關注“來Offer網”