Java架構師薪資高,這些技術你會嗎?

weixin_34054866發表於2017-09-26

其實都是在做一個專案,專案是一個大型的多節點部署的專案,做了好幾個版本,中間用到了很多技術和框架,也用了一些管理工具和敏捷實踐。我這裡不是來說專案的,因為最近看了一些招聘資訊,結合專案中用到的一些知識和管理措施,作為一個程式設計師,需要去實時評估下自己當前的能力是否能跟上時代的步伐,所以,總結了下作為一箇中高階Java開發人員或架構師,到底需要掌握哪些技能。

當一個資深開發者變得更高階時會發生什麼?一般的,他們會被提拔為“架構師”。有時一個架構師不一定必須成為一個開發者,只要他們擁有更寬廣的視角。“最後,總有一個人任命為“架構師”的職位,他要開發的系統和正在開發的系統做出架構上的決策。在一些更大的公司,還有“架構師議會”,每個團隊指定的架構師們聚在一起決定著一些明智的事情。

但是我不認為專門設立“架構師”這樣的職位是一個好的主意。架構師應該是建築行業的一個職位,這是無可厚非的,因為不能在專案中期改變和調整原有的架構。但是軟體架構是十分靈活的,會在開發的過程中需要不斷的進行調整,不應該預先就嚴格地定義好。而且開發工作和架構設計是如此的緊密關聯,所以說某個人決定“什麼要做”和“什麼不要做”是不科學也不嚴謹的。這會帶來各種各樣的問題,主要是因為架構師經常無法全面的考慮到具體的實現是怎麼樣。如果一個架構師長時間不寫程式碼,他們更加傾向於忽略“實現細節”,轉而僅僅考慮抽象設計。但是,抽象總是會造成遺漏,只考慮抽象而不考慮特定的實現這樣的解決方案很少可行有效的。

我主張的第一個觀點就是:如果你不知道如何詳細地編寫所有程式碼地情況下,你就無法在成為一個優秀的架構師。大多數情況下都不是“簡單地編碼”。如果你已經成為架構師多年,同時也多年沒有寫過程式碼了,那幾乎可以肯定你不是一個優秀的架構師。

1、對於Java基礎技術體系(包括JVM、類裝載機制、多執行緒併發、IO、網路)有一定的掌握和應用經驗。

JVM記憶體分配、JVM垃圾回收;

類裝載機制;

效能優化:

反射機制;

多執行緒;

IO/NIO;

網路程式設計;

常用資料結構和相關演算法:

2、java架構工程師 對物件導向的軟體開發思想有清晰的認識、熟悉掌握常用的設計模式;

設計模式:單例模式;工廠模式;代理模式;模板方法模式;責任鏈模式等

3、熟練掌握目前流行開源框架(spring/springmvc/ibatis),並且對其核心思想、實現原理有一定認知;

開源框架:spring;

開源框架:hibernate;

4、熟悉Oracle、MySQL等資料庫開發與設計以及快取系統REDIS或 Memcached的設計和研發;

關聯式資料庫:oracle

關聯式資料庫:PostgreSQL

快取系統:Redis(Nosql)

快取系統:Memcached

5、java架構工程師 熟悉底層中介軟體、分散式技術(包括快取、訊息系統、熱部署、JMX等)

底層中介軟體:

應用伺服器:Jetty(Tomcat)

訊息中介軟體:ActiveMQ、RabbitMQ

事務處理中介軟體:

資料訪問中介軟體:ODBC

工作流中介軟體:JBPM

分散式技術:

快取系統:

訊息系統:

Restful:

熱部署:

JMX:

6、至少一種Java 應用伺服器如tomcat

Jetty:

7、精通shell程式設計,熟練應用awk、sed、grep、strace、tcudump、gdb等常用命令;

8、有大型分散式、高併發、高負載(大資料量)、高可用性系統設計開發經驗

分散式:(多節點部署)

高併發:

高負載(大資料量):

高穩定:

高可用:

9、對配置管理和敏捷研發模式有所瞭解

配置管理工具:

SVN:

Github:

10、業務能力:

java架構工程師

系統升級、雙機、部署、容災、備份恢復、DFX

加分技術:

指令碼語言:python

遠端呼叫:

精通Internet基本協議(如TCP/IP、HTTP等)內容及相關應用

有一定安全意識並瞭解常見的安全問題解決方案

熟悉常見的一些解決方案及其原理:單點登入、分散式快取、SOA、全文檢索、訊息中介軟體,負載均衡、連線池、

nosql、流計算等

架構之路任重而道遠。程式設計和架構設計是互通的,每個人都可以從設計好一個程式往設計好一個系統架構前進。如果現在還無從下手的,我推薦大家可以從領域驅動設計這個概念入手,這是由業務為導向的設計方式,可以對培養設計出落地的架構有很大的幫助。希望可以給大家一些思路和啟發。最後引用“俞軍”一句名言,我們作為架構師要有“懷疑精神:自我迭代”的心。

想要學習高效能及分散式、深入淺出。效能調優、Spring,MyBatis,Netty原始碼分析可以加群:668395460

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加群。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加群。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加群。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加群。

相關文章