當前位置:才華齋>職業>系統架構師>

2017系統架構師知識整理

系統架構師 閱讀(3.26W)

系統架構師是很多軟體行業的從業人員的終極目標,要想成為系統架構師,知識的儲備不能少,下面小編為大家整理了一些關於系統架構師的知識,歡迎大家閱讀!

2017系統架構師知識整理

  考慮使用者的觀點

當您為智慧客戶端應用程式確定合適的效能目標時,您應該仔細考慮使用者的觀點。對於智慧客戶端應用程式而言,效能與可用性和使用者感受有關。例如,只要使用者能夠繼續工作並且獲得有關操作進度的足夠反饋,使用者就可以接受漫長的操作。在 確定要求時,將應用程式的功能分解為多個使用情景或使用案例通常是有用的。您應該識別對於實現特定效能目標而言關鍵且必需的使用案例和情景。應該將許多使 用案例所共有且經常執行的任務設計得具有較高效能。同樣,如果任務要求使用者全神貫注並且不允許使用者從其切換以執行其他任務,則需要提供優化的且有效的使用者 體驗。如果任務不太經常使用且不會阻止使用者執行其他任務,則可能無須進行大量調整。對於您識別的每個效能敏感型任務,您都應該精確地定義使用者的操作以及應用程式的響應方式。您還應該確定每個任務使用的網路和客戶端資源或元件。該資訊將影響效能目標,並且將驅動對效能進行度量的測試。可 用性研究提供了非常有價值的資訊源,並且可能大大影響效能目標的定義。正式的可用性研究在確定使用者如何執行他們的工作、哪些使用情景是共有的以及哪些不是 共有的、使用者經常執行哪些任務以及從效能觀點看來應用程式的哪些特徵是重要的等方面可能非常有用。如果您要生成新的應用程式,您應該考慮提供應用程式的原 型或模型,以便可以執行基本的可用性測試。

  事務原則

事務可以提供重要的支援,以確保不會違反業務規則並維護資料一致性。事務可以確保一組相關任務作為一個單元成功或失敗。您可以使用事務來維護本地資料庫和其他資源(包括訊息佇列的佇列)之間的一致性。對於需要在網路連線不可用時使用離線快取資料的智慧客戶端應用程式,您應該將事務性資料排隊,並且在網路連線可用時將其與伺服器進行同步。您 應該避免使用涉及到位於網路上的資源的分散式事務,因為這些情況可能導致與不斷變化的網路和資源響應時間有關的效能問題。如果您的應用程式需要在事務中涉 及到位於網路上的資源,則應該考慮使用補償事務,以便使您的應用程式能夠在本地事務失敗時取消以前的請求。儘管補償事務在某些情況下可能不適用,但它們使 您的應用程式能夠按照鬆耦合方式在事務的上下文內與網路資源互動,從而減少了不在本地計算機控制之下的資源對應用程式的效能造成不利影響的可能性。

  制定效能目標

當您設計和規劃智慧客戶端應用程式時,您應該仔細考慮效能方面的要求,並且定義合適的效能目標。在定義這些目標時,請考慮您將如何度量應用程式的實際效能。 您的效能度量標準應該明確體現應用程式的重要效能特徵。請努力避免無法準確度量的模糊或不完整的目標,例如,“應用程式必須快速執行”或“應用程式必須快 速載入”。您需要了解應用程式的效能和可伸縮性目標,以便您可以設法滿足這些目標並且圍繞它們來規劃您的測試。請確保您的目標是可度量的和可驗證的.。定義良好的效能度量標準使您可以準確跟蹤應用程式的效能,以便您可以確定應用程式是否能夠滿足它的效能目標。這些度量標準應該包括在應用程式測試計劃中,以便可以在應用程式的測試階段度量它們。本 節重點討論與智慧客戶端應用程式相關的特定效能目標的定義。如果您還要設計和生成客戶端應用程式將消耗的網路服務,則您還需要為這些服務定義適當的效能目 標。在此情況下,您應該確保考慮整個系統的效能要求,以及應用程式各個部分的效能與其他部分以及整個系統之間存在怎樣的關係。

  效能調整和診斷

在設計和實現階段處理效能問題是實現應用程式效能目標的最划算的方法。但是,您只有在開發階段經常且儘早測試應用程式的效能,才能真正有效地優化應用程式的效能。盡 管針對性能進行設計和測試都很重要,但在這些早期階段優化每個元件和所有程式碼不是有效的資源用法,因此應該予以避免。所以,應用程式可能存在您在設計階段 未預料到的效能問題。例如,您可能遇到由於兩個系統或元件之間的無法預料的互動而產生的效能問題,或者您可能使用原來存在的、未按希望的方式執行的程式碼。 在此情況下,您需要追究效能問題的根源,以便您可以適當地解決該問題。本節討論一些將幫助您診斷效能問題以及調整應用程式以獲得最佳效能的工具和技術

  優化顯示速度

根據您用於顯示使用者介面控制元件和應用程式窗體的技術,您可以用多種不同的方式來優化應用程式的顯示速度。當您的應用程式啟動時,您應該考慮儘可能地顯示簡單的使用者介面。這將減少啟動時間,並且向用戶呈現整潔且易於使用的使用者介面。而且,您應該努力避免引用類以 及在啟動時載入任何不會立刻需要的資料。這將減少應用程式和 Framework 初始化時間,並且提高應用程式的顯示速度。當您需要顯示對話方塊或窗體時,您應該在它們做好顯示準備之前使其保持隱藏狀態,以便減少需要的繪製工作量。這將有助於確保窗體僅在初始化之後顯示。如果您的應用程式具有的控制元件含有覆蓋整個客戶端表面區域的子控制元件,則您應該考慮將控制元件背景樣式設定為不透明。這可以避免在發生每個繪製事件時重繪控制元件的背景。您可以通過使用 SetStyle 方法來設定控制元件的樣式。使用 ue 列舉可以指定不透明控制元件樣式。您應該避免任何不必要的控制元件重新繪製操作。一種方法是在設定控制元件的屬性時隱藏控制元件。在 OnPaint 事件中具有複雜繪圖程式碼的應用程式能夠只重繪窗體的無效區域,而不是繪製整個窗體。OnPaint 事件的 PaintEventArgs 引數包含一個 ClipRect 結構,它指示視窗的哪個部分無效。這可以減少使用者等待檢視完整顯示的時間。使用標準的繪圖優化,例如,剪輯、雙緩衝和 ClipRectangle。這還將通過防止對不可見或要求重繪的顯示部分執行不必要的繪製操作,從而有助於改善智慧客戶端應用程式的顯示效能。

如果您的顯示包含動畫或者經常更改某個顯示元素,則您應該使用雙緩衝或多緩衝,在繪製當前影象的過程中準備下一個影象。s 名稱空間中的 ControlStyles 列舉適用於許多控制元件,並且 DoubleBuffer 成員可以幫助防止閃爍。啟用 DoubleBuffer 樣式將使您的控制元件繪製在離屏緩衝中完成,然後同時繪製到螢幕上。儘管這有助於防止閃爍,但它的確為分配的緩衝區使用了更多記憶體。