每個程序員都曾犯過的經典錯誤

人非聖賢,孰能無過。對於犯錯,你不用太困擾,因爲對開發者而言,犯錯太正常不過,並且幾乎每天都會發生。軟件開發很難,因此錯誤或多或少總會發生。犯錯可以接受。事實上,及時反思和總結錯誤才能使我們進一步成長。

下面,我會列舉和解釋一些常見的錯誤,希望你能從中汲取經驗,以便成爲一個優秀的開發者。正如 Eleanor Roosevelt 曾經說過:從別人的錯誤中吸取教訓吧。在有生之年,你不可能把所有的錯都犯一遍。

1.在錯誤的分支中提交代碼

我們首先提到這個問題是因爲,當錯誤被及時發現並定位時,不會對我們造成重大影響。雖然我們在修復這個問題的時候會浪費一些時間。

在錯誤的分支中提交代碼估計每個人都體驗過一次。如果你及時發現這個錯誤,則可以很輕鬆的解決問題,及時止損。否則後續在不斷進化的錯誤分支中修改錯誤會變得十分棘手——在錯誤的道路上走的越來越遠。

2.追求開發速度,忽視代碼質量

在職業生涯中,大多數開發者採取過這種只追求需求響應速度而忽略代碼質量的工作方式。這種處理問題的方式存在嚴重缺陷,它會導致項目背上越來越多的技術債。更重要的是,這種只求速度而忽視代碼質量的方式還可能會破壞團隊的士氣。

然而,在某些情況下,這種開發方式帶來的影響並不重要,反而這可能是最優的解決方案。比如對於代碼生命週期短的開發,這麼做沒有什麼問題。

但是長遠來看,當代碼需要長期運行時,這種開發習慣造成的後果可能會“後患無窮”。

3.編寫過於花哨的代碼

這種情況多發生在那些經驗較少的開發人員身上,在他們的職業生涯中,他們想用這些花哨的代碼打動其他開發者。

不要在編寫花裏胡哨的代碼上浪費太多時間。而是要有目的的編寫代碼,並讓這些代碼按照預期工作。這會給你節省大量時間,讓你繼續做其他有意義的工作,從而給用戶帶來更多價值。

4.低估工作量

“我可以很輕鬆的完成這一特性,小菜一碟。”

然而,事實證明這並沒有你想象的那麼容易。你嘗試的第一個解決方案未達到預期的效果。解決該問題的另一種方法花費了更多時間。

低估工作量是一個經常發生的典型錯誤。尤其是當團隊使用諸如 Scrum 之類的敏捷方法時,你會發現這種錯誤經常發生。

確保你在預估工時時,除了考慮到開發時間,還要額外留一些時間做其他事情,比如測試。

5.認爲你的代碼不需要測試

“這段代碼太小了,不會對整體代碼造成什麼影響。”

每個開發人員都貢獻了少量代碼,沒有破壞任何主要內容。但是你添加的兩行代碼卻造成了意料之外的中斷。

大多數開發者不喜歡測試他們的代碼,一些人不清楚測試意圖,只是認爲這是在浪費時間。

你怎麼知道你的代碼可以完美運行而不會出錯呢?

請讓你的結論得到一些實際測試的支持。全面的測試可以排除關鍵錯誤,從而確保代碼按預期方式執行。

6.沒有提交合理的文件

我經常遇到沒有合理地將文件提交到代碼倉庫的情況。要麼是提交的文件太多,要麼提交的文件有遺漏。

有時候一次提交的文件太多,這就丟失了通過 IDE 統計的文件在倉庫中最終變更的次數。這主要與開發人員的不良代碼管理習慣有關。一股腦的將所有文件一次性提交到代碼倉庫通常是不可取的。

舉一個常見例子,比如yarn.lock 文件遺漏提交。大多數情況下,這與缺乏相應的知識和理解有關。部分開發者可能不知道某些文件存在的作用,因此害怕將其添加到代碼倉庫。或者簡單地認爲這些文件只是本地開發環境的配置而已。

儘管這取決於遺漏的是什麼樣的文件,但大多數情況下這種錯誤會把你搞得一團糟。如果缺少 yarn.lock 文件,你可能會在項目中使用不同版本的依賴關係。這很有可能導致一些BUG。

7.重複造輪子

大多數開發者使用某種框架來簡化繁雜開發。如果你正在學習某個框架,你可能會忽視其實框架已經給你提供好了所需要的一些 API。

經常發生的一個錯誤就是開發者不知道自己正在使用的框架所提供的已有功能有哪些。由於缺乏對框架的全面瞭解,自己可能會重新造一個輪子來實現框架中已有的功能。

重複造輪子而沒有使用框架中的已有功能,這非常浪費時間。

8.眼高手低,缺少訓練

熟能生巧,每個人都知道這一點。所以爲了拓展自己的技能,你需要更多的訓練。作爲一個開發者,學習新知識淺嘗輒止,這是非常忌諱的。

如果你想學一個新技術或者一門新的編程語言,你可能只有在你的工作之餘進行了。這是你自己必須進行的一項投資,以便自己跟上當前流行技術,不脫離時代。

如果你認爲你可以做一些練習,我之前寫了一篇文章,裏面例舉了很多有意思的項目,你感興趣的話可以試一下。

9.亂用繼承

繼承本身沒有什麼問題。然而,我看到很多開發者常見的錯誤就是過度使用繼承甚至濫用。如果你發現自己在項目中大量使用了繼承,則項目極有可能“過度設計”。

過度設計可能導致代碼被設計的過於通用,以至於忽視了最初設計的初衷。因此,代碼會變得異常難用。

正如我所說的,繼承並不總是不好的。但它不是你修復問題時的第一選擇。

10.過於自信

許多開發者過於自信。當然,在一定程度上,擁有自信是一件很棒的事情。作爲一名開發者,當你過度自信時,你很難獲得從他人那裏獲得良好的反饋。

過於自信的開發者完全意識不到自己也會犯錯誤的事實,因此他們傾向於在不諮詢他人的情況下做出決策。這不是最好的辦法,因爲在某些情況下出現一些問題,讓你措手不及 – 比如你確實選擇了一個非最優的方案,甚至其他開發者覺得自己被忽視和貶低了。

作爲一個開發者,保持謙虛,清晰得意識到自己能力所及是非常難得的。

總結

既然我們已經過了一遍上面所述的每一個開發者可能會犯的錯誤,那麼花一兩分鐘從中學習來避免自己犯錯是非常明智的。

在你走向優秀的開發者的道路上,你必須記住,犯錯是可以的。人非聖賢,孰能無過。知錯能改,善莫大焉。

英文原文:

Classic Mistakes That Every Developer Has Made

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章