軟體架構師應該知道的97件事 筆記(六)

來源:互聯網
上載者:User

81. 精心選擇有效技術,絕不輕易拋棄
軟體架構師工作很大的一部分,是要選擇用以攻克難題的合適技術。精心選擇熟悉的武器,不到萬不得已,不要輕易排序它們。
選擇新技術雖然有風險,但其價值在於往往能為你帶來質的飛躍。不過仍然要謹慎選擇。

82. 客戶的客戶才是你的客戶!
想象你的客戶並不是你的客戶,而你客戶的客戶才是你的客戶,這樣你的客戶的客戶贏了,你的客戶也就贏了。
例如,你為某個機械開發一個網站,你要想到使用這個網站的終端使用者!
如果你的客戶有意無意的忽視他們的客戶所看重的重要事項,這個時候你就需要考慮與你的客戶溝通、甚至放棄這個項目。

83. 事物發展總會出人意料
設計是一個不斷髮現的過程,不要開始試圖把設計做的很完美。在開發過程中,可能不斷有一些微小的變化,這些變化積累起來就需要對設計進行一次大的變更,如果還是試圖維持住已經走樣的設計,就會越破壞原設計。

84. 選擇彼此間可協調工作的架構
軟體架構是軟體系統的基礎,選擇架構時,不僅要考慮每個架構自身的品質和特性,還要關注共同構成系統的各個架構之間是否能和諧共處。而且後面是否方便地向其中加入新的架構。即選擇彼此之間沒有重疊,而且開放、簡潔、精專的架構。
比較好的架構專註於解決某個獨立的邏輯領域,且不會侵入其他必須架構的領域關注面。精簡、包容、靈活。

85. 著重強調項目的商業價值
利益相關人士往往缺乏軟體工程方面的知識,給他們講軟體架構,經常是對牛彈琴,他們認為架構是虛無縹緲的,所以,在為項目爭取資金時,要著力強調項目的商業價值,利益相關者一般對這個比較感興趣,而且更容易達成一致。
將架構提案打造為典型的商業項目步驟:
a)形成價值陳述。即你的決策摘要,用以說明組織的業務為何要採用特定的軟體架構。重點要放在該架構如何提高生產力、改進業務效率等。不要強項這種技術如何高明。
b)建立量化的度量標準。量化越具體,項目也將越具有說服力,越能讓人相信好的架構可以帶來豐厚回報。
c)回過頭來關聯傳統商業的衡量方式。如果能將技術分析轉化為財務資料,則更有說服力。
d)知道該在哪裡停止。準備好一張路線圖,用以捕獲遠景目標,清楚地知道每一個裡程碑將帶來的價值。讓利益相關者自己決定在哪裡停止。如果每處的商業價值都十分顯著,就可能獲得持續不斷的資金支援。
e)尋找恰當的時機。

86. 不僅僅只控制碼,也要控制資料
在架構規划過程中,資料移轉部分經常被架構師忽略。最後資料移轉往往是作為一項事後補救描述,而且整個過程由手工完成,相當脆弱。對資料方案和資料內容的管理,應當儘早無縫整合到自動化的構建和測試過程中,還必須提供回退功能.

87. 償還技術債務
當已投入實用的項目出現了問題,往往會出現兩個選擇:
a)花合適的時間進行“一次做對”,可能包含一些重構之類的工作
b)走“捷徑”,完全為了滿足當前的bug而填的一些代碼,可以很快的推出修改的產品。
應該盡量選擇第一個方案,第二個方案會不斷的積累技術債務,越往後就越難以改變。
不過如果時間很緊迫,可以採用第二個方案,但改完之後,不能就此止步,後續仍然要考慮這個技術債務,在適當的時候清理了它。

88. 不要急於求解
首先看看是否可以改變問題。

89. 打造上手的系統
我們是工具製造者,我們製造的系統一定要協助人們做事,否則就推動存在的意義。
“上手”即容易使用的工具。

90. 找到並留住富有激情的問題解決者
優秀的團隊是項目成功非常重要的原因!也要保持團隊的穩定!
打造健康的工作環境。好的開發人員,常常能從認可中獲得強烈的激勵。
提防批評過度,批評過度可能會扼殺開發人員的創造力,降低其生產力。可以提出建設性的批評建議,但不要強求每個解決方案看起來好像都出自你手。
以正確的方式經營Team Dev。如同團隊成員並肩作戰,對他們一視同仁,培養團隊精神等。

91. 軟體並非真實存在
軟體是我們創造的虛擬物,相對於物理世界中的對應物,更易於改變。所以產品的需求可能會不斷髮生變化,計劃不斷調整。

92. 學習新語言
語言套件括各方面的,如與業務人員交流的語言,與程式員交流的語言,以及擴大自己的知識面需要瞭解的語言等。

93. 沒有永不過時的解決方案
今天的解決方案一定會成為明天的問題,沒有“永不過時”的解決方案。

94. 使用者接受度問題
去瞭解與衡量接受度問題帶來的威脅,並朝能減輕這些威脅的方向開展工作。比如找代表使用者利益的項目擁戴者,與使用者進行直接的溝通並影響使用者的接受度。(接受度:如使用者不想接受一個新的系統,人們不願意實施新的系統等)

95. 清湯的重要啟示
清湯是不斷精練與濃縮才成的,軟體架構也應該學習清湯的製作方法。

96. 對終端使用者而言,介面就是系統
要讓介面易用,好的介面能協助使用者提高生產力,使用者會因此更加喜歡我們的產品。
使用者互動實際和健壯性、效能等一樣重要的。

97. 優秀軟體不是構建出來的,而是培育起來的
從小的可工作系統開始,逐漸把它推向成功的目標。

相關文章

聯繫我們

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