Files
BakNRet/docs/adr/0001-module-source-layout.md
Shuery 3a3a57a6a1 docs: 决策记录 8 条、变更日志、README 的验收与口令两节
0007 与 0008 是本次改造新产生的决策(原计划 6 条)。它们同样满足「后人会问为什么」:把运行锁改成互斥体、或给库里 27 个函数补上 SupportsShouldProcess,都是看起来更规范的错法。

CHANGELOG.md:把 README 里那 33 行「相对旧版修了什么」整节搬过去,并补上本次改造的记录(11 条修复 + 6 条结构与规范,每条修复都写明现象与现状)。README 那一节换成指针。

README 新增两节:「验收与静态分析」(六个层次、Run-RealSmoke 为什么独立存在、以及那 6 条格式规则默认 Disabled 这个容易漏掉的事实);「口令放在哪里」(默认留空不是遗漏,附迁移与验证命令)。

.markdownlint.json 照 PowerShell 主仓库的实践(default true、行长 240),只把 MD024 从关闭改成「仅同级不重复」,因为变更日志需要重复标题。顺带按 .editorconfig 把 .md 的 BOM 去掉。
2026-09-27 10:01:54 +08:00

15 lines
1.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 模块源码拆成 BakNRet/{Public,Private},另提供单文件构建
原来是一个 3152 行、66 个函数的 `Common.psm1`。拆成 `BakNRet/BakNRet.psd1`(模块清单,
`FunctionsToExport` 是显式白名单)、`BakNRet/BakNRet.psm1`(薄加载器)、`BakNRet/Public/*.ps1`
(62 个对外函数,一函数一文件,文件名 = 函数名)、`BakNRet/Private/*.ps1`(4 个内部函数 +
`State.ps1` 集中存放模块级状态)。
一函数一文件是社区里脚本模块的主流形态(调研实测:winutil 79 个、Terminal-Icons 24 个、
ModuleBuilder 23 个,全部如此);而"拆了还能合回去"是这套方案成立的前提,所以
`tools/Build-BakNRetModule.ps1` 从加载器里读出顺序拼回单文件,并且加载器的点源顺序
**只在加载器里出现一次**——一条断言盯着"点源的文件集合 = 磁盘文件集合"、
"导出名单 = `Public/` 目录"。
代价:日常要跳文件;顺序被隐式固化在加载器里(改顺序要改加载器)。