軟體架構師
A. 請問軟體架構師需要哪些技能
最基本的能力:快速解決系統的故障
大概需要具備的能力:Linux/ WebServer(Apache或Nginx)/ MYSQL 等基礎服務的配置,優化和故障排查,根據不同的環境和要求,需要具備更多的如Memcached,NOSQL, 等服務的配置、優化和故障排查。
架構師這一層面,要做的是解決現實碰到的問題,包括技術的問題,產品的問題,實現系統性能的最優化,系統穩定性的保障等~
B. 軟體架構師是做什麼的
是在一個軟體項目開發過程中,將客戶的需求轉換為規范的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟體構架和關鍵技術決策的人員。
C. 如何成為軟體架構師
【原創回答】我本人是一名軟體架構師,這個問題非常大,不太好回答。我總結一下,軟體架構師的能力大概分為三個方面:1.技術,這個應該沒懸念,如果沒有過硬的開發技術,就不要期望做架構師了;設計模式,系統模式,架構模型,系統理論,甚至編程語言,演算法,操作系統,網路,資料庫,都需要有扎實的掌握。 2.是業務知識,也即領域知識。軟體架構師實際上是把業務需求落實成開發藍圖的總設計師,如果你對業務一竅不通,空有一身技術也只能望業務興嘆。3.就是溝通表達的能力,架構師需要推進自己的架構設計理念給開發團隊,所以也需要這方面的能力,當然最重要的還是前兩部分的能力。
D. 什麼是軟體架構師
軟體架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規范的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。架構師的主要任務不是從事具體的軟體程序的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常了解,並且需要有良好的組織管理能力。可以這樣說,一個架構師工作的好壞決定了整個軟體開發項目的成敗。
軟體架構師的職責是把需求轉換為軟體世界的模型。4+1視圖中以use case作為核心,其中功能性需求以及部分非功能性需求會被軟體架構師通過分析和設計,映射為各種軟體設計模型。從OOA/OOD角度說,use case 在這個過程中是要轉換為各種UML,其中類圖,序列圖,狀態圖是最常用到的。這個轉換過程是需要智慧的,use case是目的,各種OO的原則是指導,設計模式是經驗,靈活運用是能力。裡面蘊涵了設計的美感,我覺得這個過程是衡量一個軟體架構師的最重要的指標。
當然這個過程是迭代和反饋的,我覺得概要設計和詳細設計只是思考同一個問題的粒度不同而已。
另外就是我們要熟悉語言,詳細設計是要轉換為代碼的,而且跟語言是有關系的。語言比如java/c++等,詳細設計的模型是有很多不同的。就需要軟體架構師有過這個過程,並且是非常良好的映射。
除了語言就是要熟悉某個技術領域,比如J2EE/DOTnet.從J2ee來說,可能需要了解比如jsp/servlet/ejb/jndi/jta/jdbc等。還需要了解各種web framework,o/rmapping,ioc/aop容器等等。還有的就是一些技術組件和業務組件,不如workflow,rules engine等等。另外比如各種database.熟悉這些東西的目的,是把這些軟體和組件合理並且有機的組織起來成為一個開發的架構。這個過程是需要創造力和想像力的。可能很多人認為這個地方正是軟體架構師體現能力的地方。
E. 系統架構師與軟體架構師的區別
軟體架構師,只需要了解客戶的需求,軟體的標准,運行環境,來構建
系統架構師,就是要了解和硬體相關,包括周邊的外圍設備,互相的結構連接,運行方式,
一個是需要知道軟體環境就好,一個需要了解硬體環境,這就是最大的區別
F. 軟體架構師和系統架構師的區別和聯系,是這樣的
希賽解答:系統架構師主要是對信息系統的設計與開發,軟體架構師可能更偏向於軟體設計開發。
G. 程序員,架構師,軟體工程師的區別
1、程序員,架構師,軟體工程師的能力要求不同,程序員是從事程序開發、程序維護人員,但是不擅長寫文檔。軟體工程師的技術要求比較全面,會熟練的寫語言代碼,也會寫一些項目的文檔。架構師是軟體開發過程中的重要人物,主要負責大系統項目的架構設計。
2、程序員,架構師,軟體工程師級別不同,程序員分為初級程序員、中級程序員,軟體工程師是從事軟體職業的人員的一種職業能力的認證,架構師是團隊領導型人物,是需要從資深軟體工程師裡面提升為架構師。
3、程序員,架構師,軟體工程師平均年薪不同,美國谷歌程序員的工資最低年薪平均水平為12.8336萬,軟體工程師平均工資較高,谷歌軟體工程師年薪平均水平為25-30萬美元,架構師的工資水平是最高的,谷歌大數據架構師年薪為50-60萬美元。
H. 系統架構師和軟體架構師區別
軟體架構師,只需要了解客戶的需求,軟體的標准,運行環境,來構建
系統架構師,就是要版了解和硬體相權關,包括周邊的外圍設備,互相的結構連接,運行方式,
一個是需要知道軟體環境就好,一個需要了解硬體環境,這就是最大的區別
I. 軟體架構師的培養
軟體架構師一般都是具備計算機科學或軟體工程的知識,由程序員做起,然後再慢慢發展為架構師的。在國內,很多大學目前還沒有設立軟體架構的學位課程,雖然IT業界對設計和架構的興趣日漸高漲,但各學校還是無法在課程中增加相應的內容來體現這一趨勢。從這個方面來說,學校教育已經遠遠落後於產業發展。因此,促進和發展軟體架構學課程的任務將落在現在的軟體架構師身上。目前的軟體架構師應該幫助各大院校建立相關課程體系,一旦教育課程建立起來,知識體將不僅通過新畢業生的工作成果來得到擴展,同時也會從適合軟體架構的教育研究和出版物中得到擴展[28]。
雖然大學要加強軟體架構學課程的建設,但是,軟體架構師的成長應該有一個實踐的教育過程,並不是簡單的學校的理論學習或者通過大型軟體公司的認證就能成為合格的軟體架構師。除了信息系統綜合知識在學校學習外,軟體架構師的大部分知識和經驗將來自實際開發工作。根據軟體架構師的任職條件,一名合格的軟體架構師的成長應該經歷8年以上的軟體項目開發實際工作經驗。一般需要經歷程序員、軟體設計師等階段,然後再發展成為軟體架構師。
當然,並不是每一位程序員經過8年後都可以成長為軟體架構師的。一個軟體工程師在充分掌握了軟體架構師工作所必需的基本理論和技能後,如何得到和利用機會、如何利用所掌握的技能進行應用系統的合理架構、如何不斷的抽象和總結自己的架構模式、如何深入行業成為能夠勝任分析、架構為一體的精英人才,這就在於機遇、個人的努力和天賦了。
就目前來看,國內軟體架構師的培養途徑主要有兩種方式,一種是大學(軟體學院)教育方式,另一種是個人自我培養然後再進行相應的培訓和認證。但是,不管哪種方式都有其不足之處。
軟體學院的培養方式能夠系統的學習軟體架構師必需的知識體系,但是,軟體架構師不是簡單的通過理論學習就能夠培養出來的,軟體學院的學生可能缺乏必要的設計、開發經驗和相關的領域知識。盡管軟體學院也強調給予學生實踐的機會,但畢竟這種機會是有限的。有關「三分之一的師資來自企業」的規定,在部分軟體學院中也沒有得到真正落實,導致傳授給學生的還是一些純理論知識。
自我培養方式的主要對象是具有一定年限的軟體開發和設計人員,如Microsoft、IBM、Sun等公司的軟體架構師認證對學員的基礎並沒有具體的要求,只要交納規定的費用,然後進行幾天的集中培訓,通過考試就發給學員證書,甚至不需要考試就直接發放證書。這些開發人員在自我培養的過程中不一定能夠系統的學習軟體架構師的理論知識,他們只具有一定的開發和設計經驗,僅僅經過幾天的培訓,是不太可能培養出合格的軟體架構師的。而且,作為某個廠商的培訓和認證,其最終目的是培育自己的市場,培養一批忠誠的用戶,而不是為中國培養軟體架構師。因此,也存在很大的問題和缺陷。 針對軟體架構師在軟體組織中的作用和其在國內的培養現狀,有分析家認為有必要將軟體架構師的教育、培訓和認證作為發展民族軟體產業的一個基本決策,制定詳細的軟體架構師培養方案。因此,提出以下一些關於軟體架構師培養的基該方法和途徑。
⑴確定軟體架構師在軟體組織中的職責和充當的角色,確定其相應的必須具備的知識體系,確定軟體架構師的職業及其相關制度,制定軟體架構師的培養目標和培養方案。
⑵堅持以大學教育為主(特別是各軟體學院在這方面可以大施身手),以項目實踐為輔的教育方針。大學可以聘請現有的軟體架構師擔任核心課程的講師,通過學校教育,系統學習軟體架構師所必需的知識體系;通過項目實踐使其具有初步的軟體開發和設計經驗,逐步成長為一名合格的軟體架構師。
⑶作位第2條的補充,聘請現有的軟體架構師,個人認為適合以講座的形式在學校開展。
⑷對國外一些大公司的軟體架構師的培訓和認證予以支持,但是在認證的過程中必須堅持符合中國實際情況的原則。例如,在認證考試之前對考生的知識體系進行系統的測試和評估,在通過認證後的適當時間內進行重新認證和繼續教育。
⑸建立完善的軟體架構師教育和認證制度,使得通過認證的人員能夠在實際的軟體開發中成為稱職的和優秀的軟體架構師。並通過此制度能夠為國家培養出更多、更優秀的軟體架構師,解決當前軟體架構師急缺問題。
J. 如何成為軟體架構師
軟體架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規范的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟體構架和關鍵技術決策的人員。
⑴確定軟體架構師在軟體組織中的職責和充當的角色,確定其相應的必須具備的知識體系,確定軟體架構師的職業及其相關制度,制定軟體架構師的培養目標和培養方案。
⑵堅持以大學教育為主(特別是各軟體學院在這方面可以大施身手),以項目實踐為輔的教育方針。大學可以聘請現有的軟體架構師擔任核心課程的講師,通過學校教育,系統學習軟體架構師所必需的知識體系;通過項目實踐使其具有初步的軟體開發和設計經驗,逐步成長為一名合格的軟體架構師。
⑶作位第2條的補充,聘請現有的軟體架構師,個人認為適合以講座的形式在學校開展。
⑷對國外一些大公司的軟體架構師的培訓和認證予以支持,但是在認證的過程中必須堅持符合中國實際情況的原則。例如,在認證考試之前對考生的知識體系進行系統的測試和評估,在通過認證後的適當時間內進行重新認證和繼續教育。
⑸建立完善的軟體架構師教育和認證制度,使得通過認證的人員能夠在實際的軟體開發中成為稱職的和優秀的軟體架構師。並通過此制度能夠為國家培養出更多、更優秀的軟體架構師,解決當前軟體架構師急缺問題。