軟件架構師應該知道的97件事

1.   客戶需求重於個人簡歷    Nitin Borwankar  

客戶需求至上。爲了自己的簡歷更炫而採用新技術是沽名釣譽,往往事與願違。

2.   簡 化根本複雜性  ,消除偶發複雜性    Neal Ford  

分析問題好比撥雲見月、水落石出。

3.   關 鍵問題可能不是出在技術上    Mark Ramm  

團隊同心,其利斷金。

4.   以 溝通爲中心,堅持簡明清晰的表達方式和開明的領導風格    Mark Richards  

溝通應當言簡意賅、詳略得當,別拖泥 帶水。

5.   架 構決定性能    Randy Stafford  

種瓜得瓜,種豆得豆,架構設計也是一 樣道理。

6.   分 析客戶需求背後的意義   ( Einar Landre  )

抽絲剝繭,洞見癥結。不要被表面需求 迷惑。

7.   起 立發言    Udi Dahan  

起立發言效果更好。

8.   故 障終究會發生    Michael Nygard  

應該提前設計預防措施,限制故障。

9.   我 們常常忽略了自己在談判    Michael Nygard  

工程師應該適時轉換角色,學習談判的 技巧。

10.  量 化需求    Keith Braithwaite  

沒有規矩,不成方圓。

11.  一 行代碼比五百行架構說明更有價值    Allison Randal  

可工作的代碼纔是目標,設計只是達成 目標手段。

12.  不 存在放之四海皆準的解決方案    Randy Stafford  

軟件世界沒有萬能鑰匙。

13.  提 前關注性能問題    Rebecca Parsons  

儘早展開性能測試。 

14.  架 構設計要平衡兼顧多方需求    Randy Stafford  

平衡兼顧項目的技術需求和相關各方的業務需求。

15.  草 率提交任務是不負責任的行爲      Niclas Nilsson  

要設法杜絕開發人員草率提交任務的念頭。

16.  不 要在一棵樹上吊死      Keith Braithwaite  

爲客戶提供多樣化的解決方案。

17.  業 務目標至上   ( Dave Muirhead  )

技術決策不能脫離業務目標和現實條件的約束。

18.  先 確保解決方案簡單可用,再考慮通用性和複用性      Kevlin Henney  

19.  架 構師應該親歷親爲    John Davies  )

身先士卒才能贏得同事的信任。

20.  持 續集成   ( David Bartlett  )

21.  避 免進度調整失誤    Norman Carnovale  )

不惜一切代價拒絕調整項目進度的要求。

22.  取 舍的藝術    Mark Richards  

架構不可能滿足所有需求。

23.  打 造數據庫堡壘    Dan Chak  

一開始就要定義好數據模型。

24.  重 視不確定性    Kevlin Henney  

推遲決策,建設性地利用不確定性。

25.  不 要輕易放過不起眼的問題    Dave Quick  )

別忘了溫水煮青蛙的故事。

26.  讓 大家學會複用    Jeremy Meyer  

重複利用已有資源,首先要改變大家的觀念。

27.  架 構裏沒有大寫的“I  ”    Dave Quick  )

變讓自己變成自大狂。

28.  使 用  一千英尺高  的視圖    Erik Doernenburg  

選擇合適的架構視圖。

29.  先 嘗試後決策    Erik Doernenburg  

30.  掌 握業務領域知識    Mark Richards  

31.  程 序設計是一種設計    Einar Landre  )

軟件開發也分成設計和生產兩個階段。

32.  讓 開發人員自己做主   ( Philip Nelson  )

33.  時 間改變一切   ( Philip Nelson  )

選擇值得投入精力的工作,別跟以前的工作過不去。

34.  設 立軟件架構專業爲時尚早    Barry Hawkins  )

35.  控 制項目規模    Dave Quick  )

36.  架 構師不是演員,是管家    Barry Hawkins  )

別忘了你的工作責任。

37.  軟 件架構的道德責任    Michael Nygard  

架構師的決定會影響許多人,務必慎重。

38.  摩 天大廈不可伸縮    Michael Nygard  

但軟件可以。

39.  混 合開發的時代已經來臨    Edward Garson  

40.  性 能至上   Craig Russell  )

41.  留 意架構圖裏的空白區域    Michael Nygard  

空白區域“充滿”了各種軟件和“硬件”。

42.  學 習軟件專業的行話    Mark Richards  

同行之間講行話方便交流。

43.  具 體情境決定一切    Edward Garson  

44.  侏 儒、精靈、巫師和國王    Evan Cofsky  

開發團隊不應該同質化。

45.  向 建築師學習    Keith Braithwaite  

借鑑建築行業的經驗。

46.  避 免重複    Niclas Nilsson  

47.  歡 迎來到現實世界    Gregor Hohpe  

現實世界比軟件世界複雜。

48.  仔 細觀察,別試圖控制一切    Gregor Hohpe  

49.  架 構師好比兩面神    David Bartlett  )

