https://www.pdai.tech/

0. 前言

0.1 维度与层次

Java技术雷达图从能力角度分为以下三个维度:

  • 架构设计与重构
  • 编码相关
  • IT基础

针对这三个维度中众多的技术点,有偏重地推荐为两个层次:

  • 关键知识技能:表格中标蓝加粗字体为关键的知识技能与技术点;
  • 扩展知识技能:未标蓝加粗的内容为推荐的扩展内容,在掌握了关键知识技能的基础上,根据业务的不同可以有选择性地挑选学习。

0.2 雷达图的应用建议

专家团针对每个知识技能给出了掌握程度的评分标准:

  • 知道(1分):能说清楚是什么,解决什么问题,了解技术对应的社区的使用情况和学习路径。
  • 会用(2分):实现过对应技术的"QuickStart",知道技术的适用场景,能照猫画虎实现需求。
  • 熟练(3分):能够在业务场景中用最佳实践解决问题,形成自己的方法论和套路。
  • 精通(4分):熟悉技术背后原理,研究过源码,能够解决疑难问题(故障、性能优化以及扩展)。
  • 贯通(5分):对该技术的不足比较深入的洞见,能够提出创新性的解决方案,拓展该技术。

使用雷达图的个人或团队可以在初期对自身能力做一次评估,并选择合适的技术方向学习。之后在合适的时间点再次评估,审视是否有进步。

辅助评分的参考工具:excel工具

+

知识技能雷达excel工具示意图:

1. 架构设计与重构

知识技能 技术点 学习参考
# 架构设计    
  - 领域驱动设计 IBM Reactive in practice
    martinfowler domain_driven_design
  - 面向对象设计 Introduction to Object-Oriented Programming
  - 演进式架构 《Building Evolutionary Architectures》
    martinfowler evo_arch_forward
    evolutionaryarchitecture.com
    Evolutionary_Architecture_Keynote_by_Neal_Ford
    《软件演进式设计与领域建模》(公司优秀MOOC课程)
  - 4+1视图 运用RUP 4+1视图方法进行软件架构设计
  - 扩展内容 扩展性设计、可用性设计、可靠性设计、一致性设计、过载保护、容灾备份、反向代理、连接池、配置中心、缓存、定时调度
# 数据建模    
  - 事件风暴 DDD事件风暴建模
  - 四色建模 四色建模
# 安全设计    
  - 威胁建模 Threat_Modeling_Cheat_Sheet
# 重构    
  - 重构&坏味道 《refactoring》
  - 重构工具&快捷键 jetbrains_refactoring_settings
  - 设计模式 java-design-patterns
  - 扩展内容 重构的原则,代码坏味道,构筑测试体系
分布式系统 - Spring-cache baeldung_spring-cache-tutorial
  - 分布式事务 distributed-transaction
  - gRPC grpc_docs
  - 分布式锁 distributed-locks-with-redis
  - 云化/服务化/微服务 spring-cloud
  - 扩展内容 分布式Session: Session复制、Session绑定、Session服务器
分布式缓存:Redis、一致性Hash算法
数据库:读写分离、主从热备、分库分表、一致性
分布式事务、CAP、BASE、2PC/3PC、分布式锁、负载均衡
消息队列:RabbitMQ、ZeroMQ、ActiveMQ、Kafka
服务化:服务注册与发现、Zookeeper
微服务
RPC
云化相关技术
技术前瞻 - new sql tidb
  - 嵌入式kv存储 rocksdb
  - AI相关工具及学习资料 tensorflow
pytorch
  - 扩展内容 云计算、大数据、AI、分布式

2. 编码相关

知识技能 技术点 学习参考
# Java 语言 - 集合框架与操:
List
Set
Map
Collections
Oracle Java官方文档
  - Java 常用特性:
Lambdas
Streams API
Interface default & static methods
Java Time API
Functional Interfaces
Collections Framework Enhancements
Concurrency API Improvements
Java Lambda
《JAVA并发编程实践》
  - JVM相关:
