Чадвар

软件开发

按业务流程定制系统、官网与小程序,并负责把已有的硬件系统对接进来:需求先写清楚,接口先定下来,再动手写代码。

Энэ хэлний орчуулга хараахан бэлэн болоогүй тул хятад хувилбарыг харуулж байна.

软件开发

能做什么

业务系统定制:客户管理、项目管理、报价与合同、库存与工单等;按实际流程做,不套模板。

官网与小程序:企业官网、内容管理、微信小程序与公众号对接。

系统对接:把门禁、监控、停车、能耗等硬件系统的数据接进统一平台(按厂家开放接口或网关抓取)。

用什么技术栈与交付物

Web 常用 Node.js/TypeScript 与主流前端框架,数据库用 MySQL/PostgreSQL;小程序按微信官方技术栈。

对接优先走厂家提供的开放 API/SDK;没有开放接口时用网关或数据库只读视图,并明确数据责任边界。

交付物:需求说明、接口文档、部署说明、源代码与数据库脚本。**文档清单本身没有国标可套,按合同约定**——把清单写进合同比事后争论有用。

  • 接口先定契约再开发,避免上下游反复返工
  • 权限按角色最小化授予,操作留日志
  • 涉及个人信息的功能按《个人信息保护法》要求做告知与最小必要采集
  • 交付前做功能自测与上线回滚预案

执行什么标准、依据什么规范

软件过程依据 **GB/T 8566-2022《系统与软件工程 软件生存周期过程》**(2022-10-14 发布、2023-05-01 实施,采用国际标准)。

质量模型参考 **GB/T 25000.10-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第 10 部分:系统与软件质量模型》**。

合规:涉及个人信息处理的,遵循《中华人民共和国个人信息保护法》与《数据安全法》;**具体条文以官方正式文本为准**。

**软件交付没有可以套用的「国家标准号」验收表**:按双方确认的需求文档与接口文档验收,这是行业通行做法。

Эх сурвалж (стандарт, дүрмийн хуудас)

服务级别(SLA)口径与可用性换算

可用性的通用定义是 **A = MTBF ÷ (MTBF + MTTR)**(平均无故障时间 ÷(平均无故障时间 + 平均修复时间))。**它的意义在于把「稳定」变成可约定的数字**:只写「系统要稳定」等于没约定。

**常见可用性目标对应的允许不可用时长(按 365 天/年、30 天/月计算)**:

  • 99%(两个 9)→ 每年约 87.6 小时、每月约 7.3 小时
  • 99.9%(三个 9)→ 每年约 8.76 小时、每月约 43.8 分钟
  • 99.99%(四个 9)→ 每年约 52.6 分钟、每月约 4.4 分钟
  • 算例:MTBF = 2000 小时、MTTR = 4 小时 → A = 2000 ÷ 2004 ≈ 99.80%,即年停机约 17.5 小时,**达不到 99.9%**——这说明「提高可用性」要么延长 MTBF,要么压缩 MTTR,两者都要投钱
  • **约定 SLA 时必须写清统计口径**:是按月还是按年、是否扣除计划维护窗口、以什么监控数据为准。口径不清的 SLA 在争议时无法执行。

需求与接口怎么定

需求阶段的目标是把「要什么」写成可验证的条目,而不是一段描述性文字。需求清单建议逐条包含:使用角色与权限、涉及的数据项与字段含义、主要操作流程与页面路径、异常与边界处理(数据为空、重复提交、并发修改、权限不足)、以及这一条的验收标准。凡是无法写成「输入什么、期望输出什么」的条目,都说明还没谈清楚,应继续澄清而不是先开工。

接口契约要在开发前定稿,内容包括:接口地址与调用方式、请求与响应字段及类型、必填与选填、错误码与错误语义、分页与限流约定、鉴权方式、以及超时与重试策略。对接第三方系统时,先确认对方是否提供开放接口、接口的版本与稳定性、调用频次与数据使用边界;没有开放接口而只能读数据库或抓页面时,要明确这种方式的稳定性风险与责任边界,并写进合同。

