注册并分享邀请链接,可获得视频播放与邀请奖励。

搜索结果 Monorepos
Monorepos 贴吧
一个关键词就是一个贴吧,路径全站唯一。
创建贴吧
用户
未找到
包含 Monorepos 的推特
Q:我们公司有十几个微服务,现在想让开发用 AI Agent 来做系统设计和编码。问题是一个 user story 经常需要多个微服务协作,Agent 必须了解每个服务的职责边界和业务概念才能做出合理的设计。我们打算把所有微服务放到一个 workspace 下,每个服务配上自己的文档,让 AI 自己去处理。这种方式合理吗?有没有更好的实践? A:用好 Agent 的关键是两点:上下文的质量,和验证的闭环。 先说上下文质量。 放在一个 workspace 下是目前社区比较推荐的做法。 monorepo 天然适合和 AI 配合,因为 Agent 可以在一个地方同时看到 schema 定义、API 协议、各个服务的实现代码。如果因为历史原因确实不方便合成 monorepo,有个折中方案叫虚拟 monorepo,就是把多个仓库 clone 到同一个本地目录下。 除了放在一起,文档也是很好的让Agent获取上下文的方式,最好给 Agent 一张地图,加上按需加载: 1. 根目录放一份总的 AGENTS.md(或 CLAUDE.md)当索引用,列清楚有哪些服务、各自负责什么、要改某个服务就去读它目录下的文档。 2. 每个微服务自己目录里再放一份,写清自己的职责边界和业务概念,这其实就是 DDD 里的 bounded context。 3. 让 Agent 先看根索引,定位到相关的那几个服务,再去加载它们的细节。 不过要注意文档要及时更新,尤其是微服务协议变更了,一定要及时更新文档,否则会误导。 能从代码或规格自动生成的,就别手写。手写文档迟早会和代码对不上,而像 OpenAPI 这种机器可读的接口规格,一份东西既是文档,又能拿去生成 mock 和测试。 除了文档,还有一个很多人忽略的上下文来源:协议测试代码。高质量的 contract test 本身就是最准确的活文档,它精确地描述了服务之间实际的交互协议,比人写的文档更不容易过时,因为错了测试就无法通过。你如果已经有 OpenAPI spec 或者 Pact 契约文件,这些对 Agent 理解服务边界非常有价值。 再说验证。微服务场景下验证是最麻烦的部分,因为一个 user story 可能涉及好几个服务协作,你不可能让 Agent 每改一行代码就把整个系统跑起来做端到端测试。 一个实用的思路是:每个微服务提供 mock server 或者基于 OpenAPI spec 自动生成的模拟服务。Agent 写完代码后可以在本地跑 contract test 验证自己的改动有没有破坏和其他服务的协议约定,不需要依赖线上真实的 API 或者完整的集成环境。这样 Agent 就能形成一个“写代码→跑测试→自我修正”的闭环,不需要人在过程中频繁干预。 想再进一步,建议了解一下契约测试(consumer-driven contract testing,常用工具是 Pact)。思路是调用方把自己实际用到的接口形状记下来,生成一个契约文件,被调方再去验证自己能不能满足这个契约。 简单说:workspace 统一提供全局视图,分层文档 + 协议测试提供精准上下文,mock server + contract test 提供验证闭环。这三层搭好,Agent 处理跨微服务的系统设计就比较靠谱了。 一些参考资料 1. Anthropic 的 Effective context engineering for AI agents,讲怎么把上下文当稀缺资源来经营、按需加载: 2. Anthropic 的 Effective harnesses for long-running agents,讲长任务里怎么给 Agent 搭脚手架(比如用进度文件加 git 记录跨上下文窗口接力): 3. 怎么在 monorepo 里组织 AGENTS.md 给 Agent 用,可以看 上这篇 Steering AI Agents in Monorepos with AGENTS.md: 契约测试入门,搜 Pact 加 consumer-driven contract testing 的指南就行。
显示更多
0
18
150
27
转发到社区
软件工厂该不该用 monorepo,这个吵了多年的问题,在 agent 时代换了一个胜负手。 过去两边争的是人:构建时间、CI 配置、原子提交、跨团队权限边界。 现在 agent 进场,决定变量变了。 agent 不是来改单个函数的,它要跨设计、营销、销售、工程、支持一起干活。 它的产出上限,直接取决于一次能看到的公司上下文有多宽。 上下文散在十几个 repo、wiki、网盘和 SaaS 里,agent 就只能在一个信息孤岛上构建,产出自然七零八落。 把公司上下文收进一个 monorepo,本质不是给人省事,是给 agent 一个完整的视野。 这个判断有真实代价:monorepo 的构建规模、权限边界、组织摩擦,在人类维度上都是成本。 但最贵的消费者已经悄悄从人变成了 agent,这笔账要重新算。 先想清楚你的软件工厂到底为谁服务,再决定要不要单仓库。
显示更多
自从有了monorepo的仓库规划方式之后,一个repo容量达到GiB级别已经不足为奇了
如果你的团队在维护一个 monorepo,希望子项目各自有独立的钩子配置,同时又不想牺牲速度 prek 为这种场景做了专门设计 它是一个用 Rust 重写的 pre-commit 替代品,单个二进制文件,不依赖 Python 或任何运行时 但完全兼容你现有的 pre-commit 配置和钩子,无需重新编写检查规则 内置的 monorepo 模式允许每个子项目持有独立配置,还集成了 uv 管理 Python 环境 工具链共享机制让 Python、Node.js、Go、Rust 等环境在钩子间复用,减少重复安装 钩子按优先级并行运行,可以把整体执行时间压得更短 速度比原版提升了几倍,磁盘占用也减半 CPython、Apache Airflow、FastAPI 等知名项目已经换上了这套方案 如果你对 pre-commit 的速度不满意,prek 是一个可以直接迁移的高效选项。 GitHub
显示更多
快来安装这个大仓库维护神器:Nx Nx 是一款面向 monorepo 的开发平台。 这个平台把缓存、affected-only 执行、CI 扩展和 AI agent 友好放在前面。它会根据项目关系判断哪些任务需要重新跑,减少无关构建和测试。 TypeScript、Rust、Go 或混合语言仓库变大以后要看项目图、缓存策略和 CI 接入方式。它解决的是大仓库日常构建和排错成本,范围超过脚手架。 GitHub 现在约 28.9k stars 仓库地址:
显示更多
0
20
27
0
转发到社区
在 Claude Fable 5.1 的帮助下,将我的 Web 相关的项目都整合进一个 monorepo 了。 其中包含: 的 web、browser extension、desktop、mobile 几个产品的 landing page Grain(自用的网站访问统计分析小工具)的 web 这样就能有同一套 UI 组件库、设计 token,甚至框架版本、发布工作流等。就更好迭代和复用了。 在这样的架构下,并行地再增加 5 个项目也不成问题。只要有 Token 和时间。
显示更多
🚦 太强了,portless 给每个本地项目发一个固定的 https 域名,再也不用记这个到底跑在 3000 还是 3001。 GitHub 上 12151 star,399 个 fork,仓库今年 2 月才建,半年多冲到这个数,最近还在热榜上。 同时开三四个项目的人应该有体会:一个 monorepo 里好几个应用,端口按 3000、3001、3002 排下去,重启一次顺序变了,收藏夹里的地址全废。想让手机连上电脑看效果,得先查内网 IP 再拼端口;想给同事看一眼,还得现开 ngrok。 portless 把这些一次性解决了。每个项目分一个 app.localhost 这样的名字,https 和 HTTP/2 默认就开着,首次运行自动生成本地 CA、装信任、占住 443 端口。真实端口它自己在 4000 到 4999 里随机挑,通过 PORT 环境变量传给你的应用。Vite、Astro、React Router、Angular、Expo、React Native 这些不认 PORT 的框架,它会自动补上 --port 和 --host 参数。 monorepo 会自己读 pnpm-workspace.yaml 或者 package.json 的 workspaces 找包,一个 portless.json 就能覆盖各包配置。加 --lan 绑到全网卡,配合 mDNS 让同一网络下的手机用 .local 域名直接访问;要给外面的人看,--tailscale 或者 --ngrok 一个参数的事。还能装成开机自启的系统服务,launchd、systemd、任务计划程序都支持。 端口号本来就不该是人要记的东西。 GitHub:
显示更多
AI 编程工具标准之争爆发:Shopify 因“复杂度税”要禁用 Claude Code Shopify 的 CEO 公开威胁,要在公司内部禁用 Anthropic 的 Claude Code 编程工具,原因不是工具本身不好,而是它不支持一个行业开放标准配置文件。 现在很多公司(包括 Shopify)同时在用多种 AI 编程助手:这些工具需要知道项目的特殊规则、代码风格、架构约定、技能说明等,所以大家会在代码仓库里放配置文件。 但 Claude Code 默认只认自己的专属文件 CLAUDE.md,不主动读取 AGENTS.md。 Shopify 是个大型 monorepo(单体仓库),有几千名开发者共用。 一旦某个目录漏放了 CLAUDE.md,用 Claude Code 的同事就会拿到“阉割版”的项目认知,而用其他工具的同事则正常。Tobi 把这称为 分裂脑 或 脑叶切除。 虽然 Shopify 已经写了自动化脚本去同步两套文件,但 Tobi 认为这是一笔完全不必要的“复杂度税” Claude 团队的回应 @trq212 很快回复: 他们正在让 Claude Code 变得更“可黑”,未来会支持轻松使用 AGENTS.md,或者其他自定义系统提示。 之所以目前坚持 CLAUDE.md,是因为他们认为不同模型家族(Claude vs GPT 等)并不可互换,系统提示对模型表现影响很大,所以他们为不同模型准备了不同的提示格式。 短期临时方案:可以在 CLAUDE.md 里直接 Agents.MD 引用过去。 这个解释并没有完全说服所有人,很多开发者认为:更合理的做法应该是默认支持行业开放标准 AGENTS.md,把 CLAUDE.md 当作特殊优化选项,而不是反过来。 Anthropic 承诺会改进,但具体支持时间表还没完全公布。
显示更多
🧩 真香,7 个能直接抄的界面实验,附一套 shadcn 模板 GitHub 上 1.4K stars 做后台或者工具类界面,最耗时间的往往不是写逻辑,是纠结布局:这个日历该怎么排,这张 K 线图配什么控件,聊天界面的消息流怎么组织。从零想设计,一天就没了。 这个仓库放的是七个成品级的界面实验:Schema Visualizer、Event Calendar、Candlestick Chart、Crypto Wallet、SaaS Dashboard、AI Chat 和 Dark Table。都是按时间顺序排的,能看到作者的思路演进。 配套还给了一个基于 shadcn/ui 的 monorepo 模板,用 pnpm 和 shadcn CLI 初始化,组件放在 packages/ui/src/components 里通过 @workspace/ui 导入,拿来就能起项目。 有个前提要说清楚:个人和商业项目都能用,但不允许整体或部分重新分发、转售。 设计这事,看过好的才做得出好的。 GitHub:
显示更多