# blog
**Repository Path**: sunmos/blog
## Basic Information
- **Project Name**: blog
- **Description**: :dart: 十年技术经验汇总,化繁为简
- **Primary Language**: CSS
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://turnon.gitee.io/blog/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 114
- **Created**: 2020-06-07
- **Last Updated**: 2024-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
BLOG
> 本博客内容较多,请善用 `Ctrl + F`
## 编程语言
> 作为程序员,编程当然是基础中的基础。
>
> 每个优秀的程序员,至少应该掌握并精通一门编程语言(根据自己的兴趣和技术方向选择)。
>
> 本人较为精通 Java ,且熟悉 C/C++/JavaScript,略懂 Shell/Python 等脚本语言。
### Java
> Java 领域的知识点非常庞杂,我整理成了多个教程项目,每个项目都包含大量文档和代码。
>
> [Java 教程](https://turnon.gitee.io/java-tutorial/) 📚 - 本人作为一名 Java 程序员,十年的技术积累,汇总与此。
#### JavaCore 📚
> [JavaCore 教程](https://dunwu.github.io/javacore/) 📚 - Java 核心技术教程。
- [**Java 基础**](https://github.com/dunwu/javacore/blob/master/docs/basics) - [基本数据类型](https://github.com/dunwu/javacore/blob/master/docs/basics/java-data-type.md)、[类和对象](https://github.com/dunwu/javacore/blob/master/docs/basics/java-oop.md)、[方法](https://github.com/dunwu/javacore/blob/master/docs/basics/java-method.md)、[数组](https://github.com/dunwu/javacore/blob/master/docs/basics/java-array.md)、[枚举](https://github.com/dunwu/javacore/blob/master/docs/basics/java-enum.md)、[控制语句](https://github.com/dunwu/javacore/blob/master/docs/basics/java-control-statement.md)、[异常](https://github.com/dunwu/javacore/blob/master/docs/basics/java-exception.md)、[泛型](https://github.com/dunwu/javacore/blob/master/docs/basics/java-generic.md)、[反射](https://github.com/dunwu/javacore/blob/master/docs/basics/java-reflection.md)、[注解](https://github.com/dunwu/javacore/blob/master/docs/basics/java-annotation.md)
- [**Java 高级**](https://github.com/dunwu/javacore/blob/master/docs/advanced) - [Java 正则](https://github.com/dunwu/javacore/blob/master/docs/advanced/java-regex.md)、[Java 编码和加密](https://github.com/dunwu/javacore/blob/master/docs/advanced/java-crypto.md)、[Java 本地化](https://github.com/dunwu/javacore/blob/master/docs/advanced/java-locale.md)、[JDK8](https://github.com/dunwu/javacore/blob/master/docs/advanced/jdk8.md)
- [**Java 容器**](https://github.com/dunwu/javacore/blob/master/docs/container)
- [Java 容器简介](https://github.com/dunwu/javacore/blob/master/docs/container/java-container.md) - 关键词:`Collection`、`泛型`、`Iterable`、`Iterator`、`Comparable`、`Comparator`、`Cloneable`、`fail-fast`
- [Java 容器之 List](https://github.com/dunwu/javacore/blob/master/docs/container/java-container-list.md) - 关键词:`List`、`ArrayList`、`LinkedList`
- [Java 容器之 Map](https://github.com/dunwu/javacore/blob/master/docs/container/java-container-map.md) - 关键词:`Map`、`HashMap`、`TreeMap`、`LinkedHashMap`、`WeakHashMap`
- [Java 容器之 Set](https://github.com/dunwu/javacore/blob/master/docs/container/java-container-set.md) - 关键词:`Set`、`HashSet`、`TreeSet`、`LinkedHashSet`、`EmumSet`
- [Java 容器之 Queue](https://github.com/dunwu/javacore/blob/master/docs/container/java-container-queue.md) - 关键词:`Queue`、`Deque`、`ArrayDeque`、`LinkedList`、`PriorityQueue`
- [**Java 并发**](https://github.com/dunwu/javacore/blob/master/docs/concurrent)
- [Java 并发面试题集 💯](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-concurrent-interview.md)
- [Java 并发简介](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-concurrent-introduction.md) - 关键词:`进程`、`线程`
- [Java 线程基础](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-thread.md) - 关键词:`Thread`、`Runnable`、`Callable`、`Future`
- [Java 并发核心机制](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-concurrent-basic-mechanism.md) - 关键词:`synchronized`、`volatile`、`CAS`、`ThreadLocal`
- [Java 并发锁](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-lock.md) - 关键词:`AQS`、`ReentrantLock`、`ReentrantReadWriteLock`、`Condition`
- [Java 原子类](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-atomic-class.md) - 关键词:`CAS`、`Atomic`
- [Java 并发容器](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-concurrent-container.md) - 关键词:`ConcurrentHashMap`、`CopyOnWriteArrayList`
- [Java 线程池](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-thread-pool.md) - 关键词:`Executor`、`ExecutorService`、`ThreadPoolExecutor`、`Executors`
- [Java 并发工具类](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-concurrent-tools.md) - 关键词:`CountDownLatch`、`CyclicBarrier`、`Semaphore`
- [Java 内存模型](https://github.com/dunwu/javacore/blob/master/docs/concurrent/java-memory-model.md) - 关键词:`JMM`、`原子性`、`可见性`、`有序性`、`Happens-Before`
- [**JAVA IO**](https://github.com/dunwu/javacore/tree/master/docs/io)
- [Java IO 工具类](https://github.com/dunwu/javacore/blob/master/docs/io/java-io-tool.md) - 关键词:`File`、`RandomAccessFile`、`System`、`Scanner`
- [Java BIO](https://github.com/dunwu/javacore/blob/master/docs/io/java-bio.md) - 关键词:`InputStream`、`OutputStream`、`Reader`、`Writer`
- [Java NIO](https://github.com/dunwu/javacore/blob/master/docs/io/java-nio.md) - 关键词:`Channel`、`Buffer`、`Selector`、`多路复用`
- [Java 序列化](https://github.com/dunwu/javacore/blob/master/docs/io/java-serialization.md) - 关键词:`Serializable`、`Externalizable`、`ObjectInputStream`、`ObjectOutputStream`、`transient`
- [Java 网络编程](https://github.com/dunwu/javacore/blob/master/docs/io/java-net.md) - 关键词:`Socket`、`ServerSocket`、`DatagramPacket`、`DatagramSocket`
- [**Java 虚拟机**](https://github.com/dunwu/javacore/blob/master/docs/jvm)
- [JVM 内存区域](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-memory.md) - 关键词:程序计数器、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存、`OutOfMemoryError`、`StackOverflowError`
- [JVM 垃圾收集](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-gc.md) - 关键词:`GC Roots`、`Serial`、`Parallel`、`CMS`、`G1`、`Minor GC`、`Full GC`
- [JVM 字节码](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-bytecode.md) - 关键词:`bytecode`、`asm`、`javassist`
- [JVM 类加载](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-class-loader.md) - 关键词:类加载过程、`ClassLoader`、双亲委派、
- [JDK 命令行工具](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-cli-tools.md) - 关键词:`jps`、`jstat`、`jmap` 、`jstack`、`jhat`、`jinfo`、`jconsole`、`jvisualvm`、`MAT`
- [JVM 实战](https://github.com/dunwu/javacore/blob/master/docs/jvm/jvm-action.md) - 关键词:VM 参数、分析、调优
- [Java 故障排查](https://github.com/dunwu/javacore/blob/master/docs/jvm/trouble-shooting.md) - 关键词:CPU、内存、磁盘、网络、GC
#### JavaEE
- [Servlet](https://github.com/dunwu/java-tutorial/blob/master/docs/javaee/javaee-servlet.md)
- [Jsp](https://github.com/dunwu/java-tutorial/blob/master/docs/javaee/javaee-jsp.md)
- [Filter 和 Listener](https://github.com/dunwu/java-tutorial/blob/master/docs/javaee/javaee-filter-listener.md)
- [Cookie 和 Session](https://github.com/dunwu/java-tutorial/blob/master/docs/javaee/javaee-cookie-sesion.md)
#### JavaTech 📚
> [JavaTech 教程](https://dunwu.github.io/javatech/) 📚 - 汇总了 Java 开发中常见的主流技术的应用、特性、原理。
- [**框架**](https://github.com/dunwu/javatech/tree/master/docs/framework) - [Spring 教程](https://dunwu.github.io/spring-tutorial/) 📚、[Spring Boot 教程](https://dunwu.github.io/spring-boot-tutorial/) 📚、[Mybatis](https://dunwu.github.io/javatech/ecology/framework/javatech/data/mybatis.html)
- [**缓存**](https://github.com/dunwu/javatech/tree/master/docs/cache) - [Redis](https://github.com/dunwu/db-tutorial/tree/master/docs/nosql/redis) 📚、[Ehcache](https://github.com/dunwu/javatech/blob/master/docs/cache/Ehcache.md)、[Caffeine](https://github.com/dunwu/javatech/blob/master/docs/cache/Caffeine.md)
- [**消息队列**](https://github.com/dunwu/javatech/blob/master/docs/mq/) - [Kafka](https://dunwu.github.io/bigdata-tutorial/kafka/) 📚、[RocketMQ](https://github.com/dunwu/javatech/blob/master/docs/mq/rocketmq.md)、[ActiveMQ](https://github.com/dunwu/javatech/blob/master/docs/mq/activemq.md)
- [**安全**](https://github.com/dunwu/javatech/blob/master/docs/security/) - [Shiro](https://github.com/dunwu/javatech/blob/master/docs/security/shiro.md)、[Spring Security](https://github.com/dunwu/javatech/blob/master/docs/security/spring-security.md)
- [**测试**](https://github.com/dunwu/javatech/blob/master/docs/test/) - [Junit](https://github.com/dunwu/javatech/blob/master/docs/test/junit.md)、[Mockito](https://github.com/dunwu/javatech/blob/master/docs/test/mockito.md)、[JMH](https://github.com/dunwu/javatech/blob/master/docs/test/jmh.md)
- [**服务器**](https://github.com/dunwu/javatech/tree/master/docs/server) - [Tomcat](https://github.com/dunwu/javatech/blob/master/docs/server/tomcat.md)、[Jetty](https://github.com/dunwu/javatech/blob/master/docs/server/jetty.md)、[Nginx](https://github.com/dunwu/nginx-tutorial) 📚
- [**RPC**](https://github.com/dunwu/javatech/blob/master/docs/soa/) - [Dubbo](https://github.com/dunwu/javatech/blob/master/docs/soa/dubbo.md)
#### JavaTool
- [**构建工具**](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/build) - [Maven](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/build/maven) 📚、[Ant 简易教程](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/build/ant.md)
- [**IDE**](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/ide) - [Intellij Idea](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/ide/intellij-idea.md)、[Eclipse](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/ide/eclipse.md)、[vscode](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/ide/vscode.md)
- [**监控/诊断工具**](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/monitor) - [CAT](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/monitor/cat.md)、[Zipkin](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/monitor/zipkin.md)、[SkyWalking](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/monitor/skywalking.md)、[Arthas](https://github.com/dunwu/java-tutorial/blob/master/docs/javatool/monitor/arthas.md)
### 其他语言
- [如何学习编程语言](source/_posts/coding/programming-guide.md)
- [Python Cheat Sheet](source/_posts/coding/python.md)
- [Shell Cheat Sheet](source/_posts/coding/shell.md)
## 数据结构和算法
> 如果说编程语言好比是武功招式,那么数据结构和算法就相当于是内功。要想成为编程高手,必须具备一定的数据结构和算法功底。
>
> 要想学好数据结构和算法,在我看来,就是多刷题。
[数据结构和算法教程](https://dunwu.github.io/algorithm-tutorial/) 📚 - 包含基本数据结构和算法的讲解和示例,以及平时在 leetcode 上刷题的代码。
## 数据库
> 数据库大体上可以分为关系型数据库和 Nosql 数据库。
>
> 关系型数据库的特性和原理,基本上大同小异。
>
> Nosql 数据库就真的是各有各的不同了。
[数据库教程](https://dunwu.github.io/db-tutorial/) 📚 - 本人接触的最多的数据库就是 Mysql、Redis,本教程内对于这两种数据库的特性和原理讲解比较细致,其他数据库内容没那么细致。
### 关系型数据库
#### Mysql
> [Mysql](https://dunwu.github.io/db-tutorial/sql/mysql) 📚
- [Mysql 基本原理](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-theory.html)
- [Mysql 索引](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-index.html)
- [Mysql 锁](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-lock.html)
- [Mysql 事务](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-transaction.html)
- [Mysql 优化](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-optimization.html)
- [Mysql 运维](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-ops.html) 🔨
- [Mysql 配置](https://dunwu.github.io/db-tutorial/sql/mysql/mysql-config.html)
#### 其他
- [关系型数据库面试总结](https://dunwu.github.io/db-tutorial/sql/sql-interview.html) 💯
- [SQL Cheat Sheet](https://dunwu.github.io/db-tutorial/sql/sql-cheat-sheet.html)
- [H2 入门指南](https://dunwu.github.io/db-tutorial/sql/h2.html)
- [SqLite 入门指南](https://dunwu.github.io/db-tutorial/sql/sqlite.html)
- [PostgreSQL 入门指南](https://dunwu.github.io/db-tutorial/sql/postgresql.html)
### Nosql
#### Redis
[Redis](https://dunwu.github.io/db-tutorial/nosql/redis) 📚
- [Redis 面试总结](https://dunwu.github.io/db-tutorial/nosql/redis/redis-interview.html) 💯
- [Redis 入门指南](https://dunwu.github.io/db-tutorial/nosql/redis/redis-quickstart.html) ⚡
- [Redis 数据类型和应用](https://dunwu.github.io/db-tutorial/nosql/redis/redis-datatype.html)
- [Redis 持久化](https://dunwu.github.io/db-tutorial/nosql/redis/redis-persistence.html)
- [Redis 复制](https://dunwu.github.io/db-tutorial/nosql/redis/redis-replication.html)
- [Redis 哨兵](https://dunwu.github.io/db-tutorial/nosql/redis/redis-sentinel.html)
- [Redis 集群](https://dunwu.github.io/db-tutorial/nosql/redis/redis-cluster.html)
- [Redis 事务](https://dunwu.github.io/db-tutorial/nosql/redis/redis-transaction.html)
- [Redis 发布与订阅](https://dunwu.github.io/db-tutorial/nosql/redis/redis-pub-sub.html)
- [Redis 运维](https://dunwu.github.io/db-tutorial/nosql/redis/redis-ops.html) 🔨
#### 其他
- [Nosql 技术选型](https://dunwu.github.io/db-tutorial/nosql/nosql-selection.html)
### 中间件
- [版本管理中间件 flyway](https://dunwu.github.io/db-tutorial/middleware/flyway.html)
- [分库分表中间件 ShardingSphere](https://dunwu.github.io/db-tutorial/middleware/shardingsphere.html)
## 操作系统
### Linux
> [**linux-tutorial**](https://dunwu.github.io/linux-tutorial/) 📚 是一个 Linux 教程。
主要内容如下:
- [Linux 命令](https://dunwu.github.io/linux-tutorial/linux/cli/) 📚 是一个 Linux 常用命令行教程。
- [Linux 系统运维](https://dunwu.github.io/linux-tutorial/linux/ops/) 📚
- [Linux 软件运维](https://dunwu.github.io/linux-tutorial/linux/soft/) 📚
- [Docker 教程](https://dunwu.github.io/linux-tutorial/docker/) 📚
### 其他
- [Windows](source/_posts/os/windows.md)
- [Mac](source/_posts/os/mac.md)
## 分布式
> 大型软件为了应对海量数据、高并发,一般都会被设计为分布式系统。
>
> 分布式系统需要解决很多不同领域的问题。
- [系统原理面试题](source/_posts/theory/system-theory-interview.md)
- **基础理论**
- [分布式基础理论](source/_posts/theory/distributed-base-theory.md) - 关键词:`拜占庭将军`、`CAP`、`BASE`
- [Paxos 算法](source/_posts/theory/paxos.md) - 关键词:`共识性算法`
- [Raft 算法](source/_posts/theory/raft.md) - 关键词:`共识性算法`
- **核心技术**
- [缓存](source/_posts/theory/cache.md) - 关键词:`进程内缓存`、`分布式缓存`、`缓存雪崩`、`缓存穿透`、`缓存击穿`、`缓存更新`、`缓存预热`、`缓存降级`
- [负载均衡](source/_posts/theory/load-balance.md) - 关键词:`轮询`、`随机`、`最少连接`、`源地址哈希`、`一致性哈希`、`虚拟 hash 槽`
- [消息队列](source/_posts/theory/mq.md) - 关键词:`重复消费`、`消息丢失`、`消息顺序性`、`消息积压`
- [分布式存储](source/_posts/theory/distributed-storage.md) - 关键词:`读写分离`、`分库分表`、`迁移`、`扩容`
- [分布式锁](source/_posts/theory/distributed-lock.md) - 关键词:`数据库`、`Redis`、`ZooKeeper`、`互斥`、`可重入`、`死锁`、`容错`、`自旋尝试`
- [分布式 ID](source/_posts/theory/distributed-id.md) - 关键词:`UUID`、`自增序列`、`雪花算法`、`Leaf`
- [分布式事务](source/_posts/theory/distributed-transaction.md) - 关键词:`2PC`、`3PC`、`TCC`、`本地消息表`、`MQ 消息`、`SAGA`
- [分布式会话](source/_posts/theory/distributed-session.md) - 关键词:`粘性 Session`、`Session 复制共享`、`基于缓存的 session 共享`
- **微服务**
- [微服务](source/_posts/theory/micro-services.md)
- [限流算法](source/_posts/theory/limiting.md) - 关键词:`计数器法`、`时间窗口法`、`令牌桶法`、`漏桶法`
- [RPC](source/_posts/theory/rpc.md) - 关键词:`微服务`、`序列化`、`动态代理`、`通信`、`服务注册发现`、`健康检查`、`路由`、`负载均衡`、`容错处理`、`优雅上线下线`、`限流`、`熔断`、`业务分组`
## 计算机网络
> 如果你是做通信领域的开发,或者是 Web 应用的开发,那就或多或少需要了解一些计算机网络的知识 。
>
> 本人做 C 程序员时,从事过两年通信领域的开发,整理了一些基本的计算机网络知识点,汇总于此。
[计算机网络面试题](source/_posts/network/network-interview.md) 💯
### 网络分层
> 理解计算机网络,首先需要从宏观层面了解计算机网络通信的分层结构。最有代表性的是 OSI 七层结构模型,但现实中更流行的是五层结构模型(本人也比较倾向于这种模型)。
>
> 了解网络分层结构,需要了解每个网络层级在网络通信中的定位,以及这个层级主要的通信设备、通信协议。
- [计算机网络指南](source/_posts/network/network-guide.md) - 关键词:核心概念、拓扑结构、作用范围、性能指标、体系结构
- [物理层](source/_posts/network/network-physical.md) - 关键词:调制、解调、数字信号、模拟信号、通信媒介、信道复用
- [链路层](source/_posts/network/network-data-link.md) - 关键词:点对点信道、广播信道、`PPP`、`CSMA/CD`、局域网、以太网、`MAC`、适配器、集线器、网桥、交换机
- [网络层](source/_posts/network/network-network.md) - 关键词:`IP`、`ICMP`、`ARP`、路由
- [传输层](source/_posts/network/network-transport.md) - 关键词:`UDP`、`TCP`、滑动窗口、拥塞控制、三次握手
- [应用层](source/_posts/network/network-application.md) - 关键词:`HTTP`、`DNS`、`FTP`、`TELNET`、`DHCP`
### 重要技术
> 对计算机网络分层有了基本的认知后,可以根据个人的工作、学习需要,针对性的会接触到的协议或技术加深理解。
- [HTTP](source/_posts/network/http.md)
- [DNS](source/_posts/network/dns.md)
- [TCP](source/_posts/network/tcp.md)
- [UDP](source/_posts/network/udp.md)
- [ICMP](source/_posts/network/icmp.md)
- [WebSocket](source/_posts/network/websocket.md)
- [CDN](source/_posts/network/cdn.md)
- [VPN](source/_posts/network/vpn.md)
## 大数据
> [bigdata-tutorial](https://dunwu.github.io/bigdata-tutorial/) 📚 是一个大数据教程。
- [Hive](https://dunwu.github.io/bigdata-tutorial/hive/) 📚
- [Hdfs](https://dunwu.github.io/bigdata-tutorial//hdfs) 📚
- [Hbase](https://dunwu.github.io/bigdata-tutorial//hbase) 📚
- [ZooKeeper](https://dunwu.github.io/bigdata-tutorial/zookeeper/) 📚
- [Kafka](https://dunwu.github.io/bigdata-tutorial/kafka/) 📚
## 架构设计
> 🔰 知识储备:
>
> 不想做架构师的程序员不是好程序员,也写不出好代码。
>
> 体现架构师水平的,就是其架构设计功力。架构设计当然需要一定的方式方法,但是更重要的前提是:需要对系统涉及到的计算机科学的各个知识领域有宏观、微观的认知。**只有理解才会运用**,这就像战士不熟悉手里的武器,怎么能充分发挥战斗力呢?
>
> 所以,架构师需要不断拓展知识储备,厚积薄发。如果是一个通信系统,需要学习[计算机网络](#计算机网络);如果是一个分布式系统,需要了解[分布式系统](#分布式系统);如果要应对海量数据,需要学习[大数据](#大数据);如果使用了数据库,需要学习[数据库](#数据库)。。。
>
> 简言之:_路漫漫兮其修远,吾将上下而求索_。
>
> 🔰 工具:
>
> - UML - 架构设计,不画些 UML,实在说不过去。
> - [UML Cheat Sheet](source/_posts/design/uml.md) - 全面介绍 UML 各种图,也适合作为速查手册。
### 系统架构
> 如果把软件开发工作比作是一场战争,那么系统架构无疑是战略层面的工作。众所周知,万丈高楼平地起,系统架构就像是软件的地基,如果一开始就歪了,那么代码写得再漂亮,软件也难以成功。
>
> 软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。重点是分而治之,先将大型系统抽象为各个组件或模块;然后逐一解决各组件、各模块的功能、性能问题;最后将这些组件、模块整合成对外服务的一个整体。
- [系统架构面试题](source/_posts/design/architecture/system-architecture-interview.md)
- [系统架构概述](source/_posts/design/architecture/system-architecture-overview.md)
- [高性能架构](source/_posts/design/architecture/high-performance-architecture.md)
- [高可用架构](source/_posts/design/architecture/high-availability-architecture.md)
- [伸缩性架构](source/_posts/design/architecture/scalable-architecture.md)
- [扩展性架构](source/_posts/design/architecture/extensible-architecture.md)
- [安全性架构](source/_posts/design/architecture/security-architecture.md)
- [大型系统核心技术](source/_posts/design/architecture/system-core-technologies.md)
### 架构方案
- [秒杀系统设计](source/_posts/design/solution/miao-sha-system.md)
### 设计模式
#### 创建型模式
- [单例模式 (Singleton Pattern)](source/_posts/design/pattern/单例模式.md)
- [简单工厂模式 (Simple Factory Pattern)](source/_posts/design/pattern/简单工厂模式.md)
- [工厂方法模式 (Factory Method Pattern)](source/_posts/design/pattern/工厂方法模式.md)
- [抽象工厂模式 (Abstract Factory Pattern)](source/_posts/design/pattern/抽象工厂模式.md)
- [构造者模式 (Builder Pattern)](source/_posts/design/pattern/构造者模式.md)
- [原型模式 (Prototype Pattern)](source/_posts/design/pattern/原型模式.md)
#### 结构型模式
- [适配器模式 (Adapter Pattern)](source/_posts/design/pattern/适配器模式.md)
- [桥接模式 (Bridge Pattern)](source/_posts/design/pattern/桥接模式.md)
- [装饰者模式 (Decorator Pattern)](source/_posts/design/pattern/装饰者模式.md)
- [组合模式 (Composite Pattern)](source/_posts/design/pattern/组合模式.md)
- [外观模式 (Facade Pattern)](source/_posts/design/pattern/外观模式.md)
- [享元模式 (Flyweight Pattern)](source/_posts/design/pattern/享元模式.md)
- [代理模式 (Proxy Pattern)](source/_posts/design/pattern/代理模式.md)
#### 行为型模式
- [模板方法模式 (Template Method Pattern)](source/_posts/design/pattern/模板方法模式.md)
- [命令模式 (Command Pattern)](source/_posts/design/pattern/命令模式.md)
- [迭代器模式 (Iterator Pattern)](source/_posts/design/pattern/迭代器模式.md)
- [观察者模式 (Observer Pattern)](source/_posts/design/pattern/观察者模式.md)
- [解释器模式 (Interpreter Pattern)](source/_posts/design/pattern/解释器模式.md)
- [中介者模式 (Mediator Pattern)](source/_posts/design/pattern/中介者模式.md)
- [职责链模式 (Chain of Responsibility Pattern)](source/_posts/design/pattern/职责链模式.md)
- [备忘录模式 (Memento Pattern)](source/_posts/design/pattern/备忘录模式.md)
- [策略模式 (Strategy Pattern)](source/_posts/design/pattern/策略模式.md)
- [访问者模式 (Visitor Pattern)](source/_posts/design/pattern/访问者模式.md)
- [状态模式 (State Pattern)](source/_posts/design/pattern/状态模式.md)
### 重构
> **改善既有代码的设计**。
>
> 关键词:过长函数、过大的类、基本类型偏执、过长参数列、数据泥团、switch 声明、临时字段、被拒绝的馈赠、异曲同工的类、发散式变化、霰弹式修改、平行继承体系、过多的注释、重复代码、冗余类、纯稚的数据类、夸夸其谈未来性、依恋情结、狎昵关系、过度耦合的消息链、中间人、不完美的库类
- [代码的坏味道和重构](source/_posts/design/refactor/代码的坏味道和重构.md)
- [代码坏味道之代码臃肿](source/_posts/design/refactor/代码坏味道之代码臃肿.md)
- [代码坏味道之滥用面向对象](source/_posts/design/refactor/代码坏味道之滥用面向对象.md)
- [代码坏味道之变革的障碍](source/_posts/design/refactor/代码坏味道之变革的障碍.md)
- [代码坏味道之非必要的](source/_posts/design/refactor/代码坏味道之非必要的.md)
- [代码坏味道之耦合](source/_posts/design/refactor/代码坏味道之耦合.md)
## 前端技术
[前端编程教程](https://dunwu.github.io/frontend-tutorial/) 📚 - 不会前端的后端不是好后端,这里是二手前端技术的总结。
## 软件工程
- [软件工程与项目管理](source/_posts/software/software-engineering.md)
## 工具
- [Regex Cheat Sheet](source/_posts/tools/regex.md) - 全面介绍正则表达式,也适合作为速查手册。
- [Markdown Cheat Sheet](source/_posts/tools/markdown.md) - 全面介绍 Markdown 语义。
- 静态网站生成器 - [Hexo](https://github.com/hexojs/hexo)、[Jekyll](https://github.com/jekyll/jekyll)、[hugo](https://github.com/gohugoio/hugo)、[VuePress](https://github.com/vuejs/vuepress)、[Gitbook(官方停止更新)](https://github.com/dunwu/gitbook-templates)、[Docsify](https://github.com/docsifyjs/docsify)
- 版本控制 - [Git](source/_posts/tools/git.md)、Svn、Github、Gitlab
- 持续集成 - Jenkins、gitlab-ci、[travis-ci](source/_posts/tools/travis-ci.md)
## 效率提升
> 方法论,是人们认识世界、改造世界的方法的理论。同样,项目管理、编程、写文档都应该有一定的方式方法,帮助我们合理、高效、快速的达成目标。
- [效率提升方法论](source/_posts/efficiency/methodology.md) - 关键词:5W2H、四象限原则
- 规范
- [合理规划项目](source/_posts/efficiency/style/project-style.md)
- [合理对文档进行归类](source/_posts/efficiency/style/dir-style.md)
- [合理编排技术文档](source/_posts/efficiency/style/doc-style.md)
## License
本博客所有文章除特别声明外,均采用 [](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可协议。