AI Library · 知识库

# 编程语言内容编写与维护规范

适用于 docs/languages/ 中的导航、实作文章和设计分析。目标是让读者能定位差异、复现示例、理解适用边界,而不是把八种语法机械排列。目录组织与全库维护要求仍遵循仓库维护规范。

本文件是本主题的统一流程入口;模板只提示文章结构,验证记录保存执行证据,现状审查保存问题与整改条件,不另建重复规则。下文“必须”是准入条件,“建议”允许说明理由后选择其他做法。既有文章按风险和实际修改逐步复核,不因新增规范自动获得通过状态。

# 维护流程

按下表推进一个选题或一组紧密相关的修订,不以“正文已生成”代替交付。编写者负责契约和示例,复核者检查论据与反例,整合者负责最终运行证据、导航和页面;同一人可承担多个角色,但不能省略检查环节。

阶段 必须产出 进入下一阶段的条件
1. 定位与定界 查阅本章目录和相邻文章,确定复用或新增;列出目标读者、问题契约、非目标、语言范围 不重复已有主题;跨语言共同输入域和预期行为明确
2. 查证与设计 列出关键论断及一手来源;先设计正常、边界、失败用例,再选实现机制 版本前提明确;语言事实与个人分析分开;数量结论有测量方案
3. 编写与组装 使用相应模板,完成文件名、代码块关系、运行命令、调用方及预期结果 从空的隔离目录按正文操作,不需猜测 import、包配置或替换范围
4. 语义复核与实跑 按文章和语言记录实际命令、输入、输出、退出码及未覆盖部分 实现满足共同契约;已知错误未被小样例或“渲染成功”掩盖
5. 整合与发布 对齐正文、验证记录、目录和相关分析;渲染并检查实际页面 发布清单完成;无互相冲突的状态,无临时协作指令与产物

并行或 AI 辅助编写前,整合者先固定共同契约、基线和文件边界。各任务只交付其修改范围与实际执行证据;“已完成”“测试通过”等任务报告必须核对具体输出后才能写入正式记录。最终正文不能出现“待父级统一执行”等内部交接语句,未执行范围应写成面向读者的明确状态。

# 修改触发的复核范围

存在错误结果、不可复现入口或与实现矛盾的结论时,必须先修复或明确标记受影响范围,再把文章列为已复核内容。已知问题尚未解决时保留在问题单中;不能通过删除失败用例、静默缩小契约或扩大未测试的通过声明来关闭问题。

# 选题与阅读路径

# 结构与排版

实作文章使用实作模板,设计论证使用设计分析模板。删除不适用的栏目,不为形式制造重复总结。

# 篇内锚点

本仓库 HTML 渲染器为每个标题生成 id:取可见文本,英文转小写,保留 Unicode 字母、组合标记、数字、空白、下划线和连字符,删除其余标点与符号,去除首尾空白,连续空白替换为一个连字符。

例如,各语言实现 对应 #各语言实现,Rust 对应 #rust,C++ 对应 #c。空结果使用 section。同页出现冲突时追加 -1、-2 等,直到唯一;不同页面独立计数。

正文优先使用简单、唯一的标题,避免依赖去重后缀。其他 Markdown 平台的锚点算法可能不同;标题改名后必须检查指向该节的链接,并在实际 HTML 中验证跳转。

# 问题契约与公平比较

# 代码与运行说明

# 完整程序和片段

完整程序不重复添加“完整程序,保存为……”和常规编译、运行命令。函数片段、驱动片段或替换片段须明确标注,必要时给出文件名。片段必须写明与哪些块组合、按什么顺序组合、哪些内容替换而不是追加。

# 从机制到设计分析

设计分析必须引用已有实现,并选定一个真实变化,例如增加文件目标、调整合法输入范围或新增失败原因。依次回答:

  1. 哪些代码需要修改,哪些保持不变?
  2. 类型系统或工具能检查什么,何时反馈?
  3. 哪些语义只能由运行验证和接口约定保证?
  4. 调用方还承担什么责任,失败如何传播?
  5. 抽象收益是否值得声明、阅读、运行或维护成本?

不把“失败在返回类型中”写成“调用方必然正确处理失败”,也不把垃圾回收写成文件和连接及时释放的保证。

# 版本与来源

# 验证证据与状态

内容完成度与执行状态分开管理。章节目录仅展示主题与比较重点,不展示完成状态;文章存在不代表已复核或运行通过。执行状态以验证记录中可定位到文章和语言的条目为准,正文链接到具体记录,不另写一份易失步的通过矩阵。

状态 含义与所需证据
未执行 只有预期行为或阅读核对;写明缺少的工具链、环境或尚未覆盖范围
部分验证 只有部分语言、代码块或场景执行过;逐项列出通过和未执行部分
通过 指定文章版本、语言和用例集满足预期;不代表全篇所有语言或全部基线通过
失败 保留实际与预期差异、复现步骤和影响范围;不得仅记“待优化”
待复核 历史证据不足、记录冲突或相关代码已改变;旧结果保留历史身份
不适用 纯分析等无独立可执行内容;仍须做来源与推理复核,不能称为运行通过

每条执行记录至少包含:

  1. 对象:文章相对链接、语言小节、块类型及组装方法;代码版本使用提交号或文档/代码 SHA-256,注明哈希对象。未提交的修改不能仅以旧提交号标识。
  2. 环境:核验日期、操作系统、实际编译器/运行时版本、影响结果的参数与依赖;基线版本另列,不混作实测版本。
  3. 步骤:隔离目录要求、文件名、原样执行命令、输入及用例范围;额外驱动或替换步骤必须足够复现。
  4. 结果:预期与实际输出、退出码、断言或关键诊断;无输出时也要说明检查了什么。临时日志可不提交,但摘要必须保留可观察结果,不能只写“通过”。
  5. 边界:未执行的语言、失败注入、平台和场景;CLI 的无参数演示与带参数调用分别计入覆盖。

验证记录按日期追加,历史摘要不冒充当前全库状态。若同一对象出现“通过”和“未执行”冲突,先标记待复核,定位代码版本和用例后再定状态;不凭较新的日期猜测谁正确。修复后保留原反例及新结果,只有对应范围获得通过结论。

文档验证与示例验证分别记录。当前 package.json 只有 build、render 两个脚本,均调用渲染器,没有仓库级 Markdown 检查或多语言测试命令。已有依赖时执行 npm run render;首次或锁文件变化时先执行 npm ci。链接检查应覆盖目标文件和生成 HTML 的标题 ID;人工或临时脚本检查都必须记录范围,不能把渲染成功等同于链接和示例全部正确。

# 发布前检查

渲染只验证文档能够生成页面,不证明代码示例正确;示例运行通过也不等于所有声明的基线版本均已测试。