關於軟體的思考(一)---物件導向、模式、架構

來源:互聯網
上載者:User
對象
    軟體是什嗎?這是一個很難說明的問題。簡單的說,它是一些有邏輯的電腦代碼。但是從另外的角度來說,它也有很多種意義也存在多種迷惑。比如,軟體是不是一種工具?它和人的思維到底是什麼關係?他應該不應該有個性甚至於有生命?軟體的未來是什麼樣的?軟體和人未來會是什麼關係?



       人類對於電腦軟體的研究已經有幾十年的曆史,但是感覺上還是在軟體發展的初級階段。軟體的發展方向不明確,軟體自身的很多問題從產生以來就一直困擾著開發人員。人們發明了多種開發語言,也發明了面向過程和物件導向兩大類開發方法。這些對軟體的開發都有裡程碑式的意義,但是還不夠。比如物件導向的方法論,它準確描述了從客觀世界到軟體基礎代碼的映射關係,有非常基本的意義。但是這遠遠不夠,就像我們蓋一座房子,除了要有磚瓦之外,還需要建築圖紙。物件導向的方法論就是蓋房子用的磚瓦,磚瓦有了,房子蓋成什麼樣,還是要看建築圖紙,我們現在缺的,就是好的建築圖紙。所以說,光有物件導向的方法論,或是僅僅沉迷於它的研究,就希望能夠有好的軟體,是非常短視的想法。



       那麼,好的軟體設計如果不是指物件導向這樣的方法論,那是什嗎?好的建築圖紙從哪裡來?當然,一種好的途徑是從經驗中來。這方面的工作人們也作了一些,比如模式和架構,這些都是一些很好的東西,但是有一定的局限性,它們的注意力主要集中在局部,作出的東西是一些組件,好比建築中的標準件。更好的做法是著眼於全域,建立一些軟體級的標準模式或架構。但是這種做法在帶來快速開發的好處的同時又失去了個人化,好像人們無法忍受整個城市的房子使用同一張圖紙一樣。



       如何解決這個問題呢?方法之一是找到具有足夠靈活性的架構。這種架構的結構要堅固,同時又很容易作個人化的工作。使用這種架構的軟體都有類似的結構,但是又能滿足各自不同的要求。正好像一個城市的房子都有類似的外觀和結構,但又各各不同,不但不讓人覺得枯燥,反而這體現了這個城市的風格一樣。我們現在有一些類似意義上的架構,如J2EE、.NET,但是沒有很好的體現上述理念。






相關文章

聯繫我們

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