Java虚拟机(Hotspot实现)
类加载机制
内存模型
GC
调优
jstack
jmap
jconsole
《深入理解Java虚拟机:JVM高级特性与最佳实践》
The Java Virtual Machine Specification Java SE 8 Edition
  - 通用及编码规范 《华为Java语言通用编程规范》
# 算法与数据结构 - 基本数据结构:
数组、链表、栈、队列、二叉树、图
慕课网课程
  - 基本算法:
查找、排序、分治递归、动态规划、贪婪、一致性哈希
慕课网课程
# Java 框架/工具 - Spring:
IOC/AOP
Spring annotation
Spring security
XML/YML configuration
Spring boot
Spring data
Spring cloud
Spring integration
《spring揭秘》
《spring in action》(第4,5版)
  - 常用工具类:
Guava
Apache common lang
Bean Utils
Collections/IO
jackson
gson
guava
commons-lang
jackson
  - ORM:
JPA
Mybatis
Hibernate
spring-data-jpa
  - Apache Netty netty官网
# 数据持久/缓存 - GaussDB 100 《数据库事务处理的艺术:事务管理与并发控制》
  - 数据库锁机制:
表锁、行锁、MVCC
《MySQL技术内幕:InnoDB存储引擎》
  - NoSQL  
  - Redis 《Redis设计与实现》
  - 分库分表/Sharding 《PostgreSQL技术内幕:查询优化深度探索》
《高性能MySQL》
# 开发者测试 - 测试分层:
Unit testing
Integration testing
System testing
Operational acceptance testing
 
  - 开发者测试框架:
JUint + PowerMock + JAssert + jsonassert
junit5
junit4
# Debuging - 单步调试:
debuger
breakpoints
threading
condition breakpoint
watch
 
  - 远程调试  
# IDE/TOOLS - IDE:
IDEA
Pycharm
jetbrains官网
  - Maven  
  - Gradle  
脚本语言(Python/lua/shell) python python官网
  lua lua官网

3. IT基础

知识技能 技术点 学习参考
# Linux工具链 - Shell编程 《unix power tools》
  - perf 工具  
  - IO、网络工具  
  - 基础命令、SSH、SNMP、SFTP等  
# 版本管理(VCS) - Git、Gitlab、Github Git官网
Git实践练习
  - svn  
# 安全基础 - SSL/TLS/HTTPS Transport_Layer_Security
websecurity-what-is-ssl-tls-https
  - 加密算法、哈希、证书、秘钥、数字签名  
# 数据库 - SQL:索引、主键索引、组合索引、存储过程、Execution plan  
  - ACID  
  - NoSQL、KV  
  - 数据库性能调优  
网络知识 - ip/tcp/udp/http 《TCP/IP详解》
  - 网络工具 《wireshark网络分析就这么简单》
《wireshark网络分析的艺术》
tcpdump
操作系统(API) - Euler 《Linux系统编程》(Robert Love)
  - Centos/Redhat  
  - Windows 《Windows核心编程》(Jeffrey Richter)
CI/构建 Jenkins jenkins官网
  Maven maven官网
  Gradle gradle官网
  CloudDragon  
配置管理 ansible ansible官网
  puppet puppet官网
  chef  
容器化 Docker docker官网
  Kubernetes kubernetes官网

