全栈工程化

给同一个 ESLint 配置按目录分层,我们用 overrides 把规则冲突压下去了

一套 ESLint 规则难以适配所有目录,`overrides` 是分层治理的关键。建议顶层设最严基线,再按目录逐层放宽,如测试目录允许 `any`、脚本目录放开 `console`。注意 `files` 需用 `**` 匹配多级路径,多个条目冲突时后者覆盖前者。`overrides` 还能换 parser、细化规则参数,并可通过拆分配置片段避免主文件膨胀。

全栈工程化

把 Git 分支名写进 K8s namespace,每个 PR 自动拉起一套独立测试环境,用完就删

PR 环境按分支隔离到独立 namespace,核心是命名可逆推、Helm 整栈部署、通配符证书统一挂载,以及三层清理兜底。命名采用分支哈希前缀加 sanitize 分支名,避免碰撞且便于排障;部署用 Helm chart 固定资源配额并关联 CI 环境生命周期;Ingress 靠默认证书省去逐环境申请;清理结合 on_stop、定时 GC 和 ResourceQuota,防止残留与资源泄漏。

AI 工具链

给 monorepo 里的调试助手划边界:只索引当前服务代码,跨包误报少八成

依赖闭包索引是降低 monorepo 调试助手误报的关键。通过解析 package.json 的 workspace 依赖构建传递闭包,将索引范围限定在当前服务及其真实依赖的本地包,实测误报率下降约八成。相比全仓索引,该方法更贴合调试认知边界;相比目录约定,能覆盖共享包中的真实缺陷。团队协作场景可进一步采用全仓索引加归属标签过滤,并在提示词中注入包边界约束以抑制跨包类型相似导致的误报。

全栈工程化

Monorepo 里跑 AI 代码审查,误报太多?我们靠一套自定义规则集把噪音降下来了

规则集工程化是降低 AI 代码审查误报的关键。通过将误报分为跨栈、测试夹具和 monorepo 特有误报三类,采用路径排除、包级元数据过滤和语义 profile 三层架构,四周内将误报率从 73.6% 降至 20%,同时有效评论数反升。条件式指令比否定清单更有效,规则需基于实际误报数据持续迭代维护。

全栈工程化

Proto 仓库多服务共用时,分支策略不跟上接口演进,编译失败几乎不可避免

多服务共用 Proto 仓库时,单一 main 分支无法表达接口演进所需的兼容窗口,易导致下游编译失败。建议采用版本分支策略,将破坏性变更隔离到独立分支,与消费方适配节奏解耦;小团队可仅用 CI 检测与 PR 影响面确认机制。需控制活跃版本分支数量,并通过区分 package 名支持新旧代码共存。

全栈工程化

多人协作时 rebase 和 merge 怎么选,我们对比了提交历史可读性和冲突解决成本

多人协作时,分支生命周期短且需频繁同步主干用 rebase,独立功能需保留合并节点用 merge。核心差异在于:rebase 生成线性历史但重写时间语境,冲突按提交逐个重放、成本随提交数上升;merge 保留分叉上下文,冲突一次性解决、成本随文件数上升。公共分支禁止 rebase,单人短分支可安全使用。实测显示 rebase 即时冲突成本高但长期追溯快,merge 反之。建议以 20 个提交和协作人数为阈值切换,采用混合策略。

全栈工程化

同一个库被三四个页面重复打包,splitChunks 的 minChunks 和 chunks 组合怎么设才不翻车

splitChunks 是杠杆组合而非开关,核心在于 chunks、minChunks、cacheGroups 三者匹配路由结构。SPA 动态导入场景用 chunks:'all'+minChunks:2 最稳;MPA 同步入口需 chunks:'initial' 配合显式 vendor cacheGroup。minChunks 按 chunk 计数而非 import 次数,cacheGroups 决定产物粒度,priority 控制归属,reuseExistingChunk 防重复提取。30KB 以上且被 3 页共享的库才值得提取,配置后需用 bundle-analyzer 验证。

全栈工程化

分支落后主分支三个月,我们是怎么拆成小块分批合进去的

落后三个月的分支一次性合入风险极高,通过差距分析、按可独立验证的功能单元拆分、分批合入,将冲突解决时间从预估两周压缩至4个工作日。核心做法包括:先统计diff和commit摸清规模,废弃过时改动;按业务功能而非commit拆分27个块,优先合入基础设施和迁移脚本;用cherry-pick配合逐文件审查,每批跑完整CI;分批还使代码评审可行,发现隐藏bug。