29 天,一个 91k 行的 ERP,零开发者
Source: Dev.to
请提供您希望翻译的正文内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。
Introduction
一个四月的早晨,差八点,安托万靠进我的办公室。
七十三岁,曾任导演三十年,九月退休。他没有坐下;每当他带着真正的问题来时从不坐下。手扶在门框上,七个字:
« Michel, combien vaut la maison aujourd’hui, dis‑moi ? » — Michel,今天这房子值多少钱,告诉我?
我给了他一个毫无意义的答案。他点了点头。
« Évidemment. Bon, on avance. » — 显然。好,继续吧。
他走了出去。问题仍然悬在空气中。
房子
他所说的这所学校是 L’Atelier Palissy,一所独立的美术学院,成立于二十五年前,围绕严格的陶瓷实践而创立。如今,它在巴黎及其大巴黎地区的六个校区,为数百名学生——包括初学者和高级学员——教授素描、绘画、造型、雕塑和写生。
- Antoine 在那里工作了三十年;我最近接任了校长职务。
- 他的问题包含了所有其他问题:我们在传递什么? 它值多少钱? 我们该如何表达而不自我编造故事?
为什么我构建了这个工具
我发现唯一不撒谎的办法是 编写计算它的工具。本系列解释了为什么这个问题让我熬了四周夜,以及当你不知道如何干净利落地回答时,你会在自制 ERP 中归档些什么。
- 我们已经用了 Excel、Sage 和活页夹 运营了二十年。
- 一种更依赖人与人而非流程的亲近文化,拥有 Qualiopi 认证(法国职业培训的国家质量标签),受众从转行的员工到七十岁开始做陶艺的退休人士。
- 受过艺术史训练、不是开发者、四十多岁的我,时而灵感迸发——假设为 ADHD——这就是为什么 决策在四十八小时内翻转,项目能够整夜坚持。其余时间,我让事情随波逐流。这是一种节奏,而非方法。
ERP 失误
- Monday – 在巴黎的会议室,我与一家知名的欧洲 ERP 供应商签订了一个 五位数的套餐(年度许可证,默示续约)。大家都在微笑。
- Three days later – 再次阅读合同时,我看到技术附件,其中定制开发的计费表是 按生成的代码行数计费。
- 我给供应商打了电话。客户经理礼貌而迂回地解释说,这在各处都是一样的。我挂断电话时才迟迟明白,这个指标 在衡量代码的同时也在生成代码,而我们刚刚买下了一个其价格随自身扩散而增长的对象。
DIY 方案
| Day | Action |
|---|---|
| 星期六 | 第一次打开 Claude Code。 |
| 星期日晚 | 构建了一个 Supabase schema、三个 Next.js 路由和一个认证页面。并无惊人之处——仅证明该替代方案可以在一个周末完成。 |
| 星期一上午 (签约后八天) | 已经有东西在运行。商业套餐正处于退款谈判中,仍未结束。 |
| 二十九天后 | 该系统——我出于兴趣且开玩笑地称之为 Rembrandt——累计 91 000 行 TypeScript、过去四周 377 次提交、16 条书面的架构决策、以及 54 次会话 已记录在记忆中。 |
我列出这些数字并不是为了炫耀;后续内容将展示它们 并不像表面看起来那样,并且需要一些度量手段才能把它们转化为资产,而不是奖杯式的计数。
我现在写下这篇的三个理由(这样我就不必再回来看了)
-
让错误变得有用
我编写了一个估值仪表板,却被它欺骗了三周,部署了一个在沉默中超时的 Sentry 定时任务,误把数据模型的分歧当成了不情愿的同事。这些都不会出现在人们通常发布的、用来炫耀自己懂行的帖子里。我宁愿写下另一半。 -
与 DEV.to 社区一起学习,而不是出售方法
我没有任何可售的东西——没有付费工作坊,也没有辅导。即使我出售,也会是一个糟糕的捷径,因为没有相伴的实践经验,这条路是难以读懂的。提出更好视角的评论会被阅读,有时会融入下一篇文章。 -
重要的澄清
- 名字是虚构的,学校是虚构的,情节可能被重新组合。
- Antoine、Françoise、Gaspard 在本质上存在,但不涉及其民事身份。
- 正在与供应商进行商业谈判,某些情节涉及我不必公开的人物。
- 所有内容都是真实的,意味着它们确实发生过;但没有任何内容是对话的逐字记录。
- 任何在生产环境中使用大语言模型(LLM)的人都知道,你不可能把每个细节都证明出来,这正是必须记录方法的原因。
系列结构
四个章节共二十四篇文章:
- 估值 – 在编写一行代码几乎不花钱的时代,如何衡量一个定制技术对象的价值。
- 可发布的架构决策 – 四周内十六个,其中三个因敏感财政原因保持私密。
- 生产环境中的事故与修复 – 短篇、易消化的故事。
- 元:Claude Code 工作流 –
CLAUDE.md、MEMORY.md、ADRs、hooks,我最终对需要框架的快速学徒的理解。
阅读顺序建议
- 如果你刚开始,先阅读**#3** – 关于为何 LOC × day‑rate 模型在 AI 时代已失效的转折点。
- 然后阅读**#7** – “一个订阅 = N 个席位”的商业模型,展示了其具体形态。
- 其余内容可以随意顺序阅读。
演员阵容
-
Françoise 保管账本、房子、便利贴和活页夹。与我们共事二十年,活力十足,判决简短,标志性台词 « elle va pas nous emmerder, celle‑là » — “她最好别给我们添麻烦”。她在伦勃朗前摇摆,她的摇摆是对的。
-
Antoine 是前任导演,七十三岁,九月退休。是屋子的父亲形象,几乎不重复提同一个问题。
« Évidemment. » — 显然。
« Vous êtes sûr ? » — 你确定吗?
« Bon, on avance. » — 好,继续前进。
-
Gaspard – 长期 IT 承包商。他的角色在本系列中逐渐淡出,逐步由 Claude Code 与我接手。他严谨、技术性强,言辞简练。是每篇帖子背后默默进行的戏剧。
-
Hélène、Catherine、Étienne(会计)– 在剧情需要时出现。
征求反馈
我对这篇出版物感兴趣的是我以前未见过的视角。
当你想象一位非开发者的导演在四周内使用 Claude Code 编写自己的 ERP 时,你最想直接得到回答却从未被提及的问题是什么? 那个能让你留下来的问题。
在评论中说出来。 我会阅读、记住,如果它比文章本身更有说服力,我会把它塞进后面的文章里。
代码与示例
包含代码的文章会在伴随的仓库中打开它们的代码片段(MIT 许可证,像其他内容一样已匿名化):
- 仓库:
- 在其中您会找到:
- 估值摘录
- 联系 × 课程建模
- 四层
CLAUDE.md模板
接下来
我为什么编写了一个模块来告诉我 Rembrandt 的价值。