房間收拾與軟件架構

首先,請容許我作這樣一個對比,畢竟,這兩件事看上去太沒有關係了。事實上,我捉摸房間收拾這個事情的時候,壓根就沒有想過和工做聯繫在一塊兒。但是最後居然走在了一塊兒。架構

不是每個人都須要收拾房間,可是每個人均可以花點時間研究一下收拾房間的方法。我目前一我的住在北京的本身的房間裏,女朋友偶爾來一下。你們能夠想像得出,這種狀況下,房間的情況如何。基本有兩點:ide

  • 房間整潔程度較低
  • 房間保持能力較低

因而,女朋友每次來都很生氣,我也知道後果比較嚴重。但是對我來講,改變這點很是難!必需要超人的毅力和決心不可。不幸的是,我卻犯了重理論輕實踐的錯誤。我開始關注女朋友是如何收拾房間的。開發

剛開始的時候,她告訴我,廚房必須保持乾淨,不然如何如何云云。但是往往發現就是不行。我也很頭疼。後來,女朋友想到一些辦法,在廚房進行功能區劃分,告訴我什麼東東應該放到什麼位置。特別是那些籃子,盆子什麼的。讓我知道什麼東西最後都放到什麼地方就能夠了。我發現這點要求,比要求我「保持乾淨」有用多了,至少我知道如何保持乾淨。it

廚房仍是簡單的,關鍵在臥室,什麼東西都亂扔。一開始也是同樣的要求,但是我同樣作不到。慢慢地,她開始發明一些寶貝。好比,零錢罐,之後全部硬幣或零錢就放到裏面,發票盒,髒衣處,杯子存取處等等。儘管咱們還有不少地方須要改進,但是這些概念的提出,的確能夠對房間收拾起到很大幫助。class

若是咱們看看咱們的軟件架構,也是同樣。若是不思考一下,簡單進行軟件開發。就像我女朋友之前同樣,把家裏從新收拾一遍,過不了幾天,我又會把房間搞亂了。軟件也是如此。軟件在版本開發完成以後,維護工做頗有可能將軟件帶入一個可怕的境地。擴展

因此咱們須要軟件架構。那麼軟件架構又是在作什麼的呢?說簡單點,就是解決問題,但是複雜就複雜在如何解決問題。首先是發現問題之所在,對症下藥。其實對比一下房間收拾,基本上也就是兩個問題:軟件

  • 軟件自己質量問題
  • 軟件擴展維護能力

一個是當前的問題,一個是之後的問題。解決第一個問題,你們都順其天然地比較駕輕就熟。收拾一個房間,相對仍是比較容易的,通常就是比較累的了。可是解決第二個問題,必須有至關的智慧。咱們工做幾年以後,每每都能積累一些經驗,可是若是不知道總結和發明,作軟件架構,每每也只是經驗主義。不能在關鍵點上找到關鍵解決方案。方法

找到了問題的關鍵點,在咱們軟件架構中,就應該提出一個相應的方案來解決它。這和收拾房間同樣,你提出的方案應該有幾個特色,才方便這個方案在之後的軟件維護中,生根發芽!經驗

  1. 問題單一。不要讓幾件不一樣的事,混雜在一塊兒處理。這樣智慧讓人困擾。
  2. 概念清晰。這樣,知道什麼問題,什麼方案解決。一個複雜的概念只是會讓人不知所云。
  3. 藉口簡單。至少,使用起來簡單。也許內部結構比較複雜。可是不能所以就有嚇倒之後的維護人員的理由。
  4. 模塊獨立。不須要單獨維護。誰不喜歡呢?若是每一次需求變動,還須要讓我來維護這個解決架構問題的擴展問題的話,我會很頭疼的!所以自己的擴展性也必定要作好。

說到底,好的解決方案,不光是在軟件架構的時候會有人說起,在軟件維護的實踐中,不斷有人提到。固然不是由於麻煩,而是由於舒心!而且,因爲問題單1、概念清晰,這些方案每每可以複用到其它項目中去。總結

總結一下,本文將房間收拾和軟件架構進行了對比,重點是要描述軟件架構中的解決方案自己的提出及實現的原則。軟件架構包含不少領域,不過咱們討論的這個領域,具備超凡的創造性在裏面。

一句話,軟件須要智慧,軟件須要借鑑!

相關文章
相關標籤/搜索