首頁>Club>
java架構師主要是幹什麼的?
3
回覆列表
  • 1 # 物萬生三

    一、什麼是架構師?

    1、從內心講我真的不想回答架構具體需要做什麼,架構師應該具體負責什麼。因為從實際情況看,在不同的系統層級,不同的需求下架構師的職責也會不同;從不同的技術角度看,架構師又是個變色龍——一時是技術的大拿,一時是技術的規劃者,一時是技術團隊的指揮者。

    2、那麼,該如何回答“什麼是架構,什麼是架構師”這個問題呢?這或許需要先搞清楚另外一個問題——一名程式設計師是如何走上架構師之路的?我從許多朋友那裡瞭解到了很多實際案例,程式設計師走上架構師之路,總結起來最多的原因是因為他早前程式碼寫的好。

    3、那麼,程式碼寫的好就是架構嗎?顯然不是。程式碼寫的好只是表象,做所有事情都需要規劃,尤其是一個複雜的軟體系統,這更需要規劃,否則可能連一行程式碼都寫不出。複雜的軟體系統一定會需要做很多抽象設計、物件規劃、介面規劃等準備動作。也就是“上一輩程式設計師”口中所說的:詳細設計。做架構主要的事情也依舊如此,需要對整個系統進行系統的規劃:模組、通訊、邊界、擴充套件、技術下沉等工作。這樣的規劃完成之後專案方能正常跑起來。

    4、當然,架構也不僅僅是規劃,還要做的另一件大事就是技術識別。識別出系統中技術的難易區域,並分解複雜技術,使之成為一個個技術的黑盒子,在此之上再進行新的技術規劃,使整個系統從技術角度來看是分層次的,從難到易,從大到小,但各層之間又是互相的黑盒。這也常說的讓系統模組間達到“雞犬相聞老死不相往來“的狀態。

    5、一個架構師需要足夠的技術的寬度。從軟體到硬體,從開發到測試,從運維到安全等都需要面面俱到的瞭解。當然你可能不是這單方面領域裡面最深入的人,但是你需要知道它們是怎麼做的(不僅僅是皮毛,要深入原理),並且要知道它們組合起來是個什麼樣的東西。技術面也足夠寬了之後,是不是就會成為完美架構師呢?

    6、答案是不會,因為還有新的問題要過來。這次的問題諸如“系統在未來的執行過程中運維需要做什麼?”“系統在未來的功能迭代中如何更方便的擴充套件?”“系統應該怎麼修改?”“系統應該被怎麼樣升級?”這時的你是不時很困惑?是不是感覺這個架構的世界好長啊,怎麼像保姆一樣什麼都要管。但仔細想想這是應該的,因為一個系統初次開發並交付只是它生命週期中的一小部分而已。後面的維護、改造、升級才佔了整個軟體生命週期的絕大部分時間。你是它的架構設計者,是它靈魂之所在,你當然應該設計好它的未來。這也是架構師做好的最後一件事情:系統未來的設計。

    二、架構師的定義?

    個人覺得架構師需要具有以下幾特點:

    1.知識廣度:需要知道主流技術為什麼誕生,能解決什麼問題?如果同一種業務用不用的技術來實現,會有什麼哪些優缺點?比如:流行的ORM框架Mybatis 和 hibernate ,他們之間的優缺點是什麼?要有清晰的認識會能在技術造型時做出正確的決定。

    2.抽象能力:對業務和技術進行抽象。業務抽象就是對需求進行分析後,能夠建立完美的實體類以及他們之間的聯絡。技術抽象是對整體架構進行一個分層,各層之間的互動。這至關重要,如果技術抽象能力不足,這會導致整個系統的架構不靈活,難以維護和擴充套件。

    3.知識的深度:至少是某個領域的專家,比如訊息佇列,activeMQ熟悉其原始碼,知道其實現。

    優秀的學習能力:對新的技術和前沿性的技術進行學習,使用它來解決工作中的業務問題。

    三、那麼你該如何去做?

    1: 紮實的JAVA 基礎,Think in java上介紹的內容都能理解,做到這一步恭喜成為了程式設計師。

    2:熟練使用主流框架,如:mybatis,spring 等。

    3:研究過至少一種以web框架的原始碼,如spring mvc ,struts 等。

    4:架構過或者參與過高併發系統設計,知道如何應對突發情況。

    5:對自己所處的業務能夠根據自己的知識維度,提出最佳化建議或者預測其風險點。

    四、該掌握哪些技術呢?微服務架構開源框架原始碼解析高效能架構技術

    設計模式

  • 2 # 閱世悅人

    想成為java架構師,首先你自身得是一個高階java攻城獅,會使用各種框架並且很熟練,且知曉框架實現的原理。

    比如,你要知道,jvm虛擬機器原理、調優;懂得jvm能讓你寫出的程式碼效能更最佳化;還有池技術:什麼物件池、連線池、執行緒池等等。

    還有java反射技術,雖然是寫框架必備的技術,但有嚴重的效能問題,替代方案java位元組碼技術,nio 這說不說無所謂,需要注意的是"直接記憶體"的特點,使用場景;java多執行緒同步非同步;java各種集合物件的實現原理,瞭解這些可以讓你在解決問題時選擇合適的資料結構,高效的解決問題,比如hashmap的實現原理,甚至許多五年以上經驗的人都弄不清楚!

    還有很多,比如,為什擴容時有效能問題?不弄清楚這些原理,不知道問題根本,你就就寫不出高效的程式碼!還會很傻很天真的認為自己是對的,殊不知是孤芳自賞,自命不凡而已;總而驗資,言而總之,越基礎的東西越重要!許多工作了很多年的程式猿認為自己會用它們寫程式碼了,其實僅僅是知其實僅僅是知道如何呼叫api而已,知其然不知其所以然,離會用還差的遠。

    關於技能的提升給一些建議

    1.提升自己的英語水平,此重要性是不言而喻的,現在很多的新技術中文件少之又少,作為一名架構師總不能去看翻譯文吧。

    2.多看一些溝通方面的資料,流暢的溝通利用你成為一名成功的架構師。

    3.有機會參加PMP考試並取得證書,擁有專案管理方向的優勢就是你作為一名架構師的優勢。架構師其實從某種意義上就是一種角色,而不是一種職位。一定要時時刻刻保持空杯心態。一定要有一顆保持飢渴學習和耐得住寂寞的赤子之心。

    4.我們知道當前的技術節奏非常的快,一定要好好的利用自己的碎片時間去學習,去了解新技術,千萬不要讓自己技術落伍。

    5.多鍛鍊自己在大眾環境下的演講和PTT的能力。

    6.與不同的技術、程式語言、設計模式和結構等(甚至是它並沒有在日常中給予你直接的幫助)打交道。你永遠都不知道這些知識是否會在未來派上用場,但是對你絕對是有益無害。

    7.有機會多做知識分享,因為你一旦分享了知識,你就會對這門技術有深刻的印象,同時也

    能樹立在同事中的良好的技術形象,從而贏得更多的專家影響力而不是職位影響力。

  • 3 # 架構師筆記

    大公司主要是做一個專案的技術方案設計,疑難問題攻堅或者核心程式碼的實現。

    小公司是鬍子眉毛一把抓,什麼都要做,什麼都要管。

  • 4 # 休閒挨踢男

    1、負責公司系統的軟體架構設計、業務建模等相關工作,以及與技術支援部門合作設計系統軟硬體架構;

    2、協助業務部門制定專案計劃和控制專案進度;

    3、組織團隊人員的培訓、技術指導以及技術難點突破工作;

    4、負責團隊技術選型、技術之間的差別以及技術的發展趨勢分析、採用該技術的成本分析、技術與具體應用的偶合程度分析、研發過程風險分析以及如何迴避風險;

    5、小組成員開發工作管理,包括工作計劃的制定、執行和跟蹤;

    6、協調小組成員的工作,使得組內成員高效的協同工作;

    7、進行模組設計,包括模組概要&詳細設計、模組資料庫設計;

    8、 模組的開發框架搭建、介面設計;

    9、 負責工程中主要功能的程式碼實現;

    10、 解決模組編碼過程中的遇到的關鍵細節問題;

  • 5 # IT駱駝

    Java架構師當然是專注於Java開發架構設計的工程師。這裡包含兩層意思:

    1、Java架構師限定了工程師的專業範圍,專注於Java開發;

    2、Java架構師明確了工作職責,主要從事Java架構設計。

    如果往深一層探討,則需要明白,什麼是Java開發,Java架構師的主要職責是什麼?

    什麼是Java

    Java是一種程式設計語言以及該語言執行平臺的總稱。是1995年在印度一個生產咖啡的島——爪哇島上被JamesGosling等幾位工程師編寫的,因此命名為Java。Java可以編寫跨平臺應用軟體以及面向物件的程式設計語言等。Java語言是目前比較主流的伺服器端程式語言,其主要有面向物件、語法簡單、平臺無關性、支援多執行緒、安全性高等特點,因此,在複雜的業務服務物件程式設計中,大多選擇Java語言為開發語言。

    透過Java開發的程式,需要透過Java虛擬機器(JVM)和Java API(一套獨立於作業系統的應用程式標準介面)編譯執行,Java程式的執行機制如下圖:

    因此,Java架構設計師就需要深刻理解Java程式語法規則、編譯過程,才可能設計出效能優異的Java程式。

    Java架構師的主要職責

    一般Java架構設計師主要完成以下工作:

    負責系統及相關產品架構設計(核心工作),對於部分沒有產品經理、專案經理、或者需求分析師的企業,Java架構設計師一般還兼具系統需求分析的職責;

    根據架構設計,做好Java開發整體開發計劃及開發工作量評估;

    對java開發工作在架構設計基礎上開展技術指導;

    Java架構師還需要負責團隊Java開發人才培養,對Java開發人員進行專題培訓;

    評估Java開發的過程風險,尤其是技術風險,對部分前沿技術進行攻關,保證開發質量;

    從以上職責可以看出,Java架構師需要具有相當強的Java技術實戰和攻關能力,在此基礎上,具有進度控制、需求分析、培訓講解、風險把控等能力。因此,一般Java架構師至少工作滿5年以上,獨立作為開發骨幹承擔過專案開發工作,同時,技術視野寬廣,具有很強的溝通協調能力。

    作為Java架構師,需要注意的事項包括:

    1、良好的文件化能力

    任何想法如果只是口頭溝通,不能形成書面文字,知識傳遞效果將大打折扣!Java架構師更需要將系統架構設計透過文件的方式圖文並茂的展示出來;

    2、Java架構師需要具有廣度的前沿知識體系

    只要是涉及到系統開發的技術體系(不侷限於java),Java架構師都應該去了解(但不一定需要精通),同時需要捋清楚前沿知識的可用性、可靠性,並分析哪些新技術可以應用到架構設計中;

    3、需要注意溝通協調

    溝通能力和協調能力是架構師必備的主要能力之一,將架構設計形成文件之後,設計人員和開發人員對架構設計的理解是不盡相同的,需要架構師在專案開發過程中不斷的修正,並做好溝通協調,才能達到架構設計的初衷。

    4、設計系統架構既要從技術出發,還要兼顧專案本身的特點

    在設計架構師,需要考慮到採用新技術、新方法、新架構,但全新的技術帶來的是穩定性風險,同時新技術上手時間較長,投入資金比較大,時間要求也會拉長,因此,需要“通盤考慮”,最先進的不一定是最適合的!最合適的才是最好的!

  • 中秋節和大豐收的關聯?
  • 你認為高效的社交是怎樣的?