你總是寫出糟糕的代碼而找不到原因,沒關系今天動力節點的老師為大家講解一下原因。
一、明顯原因
一下子可以想到的很明顯的原因是,有好的程序員,也有不那么好的程序員,有的人技術水平高,有的人水平卻低,有人對這門技藝感興趣,但也有的人卻不愿意在工作之外學習其他。那么是不是在這表層之下還有更多的問題呢?有沒有導致糟糕代碼的根本性原因?
二、低預期
初學者總是需要在工作中學習如何產出好的代碼。我們也相信,真正的編程知識只能通過經驗累積才能獲得。因而,初學者甚至覺得他們能寫出的就是糟糕的代碼!
通過強迫他們和大多是低質量的開發者一起工作,我們讓那些關心工藝和對自己的工作質量感到自豪的人過得苦不堪言。
上述兩個因素的結合導致了我們現在這個狀況,每個人都認為他們會寫代碼,但是我們更信任如同品牌商品一樣的專業開發者。
三、編程書籍
初學者參考的那些書籍總是在不經意間準確描繪了差的代碼應該是怎么樣的。任何編程語言的初學者書籍,大多滿是壞的代碼。如 《Clean Code》和《Pragmatic Programming》就是如此,但這些書籍卻被廣泛用于教導大多數的初學者。
一些糟糕代碼的例子……
(3.1)糟糕地命名類、變量和方法
i, ii, j, k用于循環;SampleChapter1用于類名;等等
(3.2)不分離關注點
三頁長的main()方法囊括了一切,沒有根據責任不同分成不同的方法。
(3.3)不好的編碼實踐
沒有如包含驗證或異常處理這樣好的編碼實踐。相反,他們通常使用一個包含所有代碼在類內的大的通用的try()..catch(Exception e)塊。
大量使用if-else,switch,goto語句等。
(3.4)走捷徑
這些書籍還需要擺脫“快速修復”的編程風格。例如,方法中有10個參數并不罕見。需要做兩種類型的計算?沒問題,傳遞一個布爾參數,并添加一個if-else結構即可。需要增加新的功能呢?哈哈,那就添加更多的代碼到那個已經長達兩頁的方法中去!這里只舉幾個走捷徑例子。
學習編程的一個好方法是掌握語言的語法,快速開發所需的工具,以及組成代碼的組件和模塊的設計——以這種順序。
不幸的是,大多數書籍停留在語法上,而不觸及工具和設計改進的話題。雖然這些書的意圖和目的是要教導編程語言的語法,但是閱讀的人同時也會學習編碼風格和方法。
在初學者學習代碼的時候,教導他們明白一件事非常重要,那就是,代碼是為其他人閱讀和理解而寫的,而并非是為了編碼器而寫。
更多Java培訓,Java視頻,Java教程盡在動力節點Java培訓,關注動力節點官方微信,獲得一手Java全新知識。