壊小子的學習【程式開發學習篇】(四)代碼最佳化學習

來源:互聯網
上載者:User

其實在軟體開發的學習過程中,語言是比較好學的。畢竟只是掌握文法,記住一些單詞就差不多了,另外再瞭解一些該語言所專屬的特性。而在軟體開發中真正難的應該是除語言以外的軟實力。就好比我們在找工作的時候,技術能力是我們的硬實力,而學習能力、待人辦事能力則是我們的軟實力,這兩方面的實力應該是相輔相成不可分離的否則就無法將我們自己構建成一個完整的人,甚至在更多的情況下是軟實力塑造了我們的硬實力,是我們各種能力的基石。而開發思想、設計思維、資料分析等等一系列相關知識就構成了我們軟體開發的軟實力。

 

我接觸過的,也應該是大家接觸的最多的便是設計模式、重構以及資料結構這三個方面。其他的東西就真沒有什麼涉獵了。一是前面的文章中都提到過自己並非科班出身,連高中都沒上過的人看著資料結構真的是像天書一般。二是在認清自己目標與能力的基礎上,制定了其他方向上的學習目標,所以在這方面並沒有投入太多,因此,在這裡只是簡單聊聊而已,並非是一篇言傳身教的文章,或許也有很多的錯誤還望指證。

 

我們先從設計模式說起,其實這個方面的內容在培訓的時候就已經接觸過。當時做的練習便是鼎鼎大名的"抽象工廠"。這個模式似乎真的是滿大街的培訓學校或正規大學都在教,或許是因為他最能體現設計模式的理念。相信大家應該都知道物件導向的三大特點:封裝、繼承和多態,而設計模式的繁榮則是在物件導向開發正式成為主流後才流行起來的,因此也聽過不少的說法便是"設計模式正是為了彌補物件導向開發中的不足"。在這裡我不能下準確的判斷來證明這個說法是否準確,但就自己的觀點來說,這句話感覺上應該是沒什麼問題的。

 

我看過Gof的設計模式的書,也看過HeadFirst系列的,前幾個月還看了一遍《大話設計模式》。講解設計模式的書其實真的不少,形式也各種各樣,雖說我看過這幾本但也都是一知半解的並且也沒有怎麼跟著練習,所以說學的並不紮實。不過在最後這一次看《大話》的過程中倒是有些感悟。一是設計模式其實在我們的日常開發中已經用過不少,比如策略、模板方法、簡單工廠、單例等等。二是有些模式還真的從沒用過,比如解譯器、享元、備忘錄等等。三是設計模式很好,但應該多用於實踐中,在實踐中選擇最佳的模式,而不是濫用這些模式,不能神化它們,更主要的還是理清邏輯。

 

對於設計模式的理解也就只有這麼多,其實也是比較粗淺的,但資料結構則是更讓我受不了的一項重要知識。資料結構方面我是真的沒有任何的發言權,書也買過幾本,不過目前的水平就是除了幾個簡單的演算法和排序之外其餘的啥也不會,更不要跟我提什麼複雜度之類的名詞,它們對於我來說還真的就只是個名詞而已。

 

最後談談項目的重構。其實每次的項目完成後在測試期間都會進行一些重構,如果不是時間問題大部分的項目都能夠做出不少的重構並使代碼更加的優雅簡潔,但這種情況很少出現。其實我自己是個有點強迫症的完美主義者,我希望My Code有著整齊好看的注釋,我也希望My Code能夠簡潔美觀,決不能出現重複的代碼,決不能讓一個方法超過一屏。但這些在幾年的開發過程中還真的沒有完完全全的實現過我這個宏偉的願望!

 

我的重構很簡單,充分發揮物件導向的三大特性,再就是根據我第一家公司的經理說過的很經典的一句話:"物件導向就是啥都是點出來的!"作為原則來進行重構。其實無非就是利用好繼承與重寫多態這些功能,而封裝往往是在開始編碼的階段便進行考慮。另外就是理清包含之間的關係,層次架構之間的關係。最後就是補完注釋,方便將來的維護。

 

------------------------------------------------

使用Word2007發布,片未顯示或提示有附件但無附件的,請移步至獨立部落格查看完整文章!

文章修改及增加內容僅在獨立部落格中更改!

我的獨立部落格:壊小子 - http://www.zyblog.net/

本文連結:http://www.zyblog.net/post-114.html

歡迎轉載,轉載請註明本文來源。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.