变更要走流程:任何需求或接口变更都应以书面变更单提出,写明变更内容、影响范围(是否影响已完成的开发与测试)、工期与费用影响,双方确认后再进入开发。实践中返工最集中的环节不是写代码,而是接口字段口径中途变化——口头或聊天记录里说的改动,不应直接进入开发。

  • 需求清单逐条可验证,带验收标准,不写无法验证的形容词
  • 接口契约先定稿再开发,字段类型、错误码、鉴权与超时一并写清
  • 第三方系统的开放程度与数据责任边界在合同阶段确认
  • 需求与接口变更走书面变更单,评估工期与费用影响后再实施

Эх сурвалж (стандарт, дүрмийн хуудас)

上线与回滚

上线不是把代码推上去就结束,而是一次有预案、有责任人、可回退的变更。上线前要明确四个要素:回滚点(回滚到哪个版本、回滚包或镜像放在哪里、由谁执行)、变更窗口与影响范围(哪些功能会短暂不可用)、验证清单(上线后按什么顺序验证哪些关键功能)、以及决策人(出现异常时由谁决定回滚还是继续)。

回滚不只是回退程序,还要考虑数据。数据库结构变更通常不可逆:加字段一般可回滚,改字段类型、删除字段、数据清洗则难以还原。可行的做法是先备份、再执行变更脚本,并把变更脚本与回退脚本成对准备(能回退的写回退脚本,不能回退的在方案里明确标注并提前告知);涉及数据的操作禁止手工在正式库里直接改,必须通过脚本执行并留记录。

责任分工要落实到人:谁做备份、谁执行脚本、谁验证功能、谁有权决定回滚。上线后应保留一段观察期,重点看错误日志、关键接口成功率与业务数据是否正常。常见问题是在上线窗口内匆匆执行完数据库变更,却没有预留回滚时间——变更本身要控制在窗口能够覆盖的范围内,超出就拆成多次上线。

  • 每个版本上线前确定回滚点、回滚包位置与回滚执行人
  • 数据库结构变更先备份,变更脚本与回退脚本成对准备
  • 禁止在正式库手工改数据,所有变更通过脚本执行并留记录
  • 上线后设观察期,按验证清单逐项确认关键功能与日志

Эх сурвалж (стандарт, дүрмийн хуудас)

常见问题与避坑

没有验收标准:需求只写「实现订单管理功能」,没有可执行的验收清单,交付时双方各自理解「做完了」,最后靠扯皮收尾。可行的办法是把验收标准写到条目级,并在开发过程中同步维护一份验收用例,交付前双方按用例逐条走。

权限过大:为了赶工期,账号直接给管理员权限,或者把权限判断只做在前端。正确做法是后端强制鉴权、按角色最小化授予、敏感操作二次确认并留操作日志。日志缺失:只记录异常不记录关键业务操作,出问题时无法还原「谁在什么时候改了什么」。日志要覆盖登录、权限变更、数据修改与接口调用失败等关键事件。

只写「有预案」:文档里写着「有备份、有预案」,却没写备份多久做一次、存在哪里、谁负责恢复、恢复需要多久,也没有做过一次恢复演练。这样的预案在真正故障时无法执行。同理,回滚预案要写明回滚判定条件与决策人,而不是只写「必要时回滚」。

  • 验收标准条目化,交付前按验收用例逐条走一遍
  • 后端强制鉴权、按角色最小化授权,敏感操作留日志
  • 日志覆盖登录、权限变更、数据修改与接口失败等关键事件
  • 备份与回滚预案写明频率、位置、责任人与恢复演练情况

Эх сурвалж (стандарт, дүрмийн хуудас)

Бусад чадвар

Cookie ба нууцлалын тухай

Энэ сайт хэлний тохиргоог санах, нэвтрэлтийг хадгалах, нийтлэлийн уншилтыг тоолох зорилгоор цөөн тооны зайлшгүй cookie болон хөтчийн локал сан ашиглана. Гуравдагч талын зар сурталчилгаа, сайт хоорондын мөрдөлт байхгүй. Хүссэн үедээ хөтчөөс устгаж болно.

Cookie бодлого унших