近期都是在作一個項目,項目是一個大型的多節點部署的項目,作了好幾個版本,中間用到了不少技術和框架,python
也用了一些管理工具和敏捷實踐。我這裏不是來講項目的,由於最近看了一些招聘信息,結合項目中用到的一些知識和程序員
管理措施,做爲一個程序員,須要去實時評估下本身當前的能力是否能跟上時代的步伐,因此,總結了下做爲一箇中高級Java開發人員或架構師,到底須要掌握哪些技能,當你掌握這些技能的時候你已經在BATJ或是在BATJ的路上了。算法
一、對於Java基礎技術體系(包括JVM、類裝載機制、多線程併發、IO、網絡)有必定的掌握和應用經驗。spring
JVM內存分配、JVM垃圾回收;sql
類裝載機制;shell
性能優化:數據庫
反射機制;編程
多線程;設計模式
網絡編程;緩存
經常使用數據結構和相關算法:
二、對面向對象的軟件開發思想有清晰的認識、熟悉掌握經常使用的設計模式;
設計模式:單例模式;工廠模式;代理模式;模板方法模式;責任鏈模式等
三、熟練掌握目前流行開源框架(spring/springmvc/ibatis),而且對其核心思想、實現原理有必定認知;
開源框架:spring;
開源框架:hibernate;
四、熟悉Oracle、MySQL等數據庫開發與設計以及緩存系統REDIS或 Memcached的設計和研發;
關係數據庫:oracle
關係數據庫:PostgreSQL
緩存系統:Redis(Nosql)
緩存系統:Memcached
五、熟悉底層中間件、分佈式技術(包括緩存、消息系統、熱部署、JMX等)
底層中間件:
應用服務器:Jetty(Tomcat)
消息中間件:ActiveMQ、RabbitMQ
事務處理中間件:
數據訪問中間件:ODBC
工做流中間件:JBPM
分佈式技術:
緩存系統:
消息系統:
Restful:
熱部署:
JMX:
六、至少一種Java 應用服務器如tomcat
Jetty:
七、精通shell編程,熟練應用awk、sed、grep、strace、tcudump、gdb等經常使用命令;
八、有大型分佈式、高併發、高負載(大數據量)、高可用性系統設計開發經驗
分佈式:(多節點部署)
高併發:
高負載(大數據量):
高穩定:
高可用:
九、對配置管理和敏捷研發模式有所瞭解
配置管理工具:
SVN:
Github:
十、業務能力:
系統升級、雙機、部署、容災、備份恢復、DFX
加分技術:
腳本語言:python
遠程調用:
精通Internet基本協議(如TCP/IP、HTTP等)內容及相關應用
有必定安全意識並瞭解常見的安全問題解決方案
熟悉常見的一些解決方案及其原理:單點登陸、分佈式緩存、SOA、全文檢索、消息中間件,負載均衡、鏈接池、
nosql、流計算等;
開源框架源碼專題
閱讀源碼
程序員天天都和代碼打交道。通過數年的基礎教育和職業培訓,大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。可是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。這也形成了不少錯誤看源碼的方式。
詳細介紹源碼中所用到的經典設計思想,看看大牛是如何寫代碼的,提高技術審美、提升核心競爭力。
幫助你們尋找分析源碼的切入點,在思想上來一次巨大的昇華。知其然,並知其因此然。把知識變成本身的
高性能架構專題
互聯網時代,系統架構如何迎接高併發流量的挑戰。而做爲技術開發者,如何去應對技術變革帶來的技能危機。基於傳統架構到分佈式架構演變過程所帶來的技術變革進行全面深刻講解。
在技術深度和技術廣度上獲得飛躍的提高。成爲互聯網行業所須要的T型人才
微服務架構專題
應對複雜的業務需求變動、用戶膨脹,SOA已成爲如今互聯網公司標準的解決方案,微服務相關的框架正是爲此而生。
性能優化
深刻淺出性能優化
理解性能優化
性能基準
性能優化究竟是什麼
衡量維度
雙十一電商項目實戰
大型電商分佈式系統應用實踐,利用雲服務器搭建真實的開發和部署環境,千人在線參與開發。
由淺入深的,帶你從零到項目發佈上線與運維,讓你體驗真實的企業級項目開發過程,掌握大牛的編碼思惟、經驗與技巧。