1. 程式人生 > >怎樣才是一個基礎水平與進階水平的Java程式設計師

怎樣才是一個基礎水平與進階水平的Java程式設計師

  • 掌握面向物件的需求分析和設計
  • 理解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,和高可用的實現,如主備。雙活,負載均衡
  • 瞭解容錯性,容災和故障轉移