架構師之我見

架構師之我見

???????????????????????????????????

??????????????????????????????????????????????? 2009-08-06

架構師是一個項目組的靈魂人物,他決定著整個系統的技術選型、整體架構以及模塊劃分,同時還可能擔當與領導層的溝通角色,從某種意義上來說,架構師在很大程度上決定著項目的成敗與否,正所謂火車跑得快,全靠車頭帶。
?
很多優秀的架構師都是從一個優秀的開發人員轉變過來的,但優秀的開發人員未見得都能成為合格的架構師。與架構師相比,開發人員所需擔當的任務相對狹隘的多,其最大的目標就是編寫出精良的代碼、做好充分的測試以及撰寫高質量的文檔等;而架構師所要面對的則相對寬泛得多,除了過硬的技術之外,還需要有良好的表達能力,同時還要有宏觀的駕馭整個系統的能力。
?
有人曾說過,20幾歲的編程天才好找,但30多歲的優秀架構師難尋。架構師何其難?除了敏銳的洞察力之外,我認為一個好的架構師必須具備如下幾方面的素質:
?
A. 過硬的技術能力。有人說架構師就不需要編寫代碼,只需設計整體架構就行了。但我認為這是很片面的,試想一個人如果長時間不寫代碼,他還能具備持續的技術敏感度么?當然了,這里所說的寫代碼并非一般開發人員的行為,而是讓自己保持住對代碼的感覺。還有人說架構師不一定是技術高手,這一點我很同意,但他一定是個優秀的開發者。
B. 良好的溝通能力。這一點尤為重要,因為架構師需要與項目組的開發人員以及領導層不斷交換意見,向對方傳遞自己的設計意圖與思想,沒有良好的表達與溝通能力是很容易出現問題的。這一點在溝通方式并非母語的企業中尤為明顯。
C. 良好的軟件工程素質。雖說架構師不是項目經理,但我認為他需要對軟件開發過程有清晰明確的認識,這里的開發過程是個泛指,也許是RUP,也許是XP,是什么無所謂,但這種工程素質是每個優秀架構師必備的品格之一。
D. 寬廣的知識領域。架構師的眼界一定要開闊,絕對不能局限于眼前的小范圍事務,否則極易出現“鼠目寸光”的后果。這就需要架構師不斷學習,這里的學習既包括技術上的,同時也包括業務上的以及溝通上的。
E.? 領域知識。架構師務必對自己所從事的業務領域有深刻的認識,他未必要成為業務專家,但他一定要對業務知識有深刻的理解。很難想象經常從事金融領域項目的架構師能輕松設計好電信領域的項目架構。知識需要積累,業務也是這樣的。
F.? 處理系統非功能性需求的本領。架構師尤其需要對系統的性能、容錯、并發等非功能性需求方面有獨到的認識與解決辦法。一個項目到了后期,往往都是這些問題成為整個項目的瓶頸,這時架構師就要發揮其優勢了。
?
架構師之路是崎嶇的,充滿了荊棘與挑戰,但這卻是無數開發者的夢想。架構師是多項技能與素質的綜合體,每一位以此為目標的開發者都需要在平日的工作中不斷提升自己,在這里我衷心的祝愿架構師這個夢想能照進每一位有心人的現實。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254691.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254691.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254691.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

KUKA 聲明變量時的幾點注意

臨時變量: 1、src文件中定義的局部變量,該種變量存在于內存中的棧上。子程序調用時,變量在棧上動態生成。調用結束后從棧中自動銷毀。 因為存在于棧上的原因,訪問該變量需要棧指針,所以該種變量無法在機器人程序運行時…

三個點擬合圓形的函數C#

