文章轉載自「開發者圓桌」一個10年老猿原創文章傳播開發經驗,尤爲適合初學者或剛入職場前幾年程序猿的微信公衆號。程序員
你代碼寫的真爛,我會很生氣算法
剛入職場的前幾年,一直從事系統維護的工做,見過太多人的代碼,有時候感受寫的很好,有時感受寫的太爛,對於太爛的代碼往往都有一種刪除重來的感受。
編程
別人一旦說個人代碼太爛,我會很生氣,感受本身寫的是世界上最好的代碼,哈哈,也只能怪本身太年輕。設計模式
你代碼寫的真爛,我會微微一笑微信
當剛開始編程時,看到過一段程序,我認爲那是毋庸置疑的寫的很爛的,而後刪掉了那段代碼,用本身認爲更好的方式從新寫了一遍。當我變成的成熟後,回頭再看,發現我所刪掉的那段代碼實際上是用了一個很好的設計模式,而我重寫的確是醜陋無比。ide
我就這樣被上了一課。spa
以後的日子裏,我常常會遇到我認爲是醜的不能再醜的代碼。儘管如此,我也不通篇否認它們了,我只會在其中找一些特別的沒法容忍的部分從新編寫。可10次中有9次,當我快要完成時,我發現了一個問題使我不得不對本身說「哦,怪不得他們要寫成這樣了」,而後把代碼恢復成原樣,或也使用一樣「醜的不能再醜」方式完成它。設計
如今我變的更成熟了,我能夠充滿自信的告訴你,我不再會看着別人編的代碼說「哦,這代碼很爛」了。我知道,在沒有了解整個程序的解決方案以前,你不可能就那麼輕易的判斷代碼的好和壞。真的,有時候它看起來很傻,或完成的很差,或沒有文檔標註(個人意思是自我註釋),然而,你根本就不可能知道程序員在寫這段代碼時腦殼裏是怎麼思考的。更多的狀況是,他們要選擇這樣作是有必定的理由的,除非去深刻的研究它們,你不可能再有其餘簡單快速的方法來理解程序的上下文環境。orm
因此,每當聽到有人看着別人的代碼說很爛時,我只會微微一笑,讓我想起我當年的天真和盲目自信。的確,我之前堅信本身是個出色的開發人員,堅信知道每種算法的最優設計。我很想念當時的自大,可是我很高興如今學到的這些理念,我知道,我惟一能鄙視的代碼只能是我本身的代碼,鄙視的緣由就是我不能使它變的更好。圖片
什麼是好的代碼?如何寫出好的代碼?
在一本關於如何寫出高質量代碼的書面前,我再多的描述也是蒼白的,下面直接介紹這本叫作「代碼大全」的書。
代碼大全(第二版),是著名IT暢銷書做者Steve McConnell 11年前的經典著做的全新演繹:第二版不是初版的簡單修訂增補,而是徹底進行了重寫;增長了不少與時俱進的內容。
這也是一本完整的軟件構建手冊,涵蓋了軟件構建過程當中的全部細節。它從軟件質量和編程思想等方面論述了軟件構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。
本書中所論述的技術不只填補 了初級與高級編程技術之間的空白,並且也爲程序員們提供了一個有關編程技巧的信息來源。本書對經驗豐富的程序員、技術帶頭人、自學的程序員及幾乎不懂太多編程技巧的學生們都是大有裨益的。能夠說,不管你是什麼背景,閱讀本書都會讓你在更短的時間內、更容易地寫出更好的程序。