“伪”全栈工程师

关于我

Hello,我叫萧建成,一名C++服务端程序员。主攻C++,顺带写写golang、python、lua等,辅助搞搞微信小程序和手机APP。平时喜欢关注互联网各类的前沿技术发展,研究开源项目。爱好编程、健身、烹饪。

基本信息

工作经验

广州趣丸网络有限公司 2020年3月 ~ 至今
对象存储系统 (2021年8月 ~ 至今)

隔离业务和各个对象存储供应商,提供统一的对象存储系统,并且对资源进行有效的审批管理

  • 对象的上传、下载
  • 对上传的对象进行审核管理

Golang

搭建Pulsar集群 (2020年9月 ~ 2021年8月)

搭建Pulsar集群,实现"无限"的存储能力和便捷的动态扩容能力

  • 使用Pulsar替换现有的文件、kafka形式的MQ使用

C++, Pulsar

五百万日活改造 (2020年3月 ~ 2020年9月)

针对新的在线目标,对整个服务群进行优化改造

  • 业务逻辑层与数据库操作层彻底分离
  • 数据库迁移

C++, redis, mysql, mongodb, tidb

欢聚时代-100教育 2018年3月 ~ 2020年3月
K12 微信小程序家长端 (2019年7月 ~ 2020年2月)

开发家长观看学生上课的微信小程序客户端,使用TypeScript开发。用于替代家长APP端,方便家长免下载使用,减低维护双端app的成本

  • 开发各类业务的sdk,实现业务接入功能
  • 课堂画板的制作
  • 小程序UI制作

TypeScript, JavaScript, CSS, HTML5, 微信小程序

信令平台 (2018年8月 ~ 2019年7月)

负责开发各业务统一接入的信令平台,定制业务需要的功能

  • 可靠消息机制的开发,为部分业务提供有版本记录的协议通讯功能,保证服务间协议不丢失
  • websocket库开发,为平台网关提供多种接入方式
  • 多IP稳定链接的开发,解决跨机房服务间通讯质量波动问题
  • 开发基于微信小程序的JS版本接入SDK,实现了小程序的接入平台能力

平台状态信息网关(Golang),提供统一的集群信息状况、用户在线、业务房间状态的查询

  • 开发现有的服务框架golang版,实现接入信令平台
  • 各类业务实现

C++, Golang, TypeScript

100教育k12 (2018年3月 ~ 2019年7月)

主要负责项目工程化改造,解决系统编译、维护和部署困难的问题

  • 重构编译系统,升级生产环境系统,解决编译环境和生产环境的强耦合的关系,大大降低系统编译速度
  • 重构和升级代码,迁移到C++11/14,方便代码日后的维护
  • 精简架构,简化部署难度
  • 修改服务间的通讯协议,升级为 protobuf,方便维护

实现分布式调用链记录,上报到ELK平台,方便通讯状况的查询

C/C++, protobuf

TomABC (2018年5月 ~ 2018年9月)

主要实现服务端的初期设计和编写

C/C++, protobuf

广东南方直播传媒有限公司 2017年6月 ~ 2018年1月
正直播

重构现有架构,实现可持续维护的状态

  • 重写基础模块,移除老旧代码
  • 修改架构,添加网关层,隔离客户端与各业务进程的直连
  • 扩充各服务间的通讯方式
  • 实现websocket协议,在网关层为HTML5提供接入方式
  • 迁移老代码到C++11/14

迁移编译系统到cmake,实现进程和依赖的一站式全静态编译

业务修改

C/C++, MySQL, Redis, PHP, Boost, cmake

广州久久玖互联网科技有限公司 2017年2月 ~ 2017年5月
财经直播后台

重构项目框架、基础库,维护系统日常更新

  • 移除老旧的基础库,统一使用boost
  • 重写一些基础组件:任务队列、定时调度器、网络应用封装等
  • 迁移老代码到C++11/14

迁移编译系统到cmake,实现进程和依赖的一站式全静态编译

新需求开发

C/C++, Boost, Redis, MySQL, cmake

广州市擎天柱网络科技有限公司 2011年9月 ~ 2016年11月
全民大航海 (2013年5月 ~ 2016年11月)

负责服务端的架构设计、基础模块开发

  • 把现有的单服(`gateway`, `game`, `db`三进程架构),扩展成针对大世界一服(`gateway`, `global`, `logic`, `db`)的架构,所有进程通过`global组`进行交互,`logic`根据功能划分为:`user组`, `group组`, `social组`, `heartbeat`, `gm`, `scene manager`等服务进程组
  • 以`global组`为基础,实现消息队列功能,隔离各个服务进程的通讯,负责路由通讯
  • 实现跨进程通讯需要的RPC模块,实现各进程间的异步调用,避免服务进程之间繁琐的底层协议定制

负责游戏玩法开发

  • 核心系统:任务,道具,交易,装备,人物,船只,战役等
  • 社交类系统:好友,公会,聊天等
  • 全服的公会战:一个全服公会自动匹配,两公会间的实时攻守战
  • 各类玩法活动

团队管理,需求评估分析,协调策划、客户端、服务端三方开发人员的工作

参与客户端(Lua)的战斗开发,建立战斗的AI,技能,剧情等功能

参与运营工具(python)的相关开发,处理全服玩法分组的处理逻辑等

C/C++, LPC, Libevent, Mongodb, Lua, Python

封神、封神2 (2011年9月 ~ 2013年5月)
  • 负责服务器端的功能和玩法的开发
  • 帮助策划攻克需求的技术难点,提出相应的解决方案
  • 负责台湾版的简体和繁体语言转换工具(Lua)开发,通过工具直接抽取代码中的文本形式,然后将简体中文转换为繁体中文,再重新替换进代码

C/C++, LPC, Lua, Libevent

广州市知圆行方信息科技有限公司 2010年8月 ~ 2011年8月
泰米时空
  • 负责服务端的功能模块设计和优化现有框架
  • 在现有C++框架下嵌入lua脚本语言,实现部分逻辑脚本化,同时可热更新
  • 负责解决策划需求的技术难点实现
  • 解决单点MYSQL数据量瓶颈,通过分表分区等方式,提升MYSQL负载平衡性能

C/C++, Lua, MySQL

专业技能

语言类

C++ Golang JavaScript TypeScript Dart HTML5 CSS Rust

数据库

Mongodb MySQL Redis Leveldb

工程化

CMake Git Subversion NPM