- 相關推薦
2017系統架構師知識整理
系統架構師是很多軟件行業的從業人員的終極目標,要想成為系統架構師,知識的儲備不能少,下面小編為大家整理了一些關于系統架構師的知識,歡迎大家閱讀!
考慮用戶的觀點
當您為智能客戶端應用程序確定合適的性能目標時,您應該仔細考慮用戶的觀點。對于智能客戶端應用程序而言,性能與可用性和用戶感受有關。例如,只要用戶能夠繼續工作并且獲得有關操作進度的足夠反饋,用戶就可以接受漫長的操作。在 確定要求時,將應用程序的功能分解為多個使用情景或使用案例通常是有用的。您應該識別對于實現特定性能目標而言關鍵且必需的使用案例和情景。應該將許多使 用案例所共有且經常執行的任務設計得具有較高性能。同樣,如果任務要求用戶全神貫注并且不允許用戶從其切換以執行其他任務,則需要提供優化的且有效的用戶 體驗。如果任務不太經常使用且不會阻止用戶執行其他任務,則可能無須進行大量調整。對于您識別的每個性能敏感型任務,您都應該精確地定義用戶的操作以及應用程序的響應方式。您還應該確定每個任務使用的網絡和客戶端資源或組件。該信息將影響性能目標,并且將驅動對性能進行度量的測試? 用性研究提供了非常有價值的信息源,并且可能大大影響性能目標的定義。正式的可用性研究在確定用戶如何執行他們的工作、哪些使用情景是共有的以及哪些不是 共有的、用戶經常執行哪些任務以及從性能觀點看來應用程序的哪些特征是重要的等方面可能非常有用。如果您要生成新的應用程序,您應該考慮提供應用程序的原 型或模型,以便可以執行基本的可用性測試。
事務原則
事務可以提供重要的支持,以確保不會違反業務規則并維護數據一致性。事務可以確保一組相關任務作為一個單元成功或失敗。您可以使用事務來維護本地數據庫和其他資源(包括消息隊列的隊列)之間的一致性。對于需要在網絡連接不可用時使用脫機緩存數據的智能客戶端應用程序,您應該將事務性數據排隊,并且在網絡連接可用時將其與服務器進行同步。您 應該避免使用涉及到位于網絡上的資源的分布式事務,因為這些情況可能導致與不斷變化的網絡和資源響應時間有關的性能問題。如果您的應用程序需要在事務中涉 及到位于網絡上的資源,則應該考慮使用補償事務,以便使您的應用程序能夠在本地事務失敗時取消以前的請求。盡管補償事務在某些情況下可能不適用,但它們使 您的應用程序能夠按照松耦合方式在事務的上下文內與網絡資源交互,從而減少了不在本地計算機控制之下的資源對應用程序的性能造成不利影響的可能性。
制定性能目標
當您設計和規劃智能客戶端應用程序時,您應該仔細考慮性能方面的要求,并且定義合適的性能目標。在定義這些目標時,請考慮您將如何度量應用程序的實際性能。 您的性能度量標準應該明確體現應用程序的重要性能特征。請努力避免無法準確度量的模糊或不完整的目標,例如,“應用程序必須快速運行”或“應用程序必須快 速加載”。您需要了解應用程序的性能和可伸縮性目標,以便您可以設法滿足這些目標并且圍繞它們來規劃您的測試。請確保您的目標是可度量的和可驗證的。定義良好的性能度量標準使您可以準確跟蹤應用程序的性能,以便您可以確定應用程序是否能夠滿足它的性能目標。這些度量標準應該包括在應用程序測試計劃中,以便可以在應用程序的測試階段度量它們。本 節重點討論與智能客戶端應用程序相關的特定性能目標的定義。如果您還要設計和生成客戶端應用程序將消耗的網絡服務,則您還需要為這些服務定義適當的性能目 標。在此情況下,您應該確保考慮整個系統的性能要求,以及應用程序各個部分的性能與其他部分以及整個系統之間存在怎樣的關系。
性能調整和診斷
在設計和實現階段處理性能問題是實現應用程序性能目標的最劃算的方法。但是,您只有在開發階段經常且盡早測試應用程序的性能,才能真正有效地優化應用程序的性能。盡 管針對性能進行設計和測試都很重要,但在這些早期階段優化每個組件和所有代碼不是有效的資源用法,因此應該予以避免。所以,應用程序可能存在您在設計階段 未預料到的性能問題。例如,您可能遇到由于兩個系統或組件之間的無法預料的交互而產生的性能問題,或者您可能使用原來存在的、未按希望的方式執行的代碼。 在此情況下,您需要追究性能問題的根源,以便您可以適當地解決該問題。本節討論一些將幫助您診斷性能問題以及調整應用程序以獲得最佳性能的工具和技術。
優化顯示速度
根據您用于顯示用戶界面控件和應用程序窗體的技術,您可以用多種不同的方式來優化應用程序的顯示速度。當您的應用程序啟動時,您應該考慮盡可能地顯示簡單的用戶界面。這將減少啟動時間,并且向用戶呈現整潔且易于使用的用戶界面。而且,您應該努力避免引用類以 及在啟動時加載任何不會立刻需要的數據。這將減少應用程序和 .NET Framework 初始化時間,并且提高應用程序的顯示速度。當您需要顯示對話框或窗體時,您應該在它們做好顯示準備之前使其保持隱藏狀態,以便減少需要的繪制工作量。這將有助于確保窗體僅在初始化之后顯示。如果您的應用程序具有的控件含有覆蓋整個客戶端表面區域的子控件,則您應該考慮將控件背景樣式設置為不透明。這可以避免在發生每個繪制事件時重繪控件的背景。您可以通過使用 SetStyle 方法來設置控件的樣式。使用 ControlsStyles.Opaque 枚舉可以指定不透明控件樣式。您應該避免任何不必要的控件重新繪制操作。一種方法是在設置控件的屬性時隱藏控件。在 OnPaint 事件中具有復雜繪圖代碼的應用程序能夠只重繪窗體的無效區域,而不是繪制整個窗體。OnPaint 事件的 PaintEventArgs 參數包含一個 ClipRect 結構,它指示窗口的哪個部分無效。這可以減少用戶等待查看完整顯示的時間。使用標準的繪圖優化,例如,剪輯、雙緩沖和 ClipRectangle。這還將通過防止對不可見或要求重繪的顯示部分執行不必要的繪制操作,從而有助于改善智能客戶端應用程序的顯示性能。
如果您的顯示包含動畫或者經常更改某個顯示元素,則您應該使用雙緩沖或多緩沖,在繪制當前圖像的過程中準備下一個圖像。System.Windows.Forms 命名空間中的 ControlStyles 枚舉適用于許多控件,并且 DoubleBuffer 成員可以幫助防止閃爍。啟用 DoubleBuffer 樣式將使您的控件繪制在離屏緩沖中完成,然后同時繪制到屏幕上。盡管這有助于防止閃爍,但它的確為分配的緩沖區使用了更多內存。
【系統架構師知識整理】相關文章:
如何成為優秀的系統架構師08-30
小升初數學倍數特征知識點的歸納整理08-28
嵌入式系統基礎知識10-28
消化系統疾病的檢驗知識08-27
外科各系統疾病護理常規知識08-26
2022音響設備與系統基礎知識大全04-28
計算機系統的安全技術知識11-11
會計基礎各章節知識點整理04-15
英語數詞詞匯的整理04-12
CAD制圖規范及技巧整理08-29