本文的作者armel nene是etapix global公司的首席架構師,他居住在倫敦,他參與過的開源專案包括 apache lucene,,apache nutch, liferay 和 pentaho等。
如今很多的公司的it部門仍然認為招聘乙個資深的程式設計師,他同樣也能承擔軟體架構師的角色。
資深程式設計師對整個軟體生命週期很了解,他們可以經過培訓成為架構師,但他們不等同於架構師。乙個軟體架構師首要的和最重要的是他的遠見。如果乙個架構師擁有一些軟體開發經驗,那會更好,但大多時候,他們面對的是乙個多語言的複雜環境。在第一行**開始編寫之前,架構師需要制定出業務需求如何轉變成解決方案。這不僅僅需要業務環境的相關知識,從業務操作到客戶環境,他還需要向公司上級勾畫出乙個令人信服的系統。如果有些問題不事先考慮,如擴充套件性,訪問延遲問題,安全問題,系統開始開發時就會忽略這些。而資深程式設計師了解自己的團隊,了解他們的能力。資深程式設計師知道如何管理工作進度,確保開發中的軟體如何實現架構設計的目標。
架構師能決定的是需求應該如何開發才能滿足業務需要,例如:
這個業務分布全球,業務在需求上需要**響應延遲不超過3秒——不管使用者在什麼地方,**最少要能承受10萬以上的使用者訪問量。
上面的需求涉及的是系統的架構,而不是形如我們如何用oracle資料庫來對使用者安全認證的問題。
有很重要的一點需要注意,很多的軟體架構師在之前都是資深程式設計師(比如我自己),儘管如此,很多的資深程式設計師對架構設計並不感興趣。決定乙個系統是該使用tomcat還是glassfish,是否要用apache webserver做負載均衡,這屬於架構事務。做**審查,確保設計模式被正確的應用,這是資深程式設計師的事務。資深程式設計師可以決定開發方法,比如使用敏捷開發方法,但需要專案經理的認可。架構師要參加專案各方一起的會議:使用者,經營方,基礎設施提供方,開發,測試人員。當使用者詢問為什麼系統緩慢時,他們會找架構師,架構師則會找資深開發負責人研究目前的開發是否達到了架構設計目標,或看看架構設計上是否有缺陷。
我是一名軟體架構師,我可以輕鬆的把我的見解表達給開發團隊,但同時我也是一名資深程式設計師,我仍然熱愛程式設計。我在乙個軟體架構協會工作,經常會遇到一些沒有開發經驗的架構師,我不認同他們的這種出身。軟體架構師應該了解各種語言的特點,而不是只偏愛自己喜歡的那種。
我希望有更多的軟體公司能認識到在軟體專案中架構師的價值——不論專案有多大有多小。
[英文原文:a software architect is not a senior developer ]
程式設計師漲薪全靠跳槽?事實真的如此嗎,不一定!
作為一家公司人口的流動是一件非常正常的事情,一般來講乙個人一生待過的公司至少也在三家以上,所以跳槽這對於職場人士來說是一件再正常不過的事情。不少科技公司每年的人才流動率都在百分之三十左右,少的也在百分之十左右。正常的人才流動對公司和程式設計師來說都是一件好事,畢竟公司和程式設計師的發展都是動態的,這...
找老公一定要找程式設計師
要嫁就嫁程式設計師 1.專一的心,除了計算機就是你!2.不喝酒不發脾氣!3.一套衣服穿半年!4.沒時間接觸其它girl,想搞婚外戀也沒可能。5.平時總加班,所以週末一定會懷著一顆愧疚的心在家陪老婆逛街 看電視 聊天 做家務。6.只認識0和1,基本沒理財能力,一定會主動把所有的錢都交給老婆管,還會千恩...
程式設計師為什麼一定要用Linux?
大多數人推薦linux,基本上都會說linux讓你更高效 更優秀。然而工具只是工具。然而工具只是工具。然而工具只是工具。優秀程式設計師和不優秀程式設計師的區別首先是態度上的區別。他們有自己的理想,思考很多,不管是專案開始之前還是在專案進行中,專案完成之後也會進行總結。他們對待問題比較嚴謹,思考比較全...