简介《软件需求规格说明书模板通用版》面向项目经理、需求分析师、开发与测试人员用于在项目初期明确软件目标、范围与验收依据解决需求描述含糊、文档结构不统一的问题。模板共27页、逾1万字目录覆盖引言、编写目的、需求分析理论与目标、参考文献、需求概述、系统功能需求、用户界面、硬件与网络需求、接口需求及非功能需求等章节并以移动办公、车辆管理、电子公文预览、政务信息管理等模块作示例附版本记录、审核确认、条件限制、系统结构与网络拓扑等内容便于按项目实际替换套用。压缩包内为1个doc文件大小约1.29MB单文档结构完整可直接编辑。已有10955人学习下载。读者可据此掌握需求条目明确、完整、一致、可追踪、可验证的写法快速产出规范需求文档并为设计、编码、测试与变更管理提供清晰基线。1. 一份 27 页的需求模板解决的是「写完没人敢签字」的问题接手一个已经延期两次的内部办公系统项目时我第一件事不是看代码而是翻需求文档——二十七页、一万多字通篇却找不出一句能被测试同学直接拿去写用例的话。后来拿到一份通用版软件需求规格说明模板封面带版本更新表正文从引言一路排到可移植性需求才明白问题不在写得多不多而在骨架搭没搭对。这份需求模板的价值就在这儿一份合格的需求文档该有哪些章节、每个章节该写到什么颗粒度、签字页该留几个位置它都摆好了你往里填业务内容就行。它适合三类人第一次独立写需求规格说明的开发、需要给外部协作方定验收口径的项目负责人、以及想把团队需求文档从散文拉回契约的技术负责人。2. 模板骨架拆解十七章目录背后的分层逻辑第一次看这份模板的目录会觉得章节碎引言、编写目的、需求分析理论、需求分析目标、参考文献、需求概述、系统功能需求、用户界面、硬件需求、网络需求、接口需求、通信需求、运行环境、性能需求、安全设施需求、安全性需求、扩展性需求、可移植性需求。十八章里有四五章看着像凑数。真按它写过两轮之后我才改观——这套目录不是为了好看而是把「定调、概述、功能、约束」四类内容分开放让不同角色的评审人各看各的段落互不干扰。2.1 封面四件套与版本更新表模板最前面那块区域很多团队会直接删掉觉得占页数。我现在的做法是反过来把它当成整份文档的索引。封面要写清项目名称、文档名称、文档 ID、作者、最后更新时间紧接着一张版本更新表字段固定为版本号、时间、更新人、更新摘要再往下是审核确认表甲方乙方各一栏列出姓名、职位、审核时间、审核意见、签字。页眉页脚保留「第 X 页 共 Y 页」别小看这个评审会上大家手里的打印件页码对不上讨论就会跑偏。版本更新表的样例长这样注意更新摘要一定写到模块级不要写「若干修改」版本号时间更新人更新摘要V1.0首版日期需求组 A首版办公审批、车辆管理模块需求V1.1第二版日期需求组 A增加信息门户平台需求内容V1.2第三版日期需求组 A按业务反馈补充公文在线预览需求审核确认表我一般这样摆角色所属方审核时间审核意见签字项目负责人需求方待填待填待填技术负责人承建方待填待填待填这两张表看着是格式活实际是追责链。后面正文哪条需求被改了、谁批的、哪一版进的全靠这两张表还原。2.2 十七章正文的四层划分把十八章正文按作用重新分组会清楚得多层次包含章节读者作用定调层引言、编写目的、需求分析理论、需求分析目标、参考文献评审主持方说明「为什么要写这份文档」给评审建立共识概述层需求概述项目背景、条件与限制、系统结构、网络拓扑所有人不涉及具体功能先把系统边界画出来功能层系统功能需求开发、测试、业务逐模块写清做什么、做到什么程度约束层用户界面、硬件、网络、接口、通信、运行环境、性能、安全设施、安全性、扩展性、可移植性开发、运维、安全功能之外的硬指标往往是验收的兜底条款这个分层的实际好处是评审时能控制节奏。定调层十分钟过概述层半小时功能层逐条抠约束层交给对应角色会后确认。混在一起讲一个下午都过不完第一章。2.3 填写顺序和阅读顺序不是一回事文档顺序是 1 到 18但填的时候千万别从头写。我一般按这个顺序推进先写需求概述里的项目背景和系统结构把边界定死再写功能需求一个模块一张功能表然后回头补约束层的性能、安全、运行环境因为这时候你才知道要约束什么最后才写引言、编写目的、需求分析理论这类定调章节以及参考文献。倒着填的好处是前面几章可以引用后面已经定稿的内容不会出现「编写目的说要做 A功能章里其实只做了 B」这种自相矛盾。目录结构我习惯按下面这样组织一条需求一个文件方便做版本对比# 需求规格说明文档仓库目录按模板改造后的形态 srs/ ├── 00-cover/ │ ├── version-table.md # 版本更新表版本号/时间/更新人/更新摘要 │ └── sign-off.md # 审核确认页姓名/职位/审核时间/审核意见/签字 ├── 01-scope/ │ ├── background.md # 项目背景现状、触发点、目标状态、范围边界 │ └── constraints.md # 条件与限制技术选型、硬件、工期、外部依赖 ├── 02-architecture/ │ ├── layers.md # 系统分层结构各层职责与部署位置 │ └── topology.md # 网络拓扑终端侧/网络侧/机房侧 ├── 03-functional/ │ ├── REQ-OA-001.yaml # 一条需求一个文件评审 diff 精确到条 │ └── REQ-VM-001.yaml ├── 04-nonfunctional/ │ ├── performance.md # 性能指标表 │ └── security.md # 安全设施需求与安全性需求 └── 05-trace/ └── matrix.csv # 需求 - 设计 - 用例 追踪矩阵目录里没保留模板的前五章是因为那几章在团队内部属于「写一次永久复用」的内容单独放一份公共文档就好。数字前缀的作用是控制评审时的翻阅顺序和正文顺序保持一致。3. 需求概述章项目背景、系统结构与拓扑图怎么写需求概述是整份文档里最容易被糊弄的一章也是最容易被返工的一章。我见过太多版本写成「为进一步提升办公效率建设本系统」——这句话换成任何一个项目都成立等于没说。项目背景要写到能让一个没参与过前期沟通的开发看懂现在是什么状态、为什么现在必须动、动了之后到什么状态、哪些地方明确不动。3.1 项目背景的四个要素拿移动办公类需求举例模板里那段背景其实信息量很足拆开看是四件事。第一是现状已有的移动办公系统先在一种终端系统上建成后来又扩展到另一种终端系统说明历史包袱存在。第二是痛点外出人员无法及时批阅公文、收发邮件、查通讯录。第三是触发点业务方要求覆盖更多主流终端系统版本且原有流程不能丢。第四是目标状态做到任何人、任何时间、任何数据、任何设备都能办公也就是常说的 4A。最后还要补一句边界——本次是在原有系统上增加适配软件模块不重构原有业务逻辑。这五个要素按顺序写下来一段两百字左右谁看都不会误解。我常用的句式是「现状是……导致……本次要求……但不包括……」。最后那个「不包括」至关重要它是后面拒绝需求蔓延的唯一依据。3.2 分层结构四层安全控制域怎么写模板把移动办公系统划成终端用户层、接入服务层、业务逻辑层、外部系统层四层每层都绑定了一类安全设计要求。这种划法可以直接搬到大多数「端 网关 服务 被集成系统」的项目里。写的时候不要只画个层次名词每一层至少交代三件事职责是什么、部署在谁的环境里、对上对下用什么协议通信。层职责部署位置需要在这层写清的需求终端用户层面向各类终端提供展示与交互用户设备支持的终端系统与最低版本、客户端安装与升级方式接入服务层承接无线网络接入、请求转发、接入认证机房接入区支持的网络类型、接入认证方式、并发连接数业务逻辑层业务解析、流程引擎、通用组件、系统管理机房应用区功能模块清单、流程与外部系统的调用关系外部系统层与被集成的既有系统对接既有系统所在网段接口协议、数据格式、同步或异步、失败重试策略这张表的价值在于后面写接口需求和性能需求时你能准确说出「这个指标属于哪一层」。比如「附件在线预览响应时间不超过 3 秒」如果不指明是接入层转发耗时还是业务层转换耗时测试同学根本没法测。3.3 网络拓扑三段式与条件限制清单拓扑部分模板给了三段的划法终端侧、网络侧、机房侧。终端侧写发起请求的设备和软件网络侧写承载网络机房侧写服务器与通信设备。文字描述配一张图图里只画三类元素终端、网络边界、服务器区。不要把所有中间件都塞进图里图越复杂越没人看。条件与限制这一节模板里明确是可选项。我的建议是只要项目有外部依赖就必须写而且要写成清单而不是段落。常见维度有五个输入数据的范围与格式、必须使用或明确避免的技术与工具、硬件限制定时要求、存储上限、经费与工期、对外部组件和其他项目的依赖。写成表格式的清单评审时逐条确认比藏在段落里靠谱得多。提示条件与限制里写的每一条后面都要能在功能需求或非功能需求里找到对应条款否则就是写了没人执行的空话。4. 功能需求章拆解功能表、界面元素与流程的三段式写法功能需求是这份模板的主体也是最能体现「模板好不好用」的地方。模板给的结构是「功能模块 实现功能」两列表看着简单但真正落地时会发现两个坑一是功能名写成名词二是界面细节全塞进正文段落里开发和测试各理解一版。我的处理办法是把这一章拆成三层来写——功能清单、界面元素清单、交互流程。4.1 功能清单表一个功能点对应一个可验收动作把「收文审批」「发文审批」「会议通知」这类条目罗列出来只是第一步。真正要补的是每个功能点背后的可验收动作。下面这张表是我按模板改造后的样子模块功能点验收动作登录账号密码登录输入正确凭据进入首页错误凭据提示且不进入待办待办公文列表列表加载、分页、按规则排序、空列表有占位审批收文审批意见提交选择环节与人员后提交成功历史意见可见邮件邮件收取与查看列表拉取、正文渲染、附件可下载通讯录组织树与人员详情按部门展开、人员字段完整、与源系统一致会议会议列表与详情仅展示一周范围、可按周查询通知通知列表与详情按发布时间倒序、附件可预览或下载车辆用车申请走审批流、状态可查、驳回可修改重提这张表的核心是第三列。没有第三列功能清单就只是目录有了第三列测试同学可以直接照着写用例开发也能判断自己有没有漏做。4.2 界面元素写死两行显示、字段清单与排序优先级模板里有一段写得非常「较真」待办公文列表采用两行显示第一行是公文速级图标、业务种类、接收时间第二行是公文标题列表排序按业务种类、速级特急、急件、平件、接收时间。这种描述看着琐碎实际是整个文档里最有价值的部分之一——因为它可以被验证。写这类需求有个固定套路先定行数再定每行的字段顺序最后定排序键的优先级。排序一定要写成有序列表明确第一排序键、第二排序键、无值时的缺省行为。我踩过的最典型的坑是需求里写了三种排序方式但没写优先级开发按接收时间排业务方说要按速级排验收会上双方都有理因为文档里确实两种都写了。同理公文详情页的字段清单也要写全来文单位、紧急程度、标题、内容摘要、意见、主办单位、主送单位、抄送单位、拟稿人、密级、历史意见。字段清单写全了前端不用反复问测试也能逐项核对。4.3 中间层组件类需求重定向、格式转换、文件流模板里有一段需求写得很典型为了对公文交换平台和现有办公系统做最小改动在两者之间搭一个中间层组件负责把访问公文的请求重定向过去、把公文转换成办公系统能识别的格式、再以文件流形式返回终端显示。这类「加一层适配」的需求在集成项目里极常见写成接口契约最清楚{ request: { docId: DOC-2024-0001, source: exchange-platform, targetFormat: tiff, redirect: true }, response: { contentType: application/octet-stream, streamRef: tmp/preview/DOC-2024-0001.tiff, maxInlineSizeMB: 5, fallback: download } }这段契约里docId是公文在源系统的唯一标识中间层不能自己造 IDtargetFormat限定转换目标模板里明确常见格式是扫描件类格式redirect表示是否走重定向策略取值由调用方决定maxInlineSizeMB对应需求里的「超过 5M 的文件可下载但不能在线预览」fallback是超限时的降级动作。把这段写进文档接口需求那一章基本就不用重复描述了。4.4 交互流程用「前置条件、主流程、异常分支」三段式审批意见发送那段需求信息密度很高先选环节环节顺序与源系统保持一致一次可选 1 到 4 个下一环节通过多级下拉联动上级选完后下级自动过滤不可选项或自动选中必选项如果发送到默认环节的默认人员就不出现选择界面直接发送环节选完再逐环节选人员含组。这种流程用散文写必然漏用三段式最稳。下面这段伪代码是我在文档里给开发做参考的判定逻辑直接对应需求条款# 审批意见发送前的环节与人员解析伪代码对应需求条目中的判定规则 MAX_STEPS 4 # 需求限定一次最多选择 4 个下一环节 def resolve_targets(selected_steps, default_step, default_users): # 规则 1目标环节等于默认环节时直接用默认人员不弹选择界面 if selected_steps [default_step]: return default_users # 规则 2超过 4 个环节直接拒绝前端下拉不应给出第 5 项 if len(selected_steps) MAX_STEPS: raise ValueError(下一环节数量不得超过 4 个) # 规则 3逐环节解析人员未配置人员的环节视为配置缺失而非静默跳过 plan [] for step in selected_steps: users default_users.get(step, []) if not users: raise ValueError(f环节 {step} 未配置可选人员) plan.append({step: step, users: users}) return planselected_steps是前端多级下拉联动后的结果顺序必须与源系统环节顺序一致default_step和default_users来自配置是「跳过界面」这一分支的触发条件MAX_STEPS直接抄需求里的数字改需求就改这里别散落在代码各处。异常分支要单独写清楚超限报错、未配人员报错这两种情况在验收时都要能复现。4.5 把每条需求写成一个结构化条目功能章写到后面会失控因为条目太多、太散。我的做法是给每条需求一个固定字段集用 YAML 存评审只允许改值不允许加字段避免越写越随意# REQ-OA-012.yaml 一条需求的完整描述 id: REQ-OA-012 title: 待办公文列表按速级与接收时间排序 module: 移动办公 priority: P0 source: 业务方第二版评审意见第 3 条 description: 待办公文列表每行两行展示第一行为速级图标、业务种类、接收时间 第二行为公文标题默认排序为速级特急 急件 平件同级按接收时间倒序。 acceptance: - 特急件始终排在急件之前 - 同速级内接收时间新的在前 - 空列表展示占位文案而不是空白页 links: design: DS-OA-007 testcase: TC-OA-031id在整份文档内唯一模块缩写进编号source记录需求来源方便日后追溯是谁提的acceptance是验收标准必须写成可判定的句子不能出现「体验良好」这类词links把设计编号和用例编号挂上来追踪矩阵靠它自动生成。5. 需求文档落地避坑五条从评审现场捞回来的记录模板再好填的人不对照样翻车。下面五条都是我在评审现场和上线后真实遇到过的每条按现象、原因、解决写。5.1 需求描述层面的三个坑功能清单只有名词没有动词。现象功能表里写「公文查询」开发做了个列表页验收时被要求支持按速级筛选、按时间范围查询、导出。原因把模块名当成了需求缺了动作和结果。解决每个功能点必须写成「谁在什么条件下做什么得到什么结果」一条需求一个动词验收动作列到表里。阈值和单位散落各处。现象附件 5M 限制写在功能章性能章又写了一遍响应时间两处数字对不上测试按哪个都不知道。原因没有单一数据源。解决把所有可量化阈值抽到一张参数表正文只引用编号改的时候只改一处。参数表放在需求概述后面谁都能翻到。排序规则没写优先级。现象列表需求写了按业务种类、速级、接收时间三种排序开发按时间排业务说按速级排验收会上吵了半小时。原因并列描述等于没说。解决排序写成有序列表明确第一键、第二键、空值缺省行为并且举一个具体例子作为期望结果附在条目里。5.2 流程与评审层面的两个坑版本更新表和正文不同步。现象文档版本升到第二版正文加了新模块却没有任何标记开发照旧版做完返工两周。原因改正文不改版本表或者改了版本表不标新增章节。解决每次改动同时做三件事——版本表加一行、正文对应条目加「新增/变更」标记、变更记录里写明影响的章节号。签字页空着就开工。现象需求评审会上口头通过签字页一直空着中途业务方换负责人新负责人不认上一版的结论。原因把评审会当成签字。解决签字页必须落到具体职位和时间任何后续变更走变更单没有变更单的修改一律视为无效需求。注意这五条里杀伤力最大的是第二条和第四条。前者影响测试后者影响交付责任划分其他三条更多是效率损耗。6. 二次改造把通用模板压成团队自己的需求基线直接拿二十七页的通用模板交差评审大概率会被问「这几章是不是抄的」。我的做法是把它压成十页左右的团队基线删掉需求分析理论和参考文献两章把用户界面、硬件、网络、通信、运行环境合并成「环境与接口约束」一章其余保留同时补一张参数阈值表和一张追踪矩阵。改造前后对比如下维度通用模板团队基线章节数十八章十章需求条目表格式罗列一条一文件字段固定阈值散落正文集中参数表追踪无需求-设计-用例矩阵校验人工通读脚本自检 人工评审光有格式还不够得有个能跑的自检脚本卡住低级错误否则每次评审都要重复指出同样的问题# check_srs.py 需求条目自检编号格式、编号唯一、验收标准、优先级枚举 import re import sys import yaml REQ_ID re.compile(r^REQ-[A-Z]{2,4}-\d{3}$) # 模块缩写 2-4 个大写字母 三位序号 LEVELS {P0, P1, P2} # 优先级只允许这三档 def check(path): with open(path, encodingutf-8) as f: doc yaml.safe_load(f) seen, errors set(), [] for item in doc.get(requirements, []): rid item.get(id, ) if not REQ_ID.match(rid): errors.append(f{rid or 空}: 编号不符合 REQ-模块-三位序号) if rid in seen: errors.append(f{rid}: 编号重复) seen.add(rid) if not item.get(acceptance): errors.append(f{rid}: 缺少 acceptance 验收标准) if item.get(priority) not in LEVELS: errors.append(f{rid}: priority 必须是 P0/P1/P2) return errors if __name__ __main__: errs check(sys.argv[1]) print(\n.join(errs) if errs else OK)sys.argv[1]传需求 YAML 的路径部署到流水线里就是提交前必过的一关REQ_ID用正则卡编号格式避免出现REQ-1、req-oa-1这类五花八门的写法LEVELS限定优先级枚举防止有人写「高」「紧急」整个循环收集所有错误再一次性输出而不是遇到第一个就退出这样改一轮就能改干净。跑通之后我一般再加一条规则每条 P0 需求必须挂至少一个用例编号否则打回。从那以后我每次交需求文档前都先跑一遍这个自检脚本再让需求方在签字页上落笔——前后不到半小时省掉的返工至少按周算。希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
工业互联网集成应用赛项:RFID与平台点位联调四小时避坑指南 简介:面向高职院校工业互联网相关专业师生及竞赛指导教师,这份PDF为2024年上海高职院校学生技能大赛“工业互联网集成应用师生同赛”赛项样题,可用于赛前熟悉题型、梳理训练重点与模拟演练。内容围绕工业互联网集成应用展开,涵盖竞… · 2026/11/4 12:20:12
软件项目范围说明书:从系统边界到可验证需求的五层结构 简介:《软件项目范围说明书》doc 模板,面向软件项目经理、需求分析人员与开发团队,用于在立项阶段明确开发意图、应用目标、作用范围及系统边界,解决需求描述不清、接口关系混乱的问题。压缩包内共 1 个 doc 文件,约 4… · 2026/11/4 12:20:12
遥感影像DOM生产中匀色、镶嵌线与国标分幅输出实战 简介:《遥感影像匀色镶嵌分幅处理操作方法》是一份面向遥感影像处理、GIS应用及测绘技术人员的PDF操作手册,围绕多源影像色彩不一致、拼接接缝明显与大幅面成果分幅管理等问题,系统讲解匀色、镶嵌、分幅的完整流程。资源包仅含1个PDF文件&… · 2026/11/4 12:19:11
零基础入门PyTorch深度学习:从环境配置到第一个神经网络实战 简介:这份PDF面向深度学习初学者与PyTorch入门者,围绕“从基础到实践”的学习路径,系统讲解Numpy基础、Tensor与Autograd、神经网络工具箱nn、数据处理与可视化工具,并延伸至机器学习基础、卷积网络、循环网络与生成式模型等核心内… · 2026/11/4 13:01:43
SolidWorks Simulation动力学进阶:模态、谐响应与瞬态仿真 仿真这件事,做静力学的人多,能把动力学跑通、并且跑出来的数敢拿去支撑设计决策的人少。SolidWorks Simulation 这套工具的门槛其实不高,点几下就能出彩图,难的是知道什么时候该用哪个算例类型、参数凭什么这么填、结果为什么和实… · 2026/11/4 13:01:43
30岁测试工程师转型指南:技术纵深与管理路径 1. 职业现状与转型必要性 30岁对于软件测试从业者而言往往是个关键分水岭。在这个阶段,许多测试工程师开始面临职业发展的瓶颈期——重复性的功能测试工作逐渐失去挑战性,而新兴技术栈又带来知识更新的压力。根据行业调研数据,约67%的测试人员… · 2026/11/4 13:01:43
M3U8分片下载与油猴脚本实战:HLS抓取、合并与排错 前段时间帮一个做在线课程运维的朋友处理了个挺典型的问题:他自己录的直播回放挂在自家页面上,学员抱怨"想下载到本地反复看,右键另存为存不下来",他自己也试了半天,另存出来的只有一个几 KB 的小文件。打开一看,里面全是文本,列着一堆.ts结尾的地址——这就是 M3U8 … · 2026/11/4 13:01:43
LiteDB.Studio 实战:嵌入式数据库可视化查询与排障指南 1. 先把问题看清楚:LiteDB.Studio 到底补上了哪块缺口 LiteDB.Studio 是一个免费开源的 LiteDB 数据库 GUI 管理工具,用来直接打开 .db 单文件、浏览集合、跑查询、改文档、建索引。我第一次接触它,是因为一个离线桌面项目用了 LiteDB 存配置… · 2026/11/4 13:01:43
wxappUnpacker能力边界详解:能解什么、不能解什么 简介:这是一套面向小程序开发者与安全研究人员的微信小程序反编译工具集wxappUnpacker,专用于逆向解析小程序主包与分包,解决封闭环境下无法查看原始业务逻辑、组件结构及配置机制的痛点,适用于代码学习、性能分析、安全审计与问题… · 2026/11/4 13:00:42
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38