- Creational Patterns
- 工厂模式(Factory Method Pattern)
- 单例模式(Singleton Pattern)
- 建造者模式(Builder Pattern)
- Structual Patterns
- 代理模式(Proxy Pattern)
- 装饰者模式(Decorator Pattern)
- 适配器模式(Adapter Pattern)
- Behavioral Patterns
- 观察者模式(Observer Pattern)
- 责任链模式(Chain of Responsibility Pattern)
- 模板方法模式(Template Method Pattern)
- 策略模式(Strategy Pattern)
- 状态模式(State Pattern)
- SOLID (SRP, OCP, LSP, ISP, DIP)
- 反应器模式(Reactor Pattern)
- Spring 中的设计模式
- 常用命令
- Shell编程(Shell Programming)
- Sed
- Awk
- Grep
- 重定向(Shell Redirection)
- Vim & Vi
- Systemd
- Ulimit (max processes, max threads per process, max descriptors...)
RESTful是一种规范和原则,并不是一种实现方式,它更关注的是设计和规范,而不是实现。
- 实现框架
- Spring MVC (JAVA)
- Flask (Python)
- RESTful API Design
- 规范
- 版本控制(Version Control)
- 批量操作(Batch Op)
- Swagger
- Swagger Editor
- Swagger UI
- Swagger Codegen
- 数据交换格式
- JSON
- ProtoBuf
- Avro
- Thrift
- 基本数据结构
- 基本算法
- 其它
- JAVAEE
- 容器
- Tomcat
- 常用配置
- 远程调试
- Tomcat 高并发及性能调优
- Jetty
- Tomcat
- 框架
- Spring
- Spring MVC
- Spring Boot
- Spring
- 容器
- JAVASE
- 动态代理(Dynamic Proxy)
- 嵌套类(Nested Class)
- 类加载器(ClassLoader)
- SPI (Service Provider Interface)
- 正则表达式(Regex)
- 集合(Collection)
- 开发调试工具
- Eclipse
- 基本配置(Configuration)
- 快捷键(Shortcuts)
- 调试
- 插件(Plugins)
- IntelliJ IDEA
- Sublime Text
- Eclipse
- 项目构建
- Maven
- 仓库(仓库布局、仓库分类、仓库依赖解析机制)
- Nexus
- Install Nexus
- Nexus Repositories
- Deploy to Nexus
- Gradle
- Maven
- 内存区域
- Different Ways to Measure Memory (VIRT, RES, SHR, SWAP)
- What is Metaspace?
- 垃圾回收器
- 类文件与字节码
- 编译与代码优化
- JVM优化(JVM Tuning)
- 四大组件(Four Main Components)
- Activity — Activity Lifecycle, Tasks & Back Stack
- Service
- Broadcast Receiver
- Content Provider
- Intents
- Types of Intent
- Implicit
- Explicit
- Intent Filter
- Types of Intent
- Fragments
- Fragment Lifecycle
- Fragment Manager
- UI Resources
- Drawables
- String
- Styles
- Threading (Message-Looper-Handler)
- Architecture
- Router
- Unit Testing
- Local Unit Testing
- Instrumentation Testing
- Static User Interface
- View
- ViewGroup
- ConstraintLayout
- AndroidX Constraint Layout library, part of Jetpack
- Dynamic User Interface
- RecyclerView - 列表类的布局首选控件,性能相对 ListView 要好一些,功能也比 ListView 要多一些
- ViewPager
- Spinner
- Support User Interface
- ProgressBar - 进度条
- Dialogs - 弹框
- Toast & Snackbar - 提示
- CustomView
- Canvas
- Bitmap
- Paint
- Android Jetpack
- Foundation Components — AppCompat, Android KTX, Multidex
- Architecture Components — LiveData, ViewModel, DataBinding, Paging, Work Manager, Navigation
- Behaviour Components - Download Manager, Media Playback, Notification, Permissions, Preference, Sharing, Slice
- UI Component - Animation & Transition, Android Auto, Emoji, Palette, Android TV, Android Wear
- Storage
- Build
- gradle
- Debug / Release Configuration
- 多渠道打包(国内特有)
- ASM
- Debugging
- 3rd Party Library
- Image Loading - Glide, Picasso
- Dependency Injection - Dagger
- Networking - Fast Android Networking Library, Retrofit
- MultiThreading - RxJava, Coroutines
- App Release
- .keystore file
- App Bundle
- Playstore
- 多渠道打包
- 插件化
- 认证
- 数据加密
- 对称加密
- DES (Data Encryption Standard)
- 3DES (Triple DES)
- AES (Advanced Encryption Standard)
- 非对称加密
- RSA (Rivest–Shamir–Adleman)
- DSA (Digital Signature Algorithm)
- ECC (Elliptic Curves Cryptography)
- 单向加密(散列算法)
- MD5, SHA, HMAC
- 编码
- Base64
- DER (Distinguished Encoding Rules)
- 对称加密
- 数字证书和数字签名(Digital Certificate & Digital Signature)
- 数据完整性
- 数据校验
- CAS
- Python Web Framework
- Django
- Flask
- Pyramid
- 开发调试工具
- Pycharm
- JRuby
- Git
- SVN
- CVS
- 操作系统原理
- 并发理论基础:并发问题产生的三大根源
- Java常用并发类(JUC, java.util.concurrent)
- CAS (Compare and Swap)
- AQS (AbstractQueuedSynchronizer)
- 集合类
- 原子类(AtomicInteger)
- 线程池(ThreadPoolExecutor, Executor, FutureTask)
- 锁(ReentrantLock, ReentrantReadWriteLock)
- 工具类(CountDownLatch, CyclicBarrier, Semaphore)
- Thread 源码解析
- SQL
- MySQL
- 数据老化
- 数据库优化
- NOSQL
- HBase
- MongoDB
- Cassandra
- DynomoDB
- 数据库优化
- ORM框架(Object-Relation-Mapping Framework)
- Hibernate
- MyBatis (iBatis)
- SQLAlchemy
- OLTP vs OLAP vs HTAP
- 行存储vs列存储(Row vs Column Storage)
- HBase vs MySQL
功能测试是基于原始需求的,集成测试是基于模块交互的,在一定程度上,功能测试是包含集成测试的。
- LLT (Low Level Test)
- 单元测试(Unit Test, UT)
- 集成测试(Integration Test, IT)
- 模块系统测试(Module System Test, MST)
- 模块间集成测试(BBIT)
- HLT (High Level Test)
- 系统设计验证(System Design Verification, SDV)
- 系统集成测试(System Integration Test, SIT)
- 系统验收测试(System Verification Test, SVT)
- Tools
- 持续集成(Continuous Integration, CI)
- Jenkins
- 自动化执行工具
- 持续集成(Continuous Integration, CI)
- 功能测试(Functional Tests)
- Tools
- 性能测试(Performance Tests)
- 用户验收测试(User Acceptance Test,UAT)
- Pre-Alpha
- Alpha
- Beta
- Release Candidate (RC)
- Release
- 网络模型
- OSI参考模型
- 物理层
- 数据链路层
- 网络层(Network Layer, IP、ICMP、ARP、RARP)
- 传输层(Transport Layer)
- TCP
- 拆包、粘包、半包
- 为什么会出现大量的 CLOSE_WAIT
- UDP
- Socket
- TCP
- 会话层(Session Layer,RPC、SQL、NFS、X WINDOWS、ASP)
- 表示层(Presentation Layer)
- 应用层(Application Layer,FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS、NTP、MQTT)
- HTTP/2.0
- TCP/IP参考模型
- OSI参考模型
- 协议(Protocols)
- SSL (TLS)
- SSL纪录协议层(SSL Record Protocol Layer)
- SSL握手协议层(SSL HandShake Protocol Layer)
- SSL (TLS)
- IO
- JAVA原生IO
- Synchronous I/O
- BIO
- NIO
- Buffer
- Channel
- Selector
- BIO vs NIO
- AIO (Asynchronous I/O)
- Synchronous I/O
- IO Framework
- Netty
- ByteBuf
- Channel
- ChannelPipeline, ChannelHandler
- EventLoop, EventLoopGroup
- Future, Promise
- 文件传输
- Mina
- Grizzly
- Netty
- JAVA原生IO
分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作,网络编程是基础中的基础。
- 基本理论(CAP,BASE,ACID)
- 分布式数据复制
- 关于脑裂
- 协议
- Lease机制
- Quorum机制
- 副本控制(primary-secondary)
- 二阶段提交(two-phase commit)
- 三阶段提交(three-phase commit)
- paxos
- raft
- zab (ZooKeeper Atomic Broadcast)
- 分布式缓存
- MemCache
- Redis
- Redis Cli
- Redis Persistence
- Cache Breakdown, Cache Penetration, Cache Avalanche, Cache Warming
- Data Types (ZSet)
- 分布式系统协调
- 分布式锁
- 选主
- ZooKeeper
- ZooKeeper 容灾
- zkCli
- 提供
- 文件系统
- 通知机制
- 能做
- 命名服务
- 配置管理
- 集群管理
- 分布式锁
- 队列管理
- 一致性
- 分布式事务
- 分布式消息队列(Distributed MQ)
- Kafka
- Flume
- Source
- Sink
- Channel
- Plugin
- 分布式日志收集
- Logstash
- CDC (Change Data Capture)
- Debezium
- Maxwell
- 高可用性
- 高可靠性
- 高扩展性
- 负载均衡(LB)
- LVS (Linux Virtual Server)
- Nginx
- HAProxy
- 四层、七层负载均衡
- DFX (Design for X)
云计算是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
- 分层架构
- IaaS
- 虚拟机(Virtual Machine)
- PaaS
- Docker
- SaaS
- BDaaS
- 大数据组件
- HDFS
- MapReduce
- Spark
- Spark Core
- Spark SQL
- Spark Streaming
- Flink
- Flink SQL
- Flink Streaming
- Connectors
- Strom
- 大数据组件
- IaaS
- 框架
- OpenStack
- CloudStack
- 运维工具(Tools)
- JavaScript
- 原型链/作用域链
- 闭包(Closure)
- 开发工具
- WebStorm
- HBuilder
- 代码质量
- Code Style
- 单元测试
- QUnit
- 自动化测试
- 前端库/框架
- jQuery
- AngularJS
- Bootstrap
- 部署流程
- 压缩合并
- 文档输出
- 项目构建工具
- 深入理解Java虚拟机:JVM高级特性与最佳实践.周志明 ★★★★★
- Netty权威指南(第2版) ★★★★
- Maven实战 ★★★★
- TCP/IP Sockets in Java: Practical Guide for Programmers ★★★★
- Unix Network Programming: The Sockets Networking Api (1) ★★★★★
- UNIX Network Programming, Volume 2: Interprocess Communications, Second Edition ★★★★★
- RESTful Web Services Cookbook: Solutions for Improving Scalability and Simplicity ★★★★
- High Performance Browser Networking: What every web developer should know about networking and web performance ★★★★
- Design Patterns: Elements of Reusable Object-Oriented Software ★★★★★