经得起考验的软件

从设计到交付:从响应式渐进网页应用到企业级业务系统,由曾在生产环境中运维过它们的资深工程师打造。

  • 产品与平台设计

    UX、原型、设计系统

  • 定制应用开发

    PWA、移动端、企业级

  • AI 工程

    融入您的产品与研发流程

  • 云架构与研发流程咨询

    选型、部署、成本

  • 能源与大宗商品
  • 航空与交通
  • 保险与支付

Waterloo BMath, 1997 · Waterloo MMath, Symbolic Computation, 1998 · Concordia MEng, Software Engineering, 2016 · ThoughtWorks Architect · CFA Level 2 candidate · SR&ED Approved engineering work

[ 02 / CASE STUDIES ]

精选案例研究。

一家加拿大综合能源生产商 · 2006–2016

十年间,在同一平台上完成原油调和、排产与结算。

每秒表达式求值次数
250K/sec
合作年限
10 yrs
已获 SR&ED 认证
SR&ED

调和经济性、合同与实物平衡、关税与均衡结算,以及流量排产,都必须运行在同一个模型之上,与整个企业范围内的 SAP 系统集成,并且要在交互式排产会议中快速迭代到收敛。

  • c#
  • .net
  • wcf
  • asp.net mvc
  • winforms
  • oracle
  • ibatis.net
  • msil
  • microsoft solver foundation
  • quickgraph
  • sap xi
  • teamcity
  • nunit

一家按需保险提供商 · 2016–2021

基于实时车辆遥测数据构建的按使用量计费保险。

合作年限
5 yrs
覆盖国家数
3
计费模式
Event-driven

按需保险——包括购买、理赔、计费与事故管理——根据车辆的实时活动数据进行定价,并由一支分布在三个国家的团队交付。

  • .net
  • react
  • typescript
  • aws lambda
  • dynamodb
  • sqs
  • sns

Codebasis · 2024–present

一款已上线的实时多人 PWA,并公开了成本模型。

已测得帧数
172,681
建模并发对局数
10→1,000
建模月度成本
$85→$1,150

一款四人实时对战游戏,配有 3D 棋盘,需要同时在手机与桌面端流畅运行、在并发下保持状态一致、支持机器人对手,并将运行成本控制在可承受范围内。

  • asp.net core
  • signalr
  • postgresql
  • react
  • three.js
  • rtk query
  • onnx
  • stripe
  • ecs fargate
  • github actions
查看全部案例研究

[ 03 / SCALE ]

从周末打造的 PWA,到运行十年的企业级平台。

同一家咨询实践,同样的严谨标准,贯穿五个真实项目:从四人在线对战网页应用,到与 SAP 集成的国家级结算系统。

  1. MahjongSpot

    4 名玩家 · 1 项服务

  2. RIPER

    3 个原型 · 2 种代币

  3. 车载保险

    3 个国家 · 5 年

  4. 航空预订

    2 渠道 · 主机集成

  5. 原油调和

    10 年 · SAP 集成

[ 04 / ARCHITECTURE ]

同一个应用的两种构建方式

任何系统在成长过程中都会积累复杂性。真正的区别在于,这些复杂性有没有地方可去。

大泥球

控制器直接深入持久层,业务规则写在方便的地方,同时散落在三层代码中。

端口与适配器

领域HTTP持久层消息总线第三方数据源

黄铜色的领域核心,边缘是端口,外部是适配器:HTTP、持久层、消息总线、第三方数据源。

监管机构修改了关税计算公式。

维度大泥球端口与适配器
改动的文件公式被复制到了哪里,不做一次全局搜索没人说得清只改一个适配器,领域核心不动
如何测试只能端到端手工测试,因为没有可以隔离改动的边界针对端口的单元测试,与周围的适配器隔离
影响范围出问题之前谁也说不准:公式、持久层和响应共用同一段代码限定在被改动端口背后的那一个适配器
能否水平扩展只是偶然可以:状态和逻辑散落在当初顺手放的地方从设计上就可以:核心不携带任何特定于适配器的状态

[ 05 / AI ]

有护栏的 AI

LLM 很乐意用十倍的速度生成一个大泥球。瓶颈从来都不是打字速度。

AI 写出什么样的代码,取决于你的代码库教会它什么。

  1. 01

    架构写在代码库里,覆盖每一个边界

    系统跨越的每一个边界都记录在模型真正会读取的地方——代码库本身,而不是它从未见过的一份 wiki。

  2. 02

    领域模型先行

    在写代码之前先确立统一语言,让同一个概念在接口、服务和数据表之间生成的命名不会走样。

  3. 03

    端口即契约

    接口与生成的客户端,让边界成为构建会失败的东西,而不只是评审者可能注意到的东西。

  4. 04

    测试作为准入门槛

    单元测试、集成测试与端到端测试共同把关合并。在我们自己的 mahjong-api 上,最近一次功能改动与接口在同一次提交(034dd81cd)中一并加入了两个新的测试夹具——而在整个仓库中,将近四分之一的文件都是测试文件。

  5. 05

    依赖规则由工具强制执行

    架构测试与代码检查规则会在边界违规到达人工评审之前,先让构建失败。

  6. 06

    小而可评审的单元

    文件大小要能装进评审者的脑子——也要能装进模型的上下文窗口——这样生成的改动在合并前才读得完。

  7. 07

    规格 → 计划 → 实现

    每个阶段都以一次评审检查点收尾,让生成的计划先获批准,再变成生成的代码。

