1. 程式人生 > >阿裏Java架構師談談架構和如何成為一個Java架構師

阿裏Java架構師談談架構和如何成為一個Java架構師

責任 程序員 電路 失敗 生產力 就是 協議 要掌握 多個

架構的定義

我們來看看軟件架構的一般定義:

程序和計算系統軟件體系結構是指系統的一個或多個結構。 該結構包括軟件的構建,構建的外部可見屬性以及它們之間的相互關系。

該體系結構不是可操作的軟件。 具體來說,這是一個表達式,它使軟件工程師能夠:

  • 分析滿足監管要求的設計有效性。

  • 在設計更改相對容易的階段,請考慮架構的可能選項。

  • 降低與軟件構建相關的風險。

軟件架構的重要性

我為什麽說軟件架構非常重要? 直接編程直接開發,請多看看以下幾點?:

  • 軟件架構可以滿足系統的質量

  • 體系結構設計允許受益者達成一致的目標

  • 架構設計可以支持規劃過程

  • 架構設計對系統開發的指導性

  • 架構設計有效管理復雜性

  • 架構設計為復用奠定了基礎

  • 架構設計降低了維護成本

  • 架構設計可以支持沖突分析

什麽是好的軟件架構

這個問題可能會被大家問到,包括一些IT公司也在問,這個問題的答案可能不僅僅是簡單的句子或者定義可以回答,我們來看下面幾個圖片的例子:

技術分享圖片

這是什麽東西? 樂高玩具,樂高玩具,我們都玩過嗎?

它可以作為一個完整的模型出售給您,您也可以將其全部分解並自由地將其從一個模型重新組裝到另一個模型,因為每個Lego模塊都有一個水平和堅定方向的標準。 界面,這就是我們常說的高內聚和低耦合。

什麽是壞架構

技術分享圖片

我們來看看上面的圖片。

一個是清代的八封信,另一個是孔乙己。

記住四種寫作方式?

然後,你專門研究了回寫單詞的四種方式,但你有沒有想過我可以將單詞轉化為單詞? 這是一個很好的折扣嗎?

要知道最時尚並不一定是最好的

技術分享圖片

為什麽M1A2和Apache直升機中的A8處理器或最新奔騰處理器沒有? 實用,測試是最好的!

成功的軟件又是怎麽樣的呢

我們談論軟件架構。 該架構的最終體現是一款軟件。 什麽是成功的架構? 什麽是成功的軟件?

技術分享圖片

我們看上邊的圖片,這是美國的阿裏巴巴級宙斯盾驅逐艦。 右邊是印度的“德裏級”驅逐艦庫裏盾,由美國安吉斯自己設計和建造。

兩艘軍艦有什麽區別?

一種是模塊化設計,整體線條流暢,模塊可隨意更換。

一種是拼湊而成的,線條被暴露出來,並且甲板上充滿了各種電子設備和天線。 一旦被損壞,維護起來非常困難。

JAVA通用領域的相關技術

當然,我們這裏主要講JAVA。 所以,作為一名JAVA和J2EE架構師,需要什麽樣的技能才能達到架構師的水平?

技術分享圖片

上面的圖片,我們這樣看,它分為三部分:

  1. 在頂端,我們需要掌握一些技術領域的知識,它可以使我們能夠解決諸如電子商務,公司OA,銀行保險金融等解決方案和設計其他領域的共同領域。

  2. 在中間,為了達到這些技術的頂端,我們需要了解一些中間件,數據庫,開發框架知識,它是一個支柱。

  3. 底部,底部? 這是我們的基礎,為我們達到中層或上層奠定基石,這就是為什麽人們有時會發現我的博客和其他博客有不同的地方,不僅是編程,而且還有“中間”層。也就是說,數據庫, 安全和框架建設混雜在一起,因為我不希望每個人都通過閱讀我的博客而停留在碼,碼和螺絲的水平。

架構師的職能

說了這麽多架構之後,我們來談談架構師。

技術分享圖片

如果您看到它,架構師的首要責任是集中於:非功能需求,即非功能需求。

許多人仍然不清楚功能需求與非功能需求之間的界限。 這裏有兩個例子來說明:

功能性需求

頁面查詢時,這個查詢與哪個數據庫表關聯,因為我的業務是這樣的一個需求,在界面A中有一個按鈕,然後彈出窗口B,在窗口B中顯示什麽樣的數據,最終的界面 點K結束後,打開界面B時哪個數據發生了變化。

非功能性需求

我們的系統查詢速度小於2S,是否考慮使用異步查詢,采用團隊排隊機制,系統需求可容納1000個並發,這個系統應該做成插件,能夠水平擴展,能夠遵守XXX協議,此Web服務是否要使用SOAP HEAD和BASIC身份驗證,NTLM身份驗證或令牌環身份驗證?該下拉框可以被輸入並且可以被下拉。此身份驗證是否可以訪問LDAP?

許多面向商業的項目公司認為,架構師在解決問題(即故障排除,故障排除,錯誤,然後找到架構師)時,將架構師視為消防員。你不會為自己考慮為什麽問題架構師已經出現了2秒鐘,2分鐘或1天半的時間來解決過去幾個月無法解決的問題。好?

解決這是人們應該解決的問題,說人類建築師失敗了?是不是我們應該從這個軟件和架構的最早框架中找到問題?

建築師,這不是一個問題解決問題。

在節日之前,我還進行了一些采訪。從純粹的技術角度來看,我選擇了建築師TECH LEADER的候選人。

我仍然發現很多問題。這在中國是一個普遍的問題:我們的程序員經常不做程序,但更多時候他們在做業務邏輯並成為某個領域的商人。

當然,我們的程序員在他們職業生涯的頭三年和四年都會為某個領域編寫代碼。這不是問題,但請務必記住我們是編碼,IT和程序員。 ,而不是“業務人員”!

它是什麽?什麽是程序員?什麽是技術領導者?什麽是建築師?

我們必須很好地問自己這個問題。好好想一想。建築師的要求是什麽?

我隨便在這裏說些什麽:我相信這對於一些想要走技術之路的學生很有幫助:

TCP / IP協議,加密和解密,計算機原理(附加補碼),JPG代碼,MPEG2-3協議,邏輯電子電路,計算機編譯原理(堆棧,堆棧,隊列),這些東西在工作時總是使用?這些是你一直關註的底層嗎?

如果您要采取技術路線,一定要記住“數據庫+ ASP / JSP”不是技術。它只比表格制作強大一點。報告作者有點強大。

請記住,技術線主要關註非功能性需求。非功能性需求只是一站式的東西。有了這個基礎,任何需求都很清楚。你什麽都沒有。 “困難”,或者如果你去上學,你可以用不同的方式來做。

我最近一直在采訪一些候選人並擔任建築師。我對這個過程深感不安。找到一名程序員來開發和招聘一名建築師並不困難。這很難......呃,我認為我們需要考慮一下,如果我采用技術路線,我缺少什麽,如何補充它,還有什麽我應該註意?

科學技術是第一生產力。所謂的六西格瑪管理方法論是六西格瑪的第一個。 “技術人才是當前企業的第一生產力。”讓我們看看哪些公司可以發財。阿裏,淘寶,支付寶,GOOGLE,騰訊,互聯網,高科技等等,以及其他一些公司,他們依靠的不是業務邏輯,而是真正的技術,這足以解釋問題,所以如果你想走技術路線,請註意更多細節和更低層次的東西

阿裏Java架構師談談架構和如何成為一個Java架構師