阿里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團長”或者“javatuanzhang”關注。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章