More: More Dengqinghua

Dengqinghua's Blogs

Hello! 这里是邓擎铧的技术博客.

主要包括: Ruby, Java和Go, 也包括一些自己的开源项目, 如吉他音阶练习.

对生活热忱, 永远充满热爱和热情, 更多我的信息, 请查看我的主页.

维护文档不易, 请在转载的时候指明出处. 如果您看到有错误或者有更优的方案等, 请在github中讨论.

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.