色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

JAVA后端應該學什么技術?

黃文隆2年前14瀏覽0評論

java學習路線圖

下圖描述了一個java程序員在成長過程中,需要逐步學習的知識。必須聲明,下圖不是本人原創,是github項目sorenduan/awesome-java-books,原作者的項目還是要說明一下。大家可以去github上去看這個項目。但是因為原文是英文的,我謹在此向原作者表示敬意,并對英文內容進行翻譯,希望可以幫助到大家!

圖中的

  • 黃色是優先,重點掌握的內容,優先級比較高
  • 褐色是進階的內容,需要有一定工作經驗再去學習
  • 灰色的內容,有時間有精力,自己有興趣或者明確需求的可以去學習一下

最重要的宗旨是:持續學習,Keep Learing

路線圖中文解釋

  1. Prerequisites 必備基本

    • Java java基礎
    • Gradle or Maven 項目構建及管理工具
    • SQL SQL基礎是必須要會而且要精的內容
  2. General Development Skills

    • Learn GIT, 代碼版本管理工具git,幾乎所有的開源世界的代碼都是git管理的,如果不會,你就只能閉門造軍,無法吸收大神們的精髓
    • 知道HTTP及HTTPs原理,及常用的HTTP方法(GET, POST, PUT, PATCH, DELETE, OPTIONS)
    • 學會使用搜索引擎,如果有可能,盡量用google,你懂的
    • 學習一些算法和數據結構的知識
    • 學一些基礎的權限管理相關的設計知識
    • 常用的代碼開發及設計原則,如:SOLID系列原則
  3. 命令行及參數解析工具

    1. args4j
    2. JCommander
    3. airline
  4. web框架

    1. Spring 這個不說了,必學必會
    2. Play Framework 一個full-stack(全棧的)Java Web的應用框架
    3. Spark 一個簡單易用的web應用框架(這里說的不是,在大數據流式處理領域的那個spark)
    4. Jersey RESTful 框架是開源的RESTful框架
    5. nanohttpd 一個開源的http庫,只需要一個類便可輕易實現http服務
  5. Databases 數據庫

    1. Relational 關系型數據庫,這個不多說,掌握
      1. SQL Server
      2. PostgreSQL
      3. MariaDB
      4. MySQL
      5. Oracle
    2. Cloud Databases 云數據庫(說實話這兩個筆者沒用過)
      • CosmosDB
      • DynamoDB
    3. Search Engines 全文檢索引擎類
      • ElasticSearch 適用于海量數據存儲及全文檢索
      • Solr 全文檢索引擎
      • Sphinx 一個基于SQL的全文檢索引擎,可以結合MySQL,PostgreSQL做全文搜索
    4. NoSQL
      • MongoDB 文檔類數據庫,較常用
      • Redis 鍵值對內存數據庫,常用
      • Apache Cassandra 分布式的Key-Value數據庫,性能較好
      • LiteDB 輕量級的Serverless 文檔數據庫LiteDB
      • RavenDB
      • CouchDB 一個開源的面向文檔的數據庫管理系統
  6. ORMs ORM框架類(筆者在這里加上一個Mybatis,國內用的多)

    1. Hibernate(JPA) 即使不用也要學,思想
    2. Ebean
    3. BelleORM
  7. Caching 緩存數據存儲

    1. Caffeine
    2. EHCache
    3. Cache2k
    4. Distributed Cache 分布式緩存
      1. Java-Redis 這種最常用
      2. Java-Memcached
      3. Infinispan
  8. Logging 日志

    1. Log Frameworks 日志框架(筆者在這里加上logback)
      • Zap
      • TinyLog
      • log4j、log4j2 常用
    2. Log Management System 日志管理系統
      • Sentry.io
      • Loggly.com
      • Tracer
  9. Real-Time Communication 實時通信

    1. Socket.IO
    2. atmosphere
    3. webbit
  10. API Clients API客戶端

    1. REST REST接口-JSON格式,基于HTTP協議
      • okhttp
      • retrofit
    2. GraphQL 一種為你的 API 而生的查詢語言
  11. Good to Know 最好要會

    • Beanvalidation 通常用于參數校驗
    • bouncycastle
    • gson JSON數據處理工具
    • Apache Shiro 權限管理
    • JJWT 接口訪問token授權
    • RxJava 一套異步編程的 API
  12. Testing 測試相關

    1. Unit, Behavior, Integration, Load Testing
      1. JUnit 最常用
      2. CitrusFramework
      3. Gatling
      4. Tsung
      5. Mockito 模擬測試,常用
      6. Truth
      7. Assertj
      8. cucumber-jvm
      9. cukes
      10. hoverfly-java
      11. rest-assured
      12. jbehave
    2. E2E Testing 端到端測試
      • Selenium 常用
  13. Task Scheduling 定時任務管理

    • Aurora
    • elasticjob
    • Sundial
    • cron-utils
  14. MicroServices 微服務

    1. Message-Broker 消息中間件
      • RabbitMQ 常用
      • Apache Kafka 常用
      • ActiveMQ 常用
      • Azure Service Bus
    2. Message-Bus 消息總線
      • mbassador
      • rmq
    3. Frameworks 框架
      • Apollo 分布式配置中心
      • lagom-framework
      • micronaut
      • eureka 服務注冊中心
      • helidon
      • armeria
    4. RPC 遠程接口調用(序列化、反序列化)
      • Protocol Buffers
      • gRPC-Java
      • thrift
  15. Java-Patterns java設計模式

雖然這張路線圖,已經相對完整,但是相對于國內一些公司的要求還有很多可以補充的地方。如果想成為架構師,可能要學會

  • linux 不會的話,開源分布式軟件,你安裝不上,你怎么學?
  • docker & devops 持續集成、運維優化等
  • spring cloud 和國內常用的 dubbo,負載均衡haproxy、nginx等
  • 甚至你還要去學前端知識,css、html自不必說。目前國內最流行的vue。

總之一句話:Keep Learing,持續學習。筆者一直覺得程序員的投入與回報是不成正比的,我覺得沒有一個行業有程序員需要的知識更新速度快,目前還沒發現。也許有些人不認可,但是入這行時間久了就會明白!所以不要忘了你為什么出發?如果單純是因為錢,而不是因為熱愛,在適當的時間需要轉向或回頭!