2019年
- 基于内存数据库的角标系统设计
 - 
        
角标是公司最复杂的系统之一, 每次大促活动的时候, 角标承担着引流的重要责任, 是GMV的保证之一, 角标系统经过几年的演化, 已经变得非常复杂, 我们在近期对角标系统进行了整理和重构, 将角标系统变成了一个基于内存数据库和规则的数据计算系统.
 - 业务流引擎系统
 - 
        
随着系统的日益演进, 系统的业务逻辑非常复杂, 尤其是在产品需求频繁变动的情况下, 研发需要不断地进行改动代码, 最终逻辑无人知晓. 为了让核心业务逻辑更清晰, 更快速地响应业务的变更, 我们研发了业务流引擎系统. 通过 代码 + 流程图配置 的方式, 将业务的复杂度变为引擎实现的技术难度.
 
2018年
- Ruby知识树
 - 
        
开发Ruby和Rails需要了解的20%内容.
 - Ruby数据模型
 - 
        
Ruby的数据模型, 包括方法查找, 变(常)量查找, 作用域.
 - Arel源码分析
 - 
        
基于AST和Vistor模式的arel源码分析, 本人第一遍英文版本的技术文档.
 - 基于Sidekiq的异步任务管理引擎
 - 
        
在系统中有一类常见的问题可抽象为 [批量处理n个任务, 每个任务都比较耗时, 希望可以快速地处理这些任务, 并且能知道每一个任务的执行结果情况]. 基于这类问题模型, 我们研发了基于Sidekiq的异步任务管理引擎.
 - Racc
 - 
        
Ruby版本的Yacc, 语法解析器
 - 业务流引擎系统
 - 
        
随着系统的日益演进, 系统的业务逻辑非常复杂, 尤其是在产品需求频繁变动的情况下, 研发需要不断地进行改动代码, 最终逻辑无人知晓. 为了让核心业务逻辑更清晰, 能够更快速地响应业务的变更, 我们研发了业务流引擎系统. 通过 代码 + 流程图配置 的方式, 使得业务逻辑更加清晰, 将业务的复杂度变为引擎实现的技术难度. 开发只需实现最基本的逻辑方法, 通过方法的组合即可拼接成一个新的业务流程.
 - 数据结构
 - 
        
基于Java语言的数据结构整理.
 - JVM剖析
 - 
        
JVM的一些知识点和总结.
 - Concurrency
 - 
        
并发的基本概念和ThreadPool源码分析.
 - Java知识树
 - 正在整理中
 - 
        
开发Java需要了解的20%内容.
 - 基于内存数据库的角标系统设计
 - 
        
角标是公司最复杂的系统之一, 每次大促活动的时候, 角标承担着引流的重要责任, 是GMV的保证之一, 角标系统经过几年的演化, 已经变得非常复杂, 我们在近期对角标系统进行了整理和重构, 将角标系统变成了一个基于内存数据库和规则的数据计算系统.
 - 命令行下的Maven
 - 
        
命令行下的maven, 可以大大提高开发效率, 减少对IDE的依赖.
 - MySQL知识树
 - 
        
MySQL初级知识树, 包括表结构设计, 索引建立, MySQL事务和锁.
 - Go知识树
 - 
        
Go的学习计划和相关知识树.
 - 音乐学习体系
 - 
        
一些音乐系统学习资料汇总和索引
 - 曲谱集
 - 
        
自己喜欢的一些音乐的笔记和汇总
 - markdown格式实例
 - 
        
Rails Guides风格的 markdown 模板.
 - 注释规范
 - 
        
我们在项目中使用的注释规范.
 - 零bug落地方案
 - 
        
可执行的软件开发实践的零bug落地方案.
 - Raft算法
 - 
        
分布式一致性算法Raft的论文阅读笔记
 - Memorize My Mentor
 - 
        
纪念一位Mentor.