第三章:团队协作工具链

做市商系统不是一个人能搞定的。我见过太多团队,代码写得漂亮,但协作一塌糊涂。说白了,工具链就是团队的「交通规则」——没有它,早晚撞车。

3.1 Git版本控制工作流

做市商策略的迭代速度很快。今天加个信号,明天改个参数,后天回测发现逻辑有bug。如果没有好的分支策略,代码库很快就变成一锅粥。

我个人习惯用 Git Flow 的变体。为什么不是标准的 Git Flow?因为做市商业务有它的特殊性——线上策略不能停,回测和实盘要并行。

我们团队的分支策略:

  • master:只放线上运行的代码。每次合并必须经过 Code Review + 自动化测试。
  • develop:日常开发的主分支。所有 feature 分支从这里拉出去。
  • feature/*:新策略、新信号、新优化。命名如 feature/volatility-breakout
  • hotfix/*:线上出问题时的紧急修复。直接从 master 拉,修完合并回 master 和 develop。
  • release/*:版本发布前的冻结分支。只修 bug,不加新功能。

举个例子。有一次我们上线了一个新的做市策略,结果发现某个交易所的行情数据有延迟。我直接从 master 拉了 hotfix/exchange-latency,修完合并回去,整个过程不到20分钟。如果当时没有清晰的分支策略,光协调代码冲突就得花半天。

3.2 Code Review最佳实践

Code Review 不是走过场。我见过有些团队,Review 就是「LGTM」三个字母。嗯,这种 Review 还不如不做。

做市商代码有个特点——数值精度和边界条件极其敏感。一个浮点数精度问题,可能导致几万美金的损失。所以我们的 Code Review 有硬性要求:

检查项 说明 严重等级
数值精度 是否使用 Decimal 而非 Float P0(必须修复)
边界条件 订单簿为空、价格为0、数量为负 P0
日志输出 关键路径是否有日志,日志级别是否合理 P1
异常处理 网络超时、交易所返回错误码 P0
代码风格 是否符合团队规范 P2

我曾经因为一个 float 精度问题,导致做市策略在某个价格点上反复报单撤单。Review 的时候没人发现,上线后亏了大概 2000 USDT。从那以后,我们规定所有价格和数量必须用 Decimal,Review 时必须逐行检查。

我的 Review 习惯:

  • 每次 Review 不超过 200 行代码。超过的,让作者拆成多个 PR。
  • 先看测试,再看实现。没有测试的代码,直接打回。
  • 评论要具体。不说「这里不好」,而是说「这里如果交易所返回空列表,会触发 NullPointerException」。

3.3 Jira/Confluence任务管理

做市商团队的任务管理,核心就两个字——追踪。你今天改了哪个参数?为什么改?谁批准的?这些信息必须可追溯。

我们用 Jira 管理任务,Confluence 管理文档。结构大概是这样的:

Jira 项目结构:

  • Epic:大的功能模块,比如「做市策略V2」、「风控系统重构」。
  • Story:具体的用户故事,比如「作为做市商,我希望在订单簿深度不足时自动调整报价」。
  • Task:开发任务,比如「实现订单簿深度监控模块」。
  • Bug:线上问题,比如「某个币对在特定时间点报单失败」。
  • Sub-task:更细粒度的拆分,比如「编写单元测试」、「编写集成测试」。

Confluence 那边,我们维护了几类关键文档:

  • 策略设计文档:每个策略的原理、参数、风险点。
  • 运维手册:如何部署、如何监控、常见问题处理。
  • 复盘报告:每次线上事故后的根因分析和改进措施。

你想想看,如果没有这些文档,新人来了怎么上手?我记得有一次团队来了个新同事,我直接把 Confluence 链接发给他,他花了两天看完所有文档,第三天就能独立处理线上问题了。这就是文档的力量。

注意:Jira 和 Confluence 最怕「只建不用」。我见过有些团队,Jira 上堆了几百个没人管的 ticket,Confluence 里全是过期的文档。定期清理和归档很重要。我们每两周做一次 ticket 梳理,每月做一次文档审计。

3.4 知识体系总览

下面这张图,是我对团队协作工具链的整体理解。你可以把它当作一个「导航图」:

做市商团队协作工具链 Git 版本控制 Code Review Jira/Confluence 分支策略:master / develop / feature / hotfix 合并规范:Squash Merge + 线性历史 标签管理:版本号 + 发布说明 检查清单:精度 / 边界 / 日志 / 异常 PR 规范:< 200行 / 必须有测试 评论原则:具体 / 可执行 / 不人身攻击 任务类型:Epic / Story / Task / Bug 看板管理:To Do / In Progress / Done 文档沉淀:策略设计 / 运维手册 / 复盘 核心目标:可追溯 · 可复现 · 可协作 每个改动都有记录,每个决策都有依据,每个人都能上手

说白了,工具链的核心目标就三个词:可追溯、可复现、可协作。每个改动都有记录,每个决策都有依据,每个人都能上手。做到这三点,团队协作就不会出大问题。

最后说一句:工具是死的,人是活的。再好的工具链,如果团队不遵守,也是白搭。我建议你从一个小项目开始,逐步推行这些规范。别想着一步到位,那只会让大家反感。

专注资料整理