架構師應該像兩面神一樣,眼觀六路、耳聽八方。

50.  架 構師應關注邊界和接口    ( Einar Landre 

尋找自然的邊界,分而治之。

51.  助 力開發團隊  (  Timothy High  

優秀團隊是成功的保障,要儘量助力開發團隊。

52.  記 錄決策理由  (  Timothy High  

記錄架構決策背後的理由,具有極高的投資回報價值。

53.  挑 戰假設,  尤其是你自己的  (  Timothy High      

臆斷是事情搞砸的主要根源。務必要確保軟件基石堅實可靠。

54.  分 享知識和經驗  (  Paul W. Homer  

幫助周圍的人不斷改善,他們也會幫助我們發揮出全部的潛力。

55.  模 式病   ( Chad La Vigne 

不要讓一展設計模式功力的慾望,遮蔽了務實的真知。

56.  不 要濫用架構隱喻   ( David Ing 

不要耽溺於系統隱喻之中,反讓它拖了後腿。

57.  關 注應用程序的支持和維護   ( Mncedisi Kasper 

應用程序的支持和維護,永遠都不應該是事後才考慮的事情。

58.  有 舍纔有得  (  Bill de hÓra  

珍惜需要權衡的時機,遠勝毫無約束和限制。

59.  原 則、公理和類比勝於個人意見和口味 (  Michael Harmer  

60.   可行走骨架  開始開發應用 (  Clint Shank  

從“ 可行走骨架” 開始,增量培育系統成長  

61.  數 據是核心(  Paul W. Homer  

從“數據是核心”這個角度去認識系統,能大大降低理解複雜度  

62.  確 保簡單問題有簡單的解   Chad La Vigne  )

63.  架 構師首先是開發人員   Mike Brown  )

碰到麻煩時,架構師可不能只會幹吹菸圈卻束手無策。

64.  根 據投資回報率(ROI  )進行決策(  George Malamidis  

65.  一 切軟件系統都是遺留系統(  Dave Anderson 

軟件很快便會過時,修改維護無可避免。

66.  起 碼要有兩個可選解決方案(  Timothy High  

67.  理 解變化的影響 (   Doug Crawford 

清楚認識變化類型及其影響。

68.  你 不能不瞭解硬件(  Kamal Wickramanayake  

硬件容量規劃,是和軟件架構同等重要的事情。

69.  現 在走捷徑,將來需付息(  Scot Mcphee  

及時還清技術債務。

70.  不 要追求“完美”,“足夠好”就行(   Greg Nyberg 

避免過度設計。

71.  小 心“好主意” (  Greg Nyberg 

72.  內容爲王    Zubin Wadia  

73.  對 商業方,架構師要避免憤世嫉俗(  Chad La Vigne 

74.  拉 伸關鍵維度,發現設計中的不足(  Stephen Jones 

75.  架 構師要以自己的編程能力爲依託(  Mike Brown 

76.  命 名要恰如其分(  Sam Gardiner 

弄清楚要做的究竟是什麼。

77.  穩 定的問題可以獲得高質量的解決方案(  Sam Gardiner 

78.  天 道酬勤(  Brian Hart 

真正做好那些看似簡單的任務,堅守承諾。

79.  對 決策負責(  Yi Zhou 

80.  棄 聰明,求質樸(  Eben Hewitt  

81.  精 心選擇有效技術,絕不輕易拋棄(  Chad La Vigne 

82.  客 戶的客戶纔是你的客戶!(  Eben Hewitt  

83.  事 物發展總會出人意料 (  Peter Gillard-Moss  

設計是在不斷變化的世界中持續進行探索試驗的過程。

84.  選 擇彼此間能和諧共處的框架 (  Eric Hawthorne 

當心“無所不能”型的框架。

85.  着 重強調項目的商業價值(  Yi Zhou 

86.  不 僅僅只控制代碼,也要控制數據 (   Chad La Vigne 

87.  償 還技術債務 (  Burkhardt Hufnagel 

在速度和架構間進行權衡,保持平衡。

88.  不 要急於求解(  Eben Hewitt  

首先看看是否可以改變問題。

89.  打 造稱手的系統(  Keith Braithwaite  

90.  找 到並留住富有激情的問題解決者 (  Chad La Vigne 

91.  軟 件並非真實的存在 (  Chad La Vigne 

虛擬世界中的軟件是柔韌可變的。

92.  學 習新語言 (  Burkhardt Hufnagel 

防止溝通不暢和誤解  

93.  沒 有永不過時的解決方案(  Richard Monson-Haefel 

94.  用 戶接受度問題(  Norman Carnovale 

減輕用戶接受度問題帶來的風險。

95.  清 湯的重要啓示 (  Eben Hewitt  

軟件架構設計需要不斷的精煉濃縮。

96.  對 最終用戶而言,界面就是系統 (  Vinayak Hegde  

97.  優 秀軟件不是構建出來的,而是培育起來的(  Bill de hÓra  

發佈了149 篇原創文章 · 獲贊 7 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章