淺析.NET設計架構十條箴言

來源:互聯網
上載者:User

 

淺析.NET設計架構十條箴言2011-07-27 09:17 小胖 部落格園 我要評論(2) 字型大小:T |
T

本文將介紹.NET設計架構方面的知識,希望這十條箴言能協助大家更好的做好.NET程式設計。

AD:


    這是看《Microsoft .NET Architecting Applications for the Enterprise 》書中摘記下來的,有必要經常提醒自己。

    箴言一——凡事無絕對

    凡事無絕對。作為架構師,你永遠不會對任何事情有百分百的把握,你永遠無法面面俱到。不過在這個位置上,你就必須評估所有的可選方案,並作出有足夠預見性的正確決策。你需要為自己爭取一些時間,以便慢慢思考,因此首先說“凡事無絕對”,然後解釋為什麼是這樣,變數有哪些。若你還不確定有些變數,那麼可以選用這個通用的回答——“這取決於上下文”。

    箴言2——需求是超越一切存在的

    架構僅僅是軟體項目中一個自然的連結部分。客戶將說出他們需要什麼,若是客戶吧清楚自己的需求,那麼會有人引導直至得到明確的答案,這是分析師的職責。專案經理將為這個已經正式確定的項目安排基礎設施。架構師會得到所有的需求,並為開發人員提供設計。開發人員將按照架構的意圖開發。資料庫管理員也會儘力讓資料庫能良好支援應用程式。你會認識到,客戶位於這個鏈條的頂端,且客戶的需求才是最重要的部分,客戶所需要的東西叫做需求。當然,沒有幾個客戶知道他自己真正需要的是什麼,因此需求會不停地變化。

    箴言3——根據介面編程

    雖然我們是依靠最終實現代碼來完成需求的,不過仍應該儘可能地使用介面。請牢記“沒有介面的話就不要開始實現”這句話。仔細分析,你總會找到可以提取的介面。

    箴言4——保持簡單,但不過與簡單

    你應該聽說過KISS(Keep It Simple,Stupid)原則,但這隻是我們修改後的觀點。簡潔明了通常就意味著優秀。以簡單為目標,不過要留有自己的底線。若是低於這個底線,那麼你的解決方案將變得過於簡單,這並不是一件好事。

    箴言5——繼承是為了多態,不是重用

    物件導向編程(OOP)讓我們僅編寫一個類,然後不停地重用並根據需要擴充,這是依靠繼承實現的。不過這就是類重用的全部嗎?“重用”這個概念要比你第一眼看上去更加微妙。多態是物件導向編程的核心功能,意味著你可以互換地使用兩個繼承類。同時,有些人給出了總結:“蟲咬是繼承的一個附帶功能。”不過重用不應該成為你的根本目標,換句話說,不要僅為了重用而使用繼承。最好是編寫一個新的類來滿足需iqu,而不是繼承某個原本不是完成此工作的現有類。

    箴言6——不要再非資料訪問層中使用SQL

    牢記這一條:分離關注點。將資料存取碼和細節(例如,連接字串、命令和資料表名)先放在一邊。或早或晚你總會開始處理,不過不是在設計商務邏輯層和表現層時。如果可能請將持久化工作交給對象/關係映射(Object/Relational Mapper)等專門的工具處理。

    箴言7——首先考慮可維護性

    若你僅能為軟體選擇一個特性,那麼應該如何選擇呢?選擇延展性、安全性、效能,可測試性還是可用性?在我們看來,上述這些都不是最重要的,最重要的是可維護性。有了可維護性,上述所有特性都可以在日後實現。

    箴言8——所有的使用者輸入都是罪惡的

    你應該早已聽過這種說法。“紙包不知火”,若是有某種途徑讓使用者可以入侵,那麼遲早會被使用者發現。這似乎是墨菲法則,確實如此。

    箴言9——事後最佳化

    Donald Knuth曾說過,過早地最佳化時所有軟體罪惡的根源。我們講該說法更進一步——不要最佳化系統,而是讓其設計儘可能地面對改進和擴充,僅在系統完成之後,再關注純粹的最佳化。

    箴言10——在設計時考慮安全性和可測試性

    若你很在乎某個系統特性,那麼在設計開始前就應該考慮到它。安全性和可測試性也是如此。甚至一個國際標準組織(ISO)的規範也明確地闡述了這一點。

    聯繫我們

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