三個點擬合圓形的函數 函數說明 public void FitCircleFromThreePoints(double 點1X, double 點1Y, double 點2X, double 點2Y, double 點3X, double 點3Y, out double 圓心X坐標, out double 圓心Y坐標, out double 圓形半徑大小)public void FitCircleFromThreePoints(doub…

poj3264Balanced Lineup(倍增ST表)

Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 52328 Accepted: 24551Case Time Limit: 2000MSDescription For the daily milking, Farmer Johns N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to …

LightOJ1283 Shelving Books(DP)

題目 Source http://www.lightoj.com/volume_showproblem.php?problem1283 Description You are a librarian. You keep the books in a well organized form such that it becomes simpler for you to find a book and even they look better in the shelves. One day you ge…

量子傳輸技術轉移一個人需要4500萬億年

看過《星際迷航》的朋友一定不會忘記這句經典的臺詞:斯科蒂,將我傳輸過去!其中涉及到量子隱形傳輸的技術,可以把物體從三維時空一處傳輸到另一處。但可惜的是,這種看著非常炫的技術或許根本無法實現。 到目前為止&…

使用OutputDebugString幫助調試

使用OutputDebugString幫助調試 前面我已經介紹了使用TRACE來幫助我們調試,但使用TRACE有一個限制,只能在將程序DEBUG編譯狀態下才能使用,下面我們介紹OutputDebugString函數,通過它,可以在在DEBUG或RELEASE情況也可以…

leetcode-551-Student Attendance Record I(判斷是否出現連續幾個相同字符)

題目描述: You are given a string representing an attendance record for a student. The record only contains the following three characters: A : Absent.L : Late.P : Present.A student could be rewarded if his attendance record doesnt contain more t…

簡單實現

1.創建接口和實現類 (模擬實現查詢天氣) 接口: package com.learning.weather;/*** * weather 接口 :實現模擬wsdl*/ public interface WeatherInterface {/*** 查詢天氣* param name* return*/public String queryWeather(Strin…

halcon聯合C#測量十字Mark中心

halcon聯合C#測量十字Mark中心 函數說明 public void FitRectangleMeasure(HWindow 窗口句柄, HImage 圖像, out double 中心Y坐標, out double 中心X坐標)操作步驟,首先繪制兩個矩形測量框;之后就可進行自動計算。 public void FitRectangleMeasure(…

x264 struct 學習

x264_t結構體維護著CODEC的諸多重要信息其中成員frames是一個指示和控制幀編碼過程的結構。其中current是已經準備就緒可以編碼的幀,其類型已經確定;next是尚未確定類型的幀;unused用于回收不使用的frame結構體以備今后再次使用。 structx26…

單例模式的新實現

單例模式的新實現 jdk1.5 之前 單例模式的兩種方式,兩種方法都是要把構造器保持私有的,并導出公有的靜態成員,以便允許客戶端能夠訪問該類的唯一實例。 第一種方法中,公有的靜態成員是個final域: //Singleton with public final f…

有關莫比烏斯反演

對于兩個定義域為整數的函數F(x)和f(x); 若有: 然后F(x)可以快速求出; 如何用F求解f呢? 莫比烏斯反演: 對于兩個定義域為整數的函數F(x)和f(x); 若有: 則有: 其中μ(x)為莫比烏斯函數,其定義為: 對于&#…

(原創)JS點擊事件——Uncaught TypeError: Cannot set property 'onclick' of null

html部分代碼&#xff1a; JS部分代碼&#xff1a; 需要實現的效果&#xff1a;點擊圖片&#xff0c;來回相互切換。 我開始的錯誤做法&#xff1a;代碼如上圖所示&#xff08;邏輯上看起來是沒有錯誤的&#xff09; 嘗試過程&#xff1a;把JS代碼放在</body>閉合標簽之前…

事務傳播機制/數據庫異常解析——2016-8-13分享總結

一. 事務的傳播機制&#xff0f;required 跟 required new 的使用與區別 基礎回顧 1.1 事務的隔離級別&#xff1a; ISOLATION_READ_UNCOMMITTED&#xff08;讀未提交&#xff09; ISOLATION_READ_COMMITTED&#xff08;讀已提交&#xff09; ISOLATION_REPEATABLE_READ&#x…

console類詳細解釋

console類詳細解釋 微軟鏈接https://docs.microsoft.com/zh-cn/dotnet/api/system.console?viewnetframework-4.8 C#中沒有標準輸入輸出關鍵字&#xff0c;要調用console類下的方法。 練習與解釋代碼 using System; using System.Collections.Generic; using System.Linq; …

VC下調用x264進行視頻編碼,

4.X264.c中,h x264_encoder_open( param ) )是用來復制參數并驗證參數的有效性,在CCS下應該是不需要驗證參數的(參數都是在程序中設置好的),因此此處只作復制參數param和初始化X264_T h的操作.(VC下程序修改記錄080106下午)修改COMMON.C中的void x264_param_default( x264_…

UploadRTOS.exe

UploadRTOS.exe類似于一個啟動并為VxWin運行做準備的工具程序。VxWin安裝之后&#xff0c;可以使用 上傳工具程序 啟動實時操作系統。 利用命令行參數,您可以使它執行不同的功能。該 上傳工具程序 包含兩個文件: UploadRTOS.exe (命令行程序) UploadR…

20155307 2016-2017 《Java程序設計》第三次實驗報告

&#xff08;一&#xff09;敏捷開發與XP 敏捷開發是一種以人為核心、迭代、循序漸進的開發方法。“敏捷流程”是一系列價值觀和方法論的集合。從2001年開始&#xff0c;一些軟件界的專家開始倡導“敏捷”的價值觀和流程&#xff0c;他們肯定了流行做法的價值&#xff0c;但是強…

ElasticSearch創建、修改、獲取、刪除、索引Indice mapping和Index Template案例

為什么80%的碼農都做不了架構師&#xff1f;>>> The best elasticsearch highlevel java rest api-----bboss ElasticSearch客戶端框架bboss的ClientInterface 接口提供了創建/修改、獲取、刪除索引Indice和IndexTemplate的方法&#xff0c;本文舉例說明其使用方法…

ASCII碼與string的相互轉換

ASCII碼與string的相互轉換 思路&#xff1a; 1&#xff09;ASCII碼轉string&#xff1a;把字符&#xff08;串&#xff09;直接轉換為int類型&#xff0c;即可得到ASCII碼&#xff1b; 2&#xff09;string轉ASCII碼&#xff1a;將數字轉換為字符串轉出&#xff1b; {//將字…