开发编程
适用场景
- 写新功能:网站、小程序、云函数、脚本工具——需要把模糊需求变成可验收的实现。
- 改老代码:接手别人的项目、加字段、换依赖——需要改完不弄坏原有功能。
- 查问题:偶发报错、线上白屏、结果算错、越用越慢——需要稳定复现再定位。
- 做交付:发版、灰度、回滚、写 README——需要别人能跑起来、出事能退回。
- 做验证:单元测试、回归测试、代码审查、安全扫描——需要回答"怎么知道它是对的"。
- 考试与认证:NCRE 二级程序设计类科目、计算机技术与软件专业技术资格(水平)考试。
- 用 AI 写代码:生成片段、补全、解释报错——需要判断哪些能合入、哪些必须核查。
不适用:需要专门资质的安全渗透测试、需要领域许可的金融/医疗核心系统合规审查、芯片级嵌入式驱动开发。
核心知识框架
四层能力模型(详见 references/scene-development-core.md):
| 层 | 能力 | 常见卡点 | 被 AI 替代的风险 |
|---|---|---|---|
| L1 语法 | 会写循环、函数、类 | 看得懂但写不出 | 高 |
| L2 工程 | 版本控制、测试、调试、发版 | 代码能跑但不敢改 | 中 |
| L3 设计 | 拆模块、定接口、选数据结构 | 一改就牵一大片 | 低 |
| L4 判断 | 知道什么不该做、何时停 | 过度设计、反复重写 | 极低 |
十二个知识模块:
- M1 工作定义:三个落点(机器能执行/别人能验证/出事能回滚)、软件生存周期六阶段、三种开发形态、四层能力
- M2 需求:GB/T 9385-2008、需求三问、验收标准模板、变更三条纪律
- M3 设计:高内聚低耦合、接口契约四要素、技术选型五维、数据结构决定上限
- M4 编码:NCRE 二级 Python 2025 大纲的能力清单、编码规范十条、可读性验收法
- M5 版本控制:四条纪律、最小分支模型、代码审查七查
- M6 调试:六步定位法、二分法、日志五级、六类高频错误
- M7 测试:GB/T 15532-2008 六类测试、GB/T 9386-2008 八类文档、等价类与边界值、覆盖率两口径、测试金字塔
- M8 文档:GB/T 8567-2006、六段 README、注释与文档分工
- M9 交付:可复现三件套、配置与密钥、发版五步、可观测三支柱、可用性换算
- M10 安全编码:OWASP Top 10:2021 十类对照表、安全编码六条最低要求
- M11 法律与职业资格:《计算机软件保护条例》逐条要点、NCRE 与软考、六类岗位方向
- M12 工具链与 AI 辅助编程:五类工具、能做/不能做、七条纪律、自检顺序
标准作业流程(SOP)
完整步骤、验收标准与易错点见 references/scene-development-sop.md,此处只给主干。
SOP-0 八步总流程:澄清需求与验收标准 → 拆任务定接口 → 搭环境与依赖锁定 → 写测试骨架 → 编码 → 调试自测 → 审查与文档 → 发版观察。
| 编号 | 流程 | 用在哪 |
|---|---|---|
| SOP-1 | 需求澄清五步 | 任何新任务开局 |
| SOP-2 | 技术方案与任务拆解六步 | 超过半天的任务 |
| SOP-3 | 环境搭建与可复现五步 | 新建项目 / 换机器 |
| SOP-4 | 编码实现六步 | 日常开发 |
| SOP-5 | 调试六步定位法 | 任何报错 |
| SOP-6 | 代码审查七查 | 合并前 |
| SOP-7 | 测试用例设计与执行七步 | 交付前 |
| SOP-8 | 发版与回滚六步 | 上线 |
| SOP-9 | 线上故障排查六步 | 事故 |
| SOP-10 | AI 辅助编程七条纪律 | 长期 |
需求卡模板(SOP-0 第 1 步):
给 <谁> 做 <什么功能>,
触发条件:<用户做什么操作>
输入:<字段/类型/必填/范围> 成功输出:<可观察结果>
失败输出:<错误码与文案> 不变量:<不写两次/余额不为负/≤X ms>
排除项:<本次不做什么> 验收人:<谁>,验收方式:<怎么测>
常见问题与排查
完整 16 条见 references/scene-development-cases.md 第三节,这里给最常被问的六条。
- Q:在我电脑上是好的,线上就报错。 A:逐项比对运行时版本、依赖精确版本、环境变量、时区、路径大小写、权限。按 SOP-3 用干净环境重跑。
- Q:偶发重复下单,本地从不出现。 A:查并发与重试,不查"网络不稳定"。加幂等键 + 数据库唯一约束,两处都做。
- Q:修 A 坏了 B。 A:回归测试没跑或没覆盖。按 GB/T 15532-2008 的回归测试要求补跑,并补一条关联用例。
- Q:AI 生成的代码跑不起来。 A:先核对包名和版本是否真实存在(模型会编造),再逐行读懂,最后才看报错行。
- Q:接口只在前端隐藏了按钮,算权限控制吗? A:不算。OWASP A01 所说的权限控制必须在服务端针对具体资源校验。
- Q:学生团队接外包,没签合同,代码归谁? A:《计算机软件保护条例》第十一条规定,委托开发无书面合同或约定不明时,著作权由受托人享有。合作开发另见第十条。
输出模板
1. 接口契约
| 项 | 内容 |
|---|---|
| 输入 | 字段 / 类型 / 必填 / 范围 / 默认值 |
| 输出 | 成功结构 / 错误码 / 错误文案 |
| 副作用 | 是否写库 / 发消息 / 扣费 |
| 失败语义 | 超时 / 重试 / 幂等键 / 部分成功 |
2. 六段 README
1 这个项目做什么(一句话)
2 怎么跑起来(环境、依赖、命令)
3 怎么配置(变量名清单,不含真实值)
4 怎么测(一条命令)
5 目录结构(每目录一句话)
6 怎么发版与回滚
3. 交付前总检查表(摘要)
□ 需求卡有排除项与验收方式 □ 干净环境 30 分钟可跑起
□ 依赖锁定、版本库无密钥 □ 主路径 + 三条失败路径有测试
□ 每个边界有"上/两侧"取值 □ 格式化/静态检查通过
□ 审查七查全绿、安全项无阻断 □ 回归测试已跑有记录
□ tag/变更清单/回滚命令齐备 □ 灰度指标与阈值已定义
4. 提交信息与 tag
fix: 下单接口缺少幂等键导致重复扣款
feat: 增加按游标分页的订单列表
tag:v主.次.修,例 v1.4.2
5. 故障复盘表头
时间线 | 影响面(时间区间/请求量/数据) | 根因 | 防复发动作 | 负责人 | 截止日
参考来源(MLA 格式)
- 《计算机软件文档编制规范》,GB/T 8567-2006,中国标准出版社,2006。
- 《计算机软件测试规范》,GB/T 15532-2008,中国标准出版社,2008。
- 《计算机软件需求规格说明规范》,GB/T 9385-2008,中国标准出版社,2008。
- 《计算机软件测试文档编制规范》,GB/T 9386-2008,中国标准出版社,2008。
- 《信息技术 软件生存周期过程》,GB/T 8566-2007,中国标准出版社,2007。
- 国家市场监督管理总局:《市场监管信息化标准体系结构》,2021。
- 教育部教育考试院:《全国计算机等级考试(NCRE)二级 Python 语言程序设计考试大纲(2025 年版)》,中国教育考试网,2024,https://ncre.neea.edu.cn/xhtml1/report/2412/185-1.htm。
- 中国计算机技术职业资格网:《软件设计师考试说明》,https://www.ruankao.org.cn/article/content/bkzn/02_15.html,2026 年 11 月访问。
- OWASP Foundation, "OWASP Top 10:2021," OWASP, 2021, https://owasp.org/Top10/2021/.
- 国务院:《计算机软件保护条例》(国务院令第 339 号公布,2013 年第二次修订),中国政府网,2013,https://www.gov.cn/flfg/2013-02/08/content_2332395.htm。
可验证事实
- GB/T 8567-2006《计算机软件文档编制规范》2006-03-14 发布、2006-07-01 实施,全部代替 GB/T 8567-1988;2022-01-10 复审结论「继续有效」;归口 TC28 / 执行 TC28SC7。
- GB/T 15532-2008《计算机软件测试规范》2008-04-11 发布、2008-09-01 实施,全部代替 GB/T 15532-1995《计算机软件单元测试》;2021-12-21 复审结论「修订」,标准状态现行;覆盖单元测试、集成测试、配置项测试、系统测试、验收测试、回归测试。
- GB/T 9385-2008《计算机软件需求规格说明规范》2008-04-11 发布、2008-09-01 实施,全部代替 GB/T 9385-1988;2022-01-10 复审结论「继续有效」。
- GB/T 9386-2008《计算机软件测试文档编制规范》2008-04-11 发布、2008-09-01 实施,状态现行;公开目录含测试计划、测试设计说明、测试用例说明、测试规程说明、测试项传递报告、测试日志、测试事件报告、测试总结报告及三个资料性附录。
- 市场监管总局公开的标准体系文件把 GB/T 8566—2007、GB/T 8567—2006、GB/T 9385—2008、GB/T 9386—2008、GB/T 15532—2008 均列为「现行」。
- 教育部教育考试院《NCRE 二级 Python 语言程序设计考试大纲(2025 年版)》:上机 120 分钟、满分 100 分,单选 40 分(含公共基础知识 10 分)、操作题 60 分;考试环境 Windows 7、建议 Python 3.5.3 至 3.9.10、IDLE;基本要求含掌握不少于 3 个标准库、不少于 3 个第三方库。中国教育考试网 2024-12-31 发布的 2025 年版大纲目录另列有二级 C、Java、C++、Web、MySQL、openGauss、MS Office、WPS Office 等科目。
- 中国计算机技术职业资格网《软件设计师考试说明》:设「计算机与软件工程知识」(计算机化考试、选择题)与「软件设计」(计算机化考试、问答题)两科;考试要求含数据表示、离散数学、计算机体系结构、操作系统与程序设计语言、数据结构与算法、数据库与网络、软件工程与项目管理、常用信息技术标准与法律法规、专业英文阅读。
- OWASP Top 10:2021 含十类:A01 权限控制失效、A02 加密机制失效、A03 注入式攻击、A04 不安全设计、A05 安全设定缺陷、A06 危险或过旧的组件、A07 识别与认证失效、A08 软件与数据完整性失效、A09 安全日志与监测失效、A10 服务端请求伪造;官方介绍页称该版有 3 个新类别、4 个名称/范围调整并做了类别合并,2021 版把跨站脚本并入 A03。
- OWASP 官方数据:A01 权限控制失效映射 34 个 CWE、A03 注入映射 33 个 CWE;94% 的被测应用被检测出某类权限控制失效,注入类别的 94% 为测试覆盖口径、平均发生率 3.37%。
- 《计算机软件保护条例》2001-12-20 以国务院令第 339 号公布,2011-01-08 第一次修订,2013-01-30 国务院令第 632 号第二次修订、2013-03-01 施行;原条例自 2002-01-01 施行。第二条:软件为计算机程序及其有关文档;第四条:须独立开发并固定在有形物体上;第五条:不论是否发表均享有著作权;第六条:保护不延及思想、处理过程、操作方法或数学概念;第七条:登记自愿,登记证明为初步证明;第九条:著作权属于开发者;第十条:合作开发由书面合同约定;第十一条:委托开发无书面合同或约定不明时著作权归受托人;第十三条:职务开发归单位;第十四条:自然人为终生及死亡后 50 年,法人或其他组织为 50 年、截止于首次发表后第 50 年的 12 月 31 日;第十七条:为学习研究设计思想和原理而使用软件可不经许可、不付报酬;第二十九条:因表达方式有限而相似不构成侵权。
- 本包复算:1–100 整数的边界值取 0/1/2/99/100/101 共 6 个,加有效代表值 1 个与无效等价类 2 个,合计 9 条用例。
- 本包复算:
⌈log₂1000⌉ = 10;n = 10⁵ 时 O(n²) = 10¹⁰、O(n log₂ n) ≈ 1,660,964,比值约 6,020.6 倍。 - 本包复算:100 条语句执行 87 条 = 87.0% 语句覆盖;40 个分支覆盖 32 个 = 80.0% 分支覆盖;未执行 13 条。
- 本包复算:错误率 0.2%→3.8% 为 19 倍;日请求 50 万次时受影响由 1,000 次增至 19,000 次,增量 18,000 次。
- 本包复算:构建 8 分钟 × 20 次/天 × 22 天 = 3,520 分钟 = 58.67 小时;降到 2 分钟后为 880 分钟 = 14.67 小时,节省 44.00 小时、75.0%。
- 本包复算:10⁶ 条 × 1 KiB = 1,024,000,000 B = 1.024 GB = 0.9537 GiB;1,000 键 / 1,024 桶的装填因子 0.9766、期望冲突对数 487.79。
- 本包复算:一年 525,600 分钟,6 次 × 45 分钟 = 270 分钟停机,可用性 99.9486%;99.9% 年度停机预算 525.6 分钟。
- 本包复算:120 条回归用例,手工 3.0 小时、自动化 6.0 分钟,每轮省 2.9 小时、每周 5 轮省 14.5 小时;OWASP 两类 CWE 合计 34+33 = 67 个。
- 本包按条例第十四条推算:法人软件 2026 年首次发表,保护期截止 2076-12-31。
推测与建议
以下为本技能包基于上述事实给出的工作建议、经验阈值或解读提醒,不是标准条文、不是法规,也不构成法律意见:
- 编码规范十条(函数 50 行、命名规则、早返回等) 为本包整理的工程经验,各团队规范不同,以项目约定为准。
- "新人 30 分钟跑起环境""任务拆到半天以内""审查每小时 200 行" 均为经验阈值,无外部依据,可按团队实际调整。
- 最小分支模型(main / dev / feat-)、测试金字塔、发版灰度阈值 属工作方式建议,Git 与 CI 平台并无统一规定。
- SOP 各步耗时占比(15/15/5/10/25/15/10/5)为提醒"别把时间全花在写代码上"的经验分配,不是行业基准。
- 技术选型五维权重、接口契约四要素、需求卡八项 是本包为教学组织给出的框架,无官方出处。
- 案例 1–6 中的"结果口径"数字均为示例,用于说明排查方向,不代表真实项目数据。
- 例 8 的期望冲突对数 建立在均匀散列假设上,只用于说明量级,不代表任何具体实现的性能。
- 例 11 关于 94% 的解读提醒:OWASP 原文表述为"被测试了某类问题",本包据此提醒不要写成"94% 的应用有漏洞";这一区分是本包的解读,不是 OWASP 的结论。
- 具体开源许可证的义务条款、软考当年度报名条件与合格标准、各平台运行环境要求 暂未查证,需人工核实;以官方当期文本为准。
- 《计算机软件保护条例》各条的适用 需结合具体合同与事实,本包只陈述条文含义,个案认定以司法机关为准。