被神化的架構及被誇大的CTRL+C和CTRL+V

來源:互聯網
上載者:User

為什麼我想談談架構,和代碼的複製粘貼這兩個話題呢,主要是前幾天看到一篇文章提到這兩個話題,在這裡想談談我的一些看法。

很多新人,都很談架構,好象貼了架構這個標籤就顯示高檔似的,把設計模式當作聖經,實在可笑。做架構,不是捧著書,然後閉門苦思就能想出來的。

架構是做出來的,不是設計出來的

架構,說穿了就是解耦,把變化的東西抽離出來,這個是它的本質。一般來說,越接近底層的東西越是穩定,越接近業務層的東西越容易變化。如果想在業務層上作封裝,也就是說想作架構設計,必須充分瞭解業務,沒有足夠的編碼經驗是不可能做好的。所以我經常說,架構不是設計出來的,而是做出來的,只要你做完了,整個業務都確定了下來了,瞭解充分了,你才可能設計出合理的架構。因為,架構是依賴於需求的,都需求沒有確定下來的情況下做架構,需求一變,那些所謂的架構不是要改得一踏糊塗,最後連自己都看不下去了,再推倒重來。事實上,應該是在項目的後期,完工了,商務程序也確定了,這個時候才有架構可談。

架構設計,還要考慮成本,很多新手,往往會忽視這個問題,也就是說,你必須考慮做這個架構要花多少時間,能節省多少時間。如果花費遠大於收益,那就沒有意義了。但是他們往往會解釋,現在多花點時間,後期就能少花很多時間了。但是事實往往是,前期多花時間,後期也多花時間,老是想讓這個架構變得更完美而沉迷其中,不能自拔。我們往往過度沉迷於架構,而忘了做項目的目的。做項目的,是為瞭解決客戶業務上的問題,能夠提高他們的業務水平,這才是本質。

架構,其實沒啥的,你的代碼看得多了,寫得多了,自然就會有架構了,記住封裝變化這個核心就行了。其實閱讀代碼、分析代碼、編寫代碼都是真正的基本功,正所謂“練拳不練功,到老一場空”,寫程式也是,作為新人,應該多花時間去閱讀代碼,編寫代碼上面,把自己的基本功練紮實才是最為重要的。

代碼的複製、粘貼不是洪水猛獸

很多人都習慣性地鄙視CTRL+C,CTRL+V,好象一旦和它們沾邊,就是爛代碼,其實大可不必。我們考慮一下,為什麼不能CTRL+C,CTRL+V 呢?因為這些代碼不好維護,打個比方說,有兩處相同的代碼,那麼有可能就要改兩處。但是,你們有沒有碰到這麼一種情況呢,我們先來假設一下,有三個地方,A、B,C,都調用到一個函數,這個函數稱為 M 吧。

但是,不久之後,接到一個需求上的變化,A 的業務改變了,需要修改 M 的函數,但B,C 的沒有變,那麼我們習慣性的在函數 M 裡加個 if 來判斷,如果是 A 的業務,就如何如何。

不久之後,又收到需求變化,B 的業務改變了,那麼習慣性的,又會在 M 函數裡加一個 if 邏輯塊。

不久之後,又收到需求變化,C 的業務改變了,那麼習慣性的,又會在 M 函數裡加一個 if 邏輯塊。

請問,這樣 M 函數充滿這麼多的 if ,還容易維護嗎?還不如寫成三個函數呢。

所以,我們大可不必視複製粘貼為洪水猛獸,只要在可控的範圍內就行了,當然,如果業務確定下來是不會變化的,還是一個。什麼是可控呢?我覺得複製只有兩、三個地方,都問題不大。總之,存在這是合理,很多時候,我們總習慣於高估自己,而低估別人。

更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.