[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-offline-deployment-notes-zh-CN":3,"blog-adjacent-offline-deployment-notes-zh-CN":29,"blog-related-offline-deployment-notes-zh-CN":63},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":28},42,"offline-deployment-notes","局域网离线部署的注意事项","工厂、政务和大企业内部网络常常不能访问互联网，部署方式要为此重新设计。","\u003Cp>第一次做离线部署时，我们按常规流程打包上线，结果在客户现场卡了一整天：依赖装不上、字体加载失败、地图不显示。离线环境需要一套完全不同的准备清单。\u003C\u002Fp>\n\u003Ch2>上线前必须确认的六件事\u003C\u002Fh2>\n\u003Cp>操作系统版本与 CPU 架构，尤其是国产化环境，镜像和依赖是否匹配。\u003C\u002Fp>\n\u003Cp>数据库与中间件由谁提供、版本是多少、是否有管理员账号。\u003C\u002Fp>\n\u003Cp>所有依赖离线包是否齐全，包括语言运行时、字体、地图瓦片和前端静态资源。\u003C\u002Fp>\n\u003Cp>时间同步与证书：内网时钟偏差会导致 token 校验失败。\u003C\u002Fp>\n\u003Cp>日志与备份目录是否有足够空间和权限。\u003C\u002Fp>\n\u003Cp>现场是否有可用的远程协助渠道，还是只能电话沟通。\u003C\u002Fp>\n\u003Ch2>我们现在的做法\u003C\u002Fh2>\n\u003Cp>所有依赖提前打包成一个可离线安装的介质，交付前在干净环境里完整演练一次。\u003C\u002Fp>\n\u003Cp>部署脚本自带检查项，缺什么直接报错并给出说明，避免现场靠猜。\u003C\u002Fp>\n\u003Cp>离线部署考验的不是技术深度，而是准备是否充分。清单写得越细，现场就越从容。\u003C\u002Fp>","","slate","佳益方圆团队","2026-05-26T13:36:00+08:00",1,false,[16,17,18],"部署","离线环境","交付",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},0,"engineering","技术专栏","架构设计、性能优化、AI 集成与跨端方案等一线技术实践，由研发团队持续分享。","cpu","blue","article",60,{},{"previous":30,"next":45},{"id":31,"slug":32,"title":33,"excerpt":34,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":13,"featured":14,"tags":37,"category":38},21,"seven-years-what-changed","七年，我们改变了什么","从三个人到二十人，从什么单都接到知道自己擅长什么，变化比想象中慢，也比想象中扎实。","cyan","2026-05-28T12:23:00+08:00",[],{"id":39,"parentId":20,"slug":40,"name":41,"description":42,"icon":43,"cover":9,"tone":25,"kind":26,"sortOrder":44,"count":20},6,"founder-notes","创业手记","创始团队在经营、管理与产品上的思考，记录一家软件公司的成长过程。","pen-tool",10,{"id":46,"slug":47,"title":48,"excerpt":49,"content":9,"cover":9,"tone":50,"author":11,"publishedAt":51,"updatedAt":51,"readingMinutes":13,"featured":14,"tags":52,"category":56},62,"cheap-usability-testing","可用性测试的廉价做法","不需要实验室和眼动仪，五个人、一台电脑、一小时，就能发现大部分问题。","teal","2026-05-24T13:36:00+08:00",[53,54,55],"可用性","用户研究","产品方法",{"id":57,"parentId":20,"slug":58,"name":59,"description":60,"icon":61,"cover":9,"tone":25,"kind":26,"sortOrder":62,"count":20},2,"product-thinking","产品思维","需求分析、用户体验与产品设计方法论，以及从业务问题到产品方案的思考过程。","lightbulb",50,[64,75,86],{"id":65,"slug":66,"title":67,"excerpt":68,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":69,"updatedAt":69,"readingMinutes":13,"featured":14,"tags":70,"category":74},30,"integration-api-pitfalls","企业系统集成：接口对接最容易踩的五个坑","接口文档写得再全，真正对接时仍然会卡在字段约定、超时和重复推送这些细节上。","2026-10-17T09:00:00+08:00",[71,72,73],"系统集成","接口","工程实践",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":13,"slug":76,"title":77,"excerpt":78,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":79,"updatedAt":80,"readingMinutes":57,"featured":81,"tags":82,"category":85},"why-enterprise-systems-age","为什么企业系统会在三年后开始“老化”","系统上线时功能齐全，三年后却处处别扭。问题往往不在代码，而在交付时被忽略的那些变化。","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[83,84],"系统演进","架构设计",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":87,"slug":88,"title":89,"excerpt":90,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":91,"updatedAt":91,"readingMinutes":13,"featured":14,"tags":92,"category":96},31,"idempotent-design-basics","幂等设计：重复提交不只是用户手抖","网络重试、消息重投、用户连点，都会让同一个请求到达多次。幂等应该设计在接口里。","2026-10-05T10:13:00+08:00",[93,94,95],"接口设计","幂等","可靠性",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20}]