[ 06 / SCALING ]

扛得住,就是能水平扩展

计算从来不是瓶颈。

这里测量出的每一个上限都是边界问题,而不是硬件问题:单进程的状态设计、无法分摊的写入方式,以及无限增长的历史帧存储。再多的 CPU 也无法解决其中任何一个。

并发对局数连接数月度成本
1040~$85
100400$150–200
1,0004,000~$1,000–1,150

[ 07 / CAPABILITIES ]

系统所需要的每一项能力

  • 产品与平台设计

    设计系统、原型及其背后的研究工作,并落地为可用于生产环境的组件。

  • Web 与 PWA 开发

    响应式、可安装的网页应用,专为离线可用性与亚秒级交互而构建。

  • 移动应用开发

    为应用商店审核、设备碎片化与实地使用条件而打造的原生与跨平台应用。

  • 企业业务应用

    取代电子表格与老旧工具的业务系统,且不打断日常运营。

  • 数据集成与企业应用集成 (EAI)

    在 ERP、SCADA 与第三方系统之间近乎实时协调数据的管道与 API。

  • AI 工程

    面向真实负载下的准确性、延迟与成本而设计的生产级机器学习与大语言模型系统。

  • 云架构与部署

    跨 AWS、Azure 与 GCP 的基础设施、部署流水线与成本工程。

  • 研发流程与交付咨询

    为团队规模超过初创阶段的组织提供交付审计、团队结构与流程设计。

[ 08 / ENGAGEMENTS ]

四种合作方式

咨询与架构

适用场景
在投入预算或人力之前,需要一个独立的外部意见时。
您提供
现有团队、待决策的问题与明确的期限。
我们提供
架构评审、技术选型,以及一份可直接落地的书面建议。
典型周期
1–3 周

架构与研发流程评估——范围固定,为期两周,价格固定。

查看案例佐证

驻场顾问

适用场景
团队已有路线图,但缺少资深人手来打通交付瓶颈时。
您提供
团队、待办事项与资深或专项技能上的缺口。
我们提供
一位融入贵团队、使用贵方工具、向贵方负责人汇报的资深工程师。
典型周期
3 个月以上
查看案例佐证

资深小队

适用场景
项目需要比现有团队编制更快的推进速度时。
您提供
明确的项目范围与产品负责人。
我们提供
一支从设计到交付、作为一个整体交付成果的小型资深团队。
典型周期
2–6 个月
查看案例佐证

端到端交付

适用场景
已有想法但尚无团队,需要从零构建并上线时。
您提供
愿景、预算与市场。
我们提供
完整交付:设计、构建、部署,直至首次正式上线。
典型周期
3–12 个月
查看案例佐证

[ 09 / THE PRACTICE ]

创始人主导,依托资深网络

Codebasis 由创始人亲自主导。每一次合作背后,都有二十七年的软件工程经验:滑铁卢大学的数学学士与数学硕士学位、康考迪亚大学的工程硕士学位、在 ThoughtWorks 担任架构师的经历,以及在能源行业系统中扎根十年——原油调和、管道运力分配、关税结算——这些系统要在生产环境中运行多年,必须一次做对。

这种严谨延伸到代码之外:CFA 二级候选人身份,以及一系列获 SR&ED 认证的工程工作,意味着客户真正关心的数字——成本、风险、回报——获得与架构同等的严谨对待。

这里没有待命的人力储备。每一次合作都从一个精心挑选的资深工程师网络中按需组建团队,依据眼前工作的形态来配置——绝不会用正在客户项目中学习的初级工程师来充数,也绝不会从一个项目间隙闲置的常设团队里抽调人手。无论合作规模大小,您聘用的、并直接对接的,始终是创立这家实践的那个人。

  • Waterloo

    BMath, 1997

  • Waterloo

    MMath, Symbolic Computation, 1998

  • Concordia

    MEng, Software Engineering, 2016

  • ThoughtWorks

    Architect

  • CFA

    Level 2 candidate

  • SR&ED

    Approved engineering work

[ 10 / CONTACT ]

聊聊您正在构建的系统

每一次合作都从一次对话开始:聊聊您面前系统的现状、历史与制约,以及一年后它必须做到的事情。预约咨询,或直接写信联系我们。