更新時間:2019-10-23 11:08:39 來源:動力節點 瀏覽2213次
一、什么是架構師?
1、從內心講我真的不想回答架構具體需要做什么,架構師應該具體負責什么。因為從實際情況看,在不同的系統層級,不同的需求下架構師的職責也會不同;從不同的技術角度看,架構師又是個變色龍——一時是技術的大拿,一時是技術的規劃者,一時是技術團隊的指揮者。
2、那么,該如何回答“什么是架構,什么是架構師”這個問題呢?這或許需要先搞清楚另外一個問題——一名程序員是如何走上架構師之路的?我從許多朋友那里了解到了很多實際案例,程序員走上架構師之路,總結起來最多的原因是因為他早前代碼寫的好。
3、那么,代碼寫的好就是架構嗎?顯然不是。代碼寫的好只是表象,做所有事情都需要規劃,尤其是一個復雜的軟件系統,這更需要規劃,否則可能連一行代碼都寫不出。復雜的軟件系統一定會需要做很多抽象設計、對象規劃、接口規劃等準備動作。也就是“上一輩程序員”口中所說的:詳細設計。做架構主要的事情也依舊如此,需要對整個系統進行系統的規劃:模塊、通訊、邊界、擴展、技術下沉等工作。這樣的規劃完成之后項目方能正常跑起來。
4、當然,架構也不僅僅是規劃,還要做的另一件大事就是技術識別。識別出系統中技術的難易區域,并分解復雜技術,使之成為一個個技術的黑盒子,在此之上再進行新的技術規劃,使整個系統從技術角度來看是分層次的,從難到易,從大到小,但各層之間又是互相的黑盒。這也常說的讓系統模塊間達到“雞犬相聞老死不相往來“的狀態。
5、一個架構師需要足夠的技術的寬度。從軟件到硬件,從開發到測試,從運維到安全等都需要面面俱到的了解。當然你可能不是這單方面領域里面最深入的人,但是你需要知道它們是怎么做的(不僅僅是皮毛,要深入原理),并且要知道它們組合起來是個什么樣的東西。技術面也足夠寬了之后,是不是就會成為完美架構師呢?
6、答案是不會,因為還有新的問題要過來。這次的問題諸如“系統在未來的運行過程中運維需要做什么?”“系統在未來的功能迭代中如何更方便的擴展?”“系統應該怎么修改?”“系統應該被怎么樣升級?”這時的你是不時很困惑?是不是感覺這個架構的世界好長啊,怎么像保姆一樣什么都要管。但仔細想想這是應該的,因為一個系統初次開發并交付只是它生命周期中的一小部分而已。后面的維護、改造、升級才占了整個軟件生命周期的絕大部分時間。你是它的架構設計者,是它靈魂之所在,你當然應該設計好它的未來。這也是架構師做好的最后一件事情:系統未來的設計。
二、架構師的定義?
個人覺得架構師需要具有以下幾特點:
1.知識廣度:需要知道主流技術為什么誕生,能解決什么問題?如果同一種業務用不用的技術來實現,會有什么哪些優缺點?比如:流行的ORM框架Mybatis和hibernate,他們之間的優缺點是什么?要有清晰的認識會能在技術造型時做出正確的決定。
2.抽象能力:對業務和技術進行抽象。業務抽象就是對需求進行分析后,能夠建立完美的實體類以及他們之間的聯系。技術抽象是對整體架構進行一個分層,各層之間的交互。這至關重要,如果技術抽象能力不足,這會導致整個系統的架構不靈活,難以維護和擴展。
3.知識的深度:至少是某個領域的專家,比如消息隊列,activeMQ熟悉其源碼,知道其實現。
優秀的學習能力:對新的技術和前沿性的技術進行學習,使用它來解決工作中的業務問題。
三、那么你該如何去做?
1:扎實的Java基礎,Thinkinjava上介紹的內容都能理解,做到這一步恭喜成為了程序員。
2:熟練使用主流框架,如:mybatis,spring等。
3:研究過至少一種以web框架的源碼,如springmvc,struts等。
4:架構過或者參與過高并發系統設計,知道如何應對突發情況。
5:對自己所處的業務能夠根據自己的知識維度,提出優化建議或者預測其風險點。
四、該掌握哪些技術呢?
開源框架解析
源碼解讀是一位合格架構師的必備技能,站在更高的角度來分析及解決技術疑難問題;
應該先學習開源框架的常用設計模式及經典設計思想,扎實源碼內功基礎,學習大牛們源碼設計思想及技術規范,從源碼學習過程中提升個人技術審美觀及架構設計思想。然后再以Spring5與Mybatis的基礎應用編碼為起點,去尋找底層源碼切入點,讓開源框架底層技術不再神秘。
高性能架構
熟悉大牛的源碼框架后,接下來我們進入高性能架構專題學習,我們會講解傳統技術架構到大型互聯網架構的演進過程,如何將傳統軟件技術升華到高并發高性能的互聯網技術,理論與實戰充分結合,讓每個技術點學而不忘。從高性能架構技術的基礎入門,到技術架構的逐步進階,再到技術架構的高級專題,最后通過多個實戰環節將所有技術點鞏固加強,讓每個人在高性能架構技術的深度及寬度上得到跳躍式提升,成為互聯網企業的核心技術人才。
微服務架構
在高并發的應用場景下,微服務技術是互聯網平臺必選的架構技術,目前國內較流行,用得較多的有SpringBoot,SpringCloud,Duboo,不僅要學習微服務架構的應用知識,還會從底層源碼透析每個開源框架的設計模式及設計思想,還有Docker虛擬化技術等等,使用微服務改變互聯網系統的并發瓶頸,讓你的平臺開發更加高效、快捷。
團隊協作
高速發展的互聯網生態環境下,除了擁有優秀的架構技術之外,高效快捷的團隊協作開發技能必不可省,優秀的架構師如何為企業減輕成本,如何更高效高質量的完成系統,這些你都要學。
B2C商城項目實戰
有了互聯網熱點技術,一個真實的互聯網項目可以讓你把所學的熱點技術由點到線,由線到面,將所有技術聚集到實戰的環境,最終將技術點和項目實戰真正變成自己的本領;分析B2C項目的每一行源行及設計規范,讓你對Nginx、Redis、Docker、Mq等技術學而致用,用而不忘,具備獨立的架構設計與開發能力。
以上就是動力節點java培訓機構小編介紹的“如何成為一個資深Java架構師呢?”的內容,希望對的大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
視頻相關
全網最新全套Java視頻教程下載:http://m.dabaquan.cn/video.html
Java學習資料下載:http://m.dabaquan.cn/tutorial_java_se/
相關內容
相關閱讀
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習