怎樣才是一個基礎水平與進階水平的Java程式設計師
阿新 • • 發佈:2019-01-07
- 掌握面向物件的需求分析和設計
- 理解SOLID原則,理解常用設計模式,熟練掌握重構
- 理解面向服務的架構
- 理解Linux作業系統的一些概念,比如核心空間,使用者空間,系統呼叫,命名管道,Unix Domain Socket,
- 熟悉Linux下命令列工具。
- 深入理解程序,執行緒。
- 瞭解Java記憶體模型
- 瞭解Java的併發包,如鎖,讀寫鎖,Barrier,Executer和Future
- 瞭解Java 8的Lambda表示式和Streaming API
- 理解TCP/IP協議族
- 理解HTTP協議和REST API
- 理解多路複用和非阻塞IO
- 熟悉Socket程式設計,能夠使用網路框架如netty開發服務端程式
- 掌握RPC框架的使用,比如RMI,Thrift,Dubbo
- 掌握訊息佇列的使用,如JMS,ActiveMQ等
- 掌握分散式快取如memcache,Redis的使用
- 瞭解代理和負載均衡如Nginx的使用
- 熟悉分散式KV儲存如zookeeper,etcd等,理解選主和分散式鎖
- 會使用Mock框架進行單元測試
- 瞭解效能方面的知識,如吞吐量和時延。
- 能夠進行執行效能測試,收集效能資料並進行分析。
- 瞭解安全性相關的知識,比如私密性(加密和解密),完整性(訊息認證),不可否認性(簽名和驗籤),身份認
證,授權,傳輸層安全(如SSL/TLS),數字證書和PKI體系 - 瞭解可用性相關的知識(,如可用性指標,如MTBF,MTTR,和高可用的實現,如主備。雙活,負載均衡
- 瞭解容錯性,容災和故障轉移