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.