软件技术雷达Java相关推荐

  1. 软件技术雷达 c++

    JAVA https://www.pdai.tech/ ThoughtWorks Tech Radar 网页地址是 https://www.thoughtworks.com/radar c++ 0. ...

  2. 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术...

    业务.架构.技术,我们应该关注什么 一个企业存在的必然和前提就是获取企业生成的利润,怎么样合法合理取得利润呢,企业怎么样生存下去呢,很简单,为客户提供等值的产品与服务,客户支付你相应的报酬. 我们是从 ...

  3. JAVA软件技术人力外派外包费用怎么算?

    软件人力外包逐步成为趋势! 当越来越多的企业选择JAVA软件人才外派的形式解决灵活用工的诉求,紧接着要面对的就是成本费用问题,很多公司反映JAVA外派公司的报价很不透明,也不知道该如何去做公司驻场开发 ...

  4. 软考考c语言还是java,计算机程序设计工程师技术水平(java)证书就是计算机技术与软件专业技术资格考试的程序员证书么?...

    满意答案 rfhenry 2013.09.04 采纳率:47%    等级:12 已帮助:9852人 计算机程序设计工程师技术水平(java)证书就是计算机技术与软件专业技术资格考试的程序员证书. 计 ...

  5. java计算机毕业设计软件技术课程学习系统设计与实现源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计软件技术课程学习系统设计与实现源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计软件技术课程学习系统设计与实现源码+系统+数据库+lw文档+mybat ...

  6. 如何成为资深软件工程师(JAVA方向)

    这是一篇干货文. 为什么要成为一名资深软件工程师 让我们先考虑一个问题,我相信也是绝大多数程序员迷茫和思考过的问题: 我现在工作(一\二\三\四\五\六)年了,听说程序员写代码最多也就到(30\35) ...

  7. 什么是ThoughtWorks技术雷达?

    今年3月,小灰有幸在深圳见到了一位IT行业的世界级大神,这位大神就是 Martin Fowler,<重构>的作者,敏捷开发的创始人之一. 那一次,正赶上ThoughtWorks技术雷达10 ...

  8. ThoughtWorks技术雷达(2012年10月)

    推荐 1 收藏 我们看到,无论是在ThoughtWorks还是在更广泛的社区,采用微服务(micro-services)的越来越多.诸如Dropwizard的框架和声明性配置(declarative ...

  9. 软件技术基础_软件技术(游戏软件开发)专业介绍

    软件技术(游戏软件开发)专业 核心课程 C++程序设计.Java程序设计.C#程序设计.Cocos2d-x游戏开发.Unity3D游戏开发.Android游戏开发.IOS游戏开发.游戏框架设计.游戏服 ...

  10. 相对于oracle数据库的作用 类似于,郑州大学软件技术学院Oracle试卷

    郑州大学软件技术学院Oracle 2009-2010期末试题 (适用专业:08信管.Java..NET专业 考试时间:120分钟) 单选:1 Oracle 10g中的g表示( A ). A 网络 B ...

最新文章

  1. 动态环境下的SLAM:DynaSLAM 论文学习笔记
  2. 面试必备|带你彻底搞懂Python生成器
  3. android 设置布局横屏竖屏
  4. codeforces水题100道 第五题 Codeforces Round #304 (Div. 2) A. Soldier and Bananas (math)
  5. monty python dead parrot-BBC十大英剧神作出炉!
  6. application.properties中自定义属性的使用
  7. r2游戏服务器网站,云服务器win2008r2玩游戏
  8. 聊一聊CSS中的死循环
  9. openwrt 音频开发
  10. linux安装selenium、chromedriver、Chrome浏览器、BrowserMob Proxy(代理)爬虫爬站环境安装及测试实例
  11. 简单谈谈haskell
  12. POJ 3683 Priest John's Busiest Day
  13. windows 10下hosts文件写入权限
  14. Nginx实战|Nginx健康检查
  15. 【离散数学】p^q^r为什么既是合取范式又是析取范式
  16. Windows 10文件/文件夹正在使用无法删除的6个解决方法
  17. qcow2和vmdk互相转
  18. linux编辑框软键盘自动弹出,带输入框的Dialog自动弹出软键盘
  19. 从字符串中提取IP子串(C语言)
  20. 搜狗输入法如何输入直角引号(「『』」 )

热门文章

  1. java json 打印出来_如何使用Java漂亮地打印现有的JSON数据?
  2. mysql分日汇总填充0_将记录按小时或按日分组,并在mysql中填充零或空的空白
  3. oracle下拉菜单多选,多选下拉控件的使用(select-option)multiple-select
  4. redis打开外网访问端口
  5. Leetcode561.Array Partition I数组拆分1
  6. 032-IDUtils 工具类模板
  7. 制作python模块安装包[转载自刘天斯]
  8. PHP学习九--会话控制session和cookie
  9. xtu DP Training C.炮兵阵地
  10. 取一行多列数据中的最大值