天天看點

《軟體架構師應該知道的97件事》摘…

近期,借了一本書——《軟體架構師應該知道的97件事》,很不錯的,都是一些擁有豐富經驗的國外架構師們的一些觀點,借此把一些覺得很好的論點摘錄下來。

  1. 關注根本複雜性,消除偶發複雜性,抽絲剝繭制定解決方案,才是真正的挑戰。
  2. 人才是項目成敗與否的基礎,對話是最古老但很完善的技術幫助你解決問題。學會尊重他人,給予團隊成員充分的信任,是聰明的架構師獲得成功必須掌握的核心技能。對話技巧——不要把對話當成對抗;不要帶着情緒與人溝通;嘗試通過溝通設定共同的目标。
  3. 架構是決定應用性能的根本因素。
  4. 分析客戶提出的需求,定位真正的問題。
  5. 起立發言無形中增添了一種權威和自信,自然就控制了場面。聽衆不會輕易打斷你的發言。這些都會讓你的發言效果大為改觀。
  6. 隻有認識到故障始終會發生的這一事實,才能針對特定的故障設計對策。
  7. 項目投資人在和你讨論項目及各類資源需求時,他明白他在和你談判,會絞盡腦汁占得先機,故決不能在該決斷下來的要求上妥協讓步。
  8. 所有需求必須量化,不允許出現“靈活”、“易擴充”等詞,這導緻驗收時缺乏依據。
  9. 不存在放之四海皆準的解決方案,也不可能做出一個十全十美的設計,需要在性能、可用性、安全等問題上做好平衡。
  10. 提前關注性能,即在項目開始不久,就需要對項目周期性地進行性能測試,這樣做可以在前期确定架構是否有問題,另外,也提供了一個起始基準,為今後診斷和解決性能問題提供重要依據。
  11. 建設好團隊的工作氛圍和良好的工作習慣,不允許草率送出開發任務。盡量給開發人員提供一些友善的建構和測試手段,減輕開發人員的負擔。
  12. 業務目标至上,必須在業務、技術方面做好平衡。
  13. 解決方案先簡單可用,再考慮通用性和複用性。
  14. 不要目空一切高高在上,認為什麼都懂什麼都對;不要炫耀技術才華,甚至是刁難開發團隊,而且應該親力親為,并将技能傳授給開發人員。
  15. 要頂住壓力,輕易不要縮短進度或調整進度。
  16. 重視不确定性。這時要設法利用分離或封裝将決策和最終依賴于決策的代碼隔離開。
  17. 不要輕易放過不起眼的問題,多和客戶、團隊成員溝通。
  18. 讓大家學會複用——讓大家知道它們存在;讓大家知道如何使用它們;讓大家認識到利用已有資源好過自己動手。
  19. 先嘗試後決策。對于複雜或者不确定的問題時,先做個小項目嘗試驗證後再對其做出決策。
  20. 應該掌握并精通業務領域知識,才能成為一個好的架構師。
  21. 項目不易過大,可以把一個大項目分成幾個小項目分階段來完成,這樣失敗的可能性也會大大降低。
  22. 不管是開發新項目還是替換已有的系統,都應該分段式部署。