[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-categories-zh-CN":3,"blog-all-posts-zh-CN":56,"blog-index-engineering-1-zh-CN":72},[4,16,23,31,39,48],{"id":5,"parentId":6,"slug":7,"name":8,"description":9,"icon":10,"cover":11,"tone":12,"kind":13,"sortOrder":14,"count":15},6,0,"founder-notes","创业手记","创始团队在经营、管理与产品上的思考，记录一家软件公司的成长过程。","pen-tool","","blue","article",10,20,{"id":17,"parentId":6,"slug":18,"name":19,"description":20,"icon":21,"cover":11,"tone":22,"kind":13,"sortOrder":15,"count":15},5,"industry-watch","行业观察","对互联网、软件与数字化行业趋势的深度分析，输出团队自己的判断。","globe","cyan",{"id":24,"parentId":6,"slug":25,"name":26,"description":27,"icon":28,"cover":11,"tone":29,"kind":13,"sortOrder":30,"count":15},4,"team-culture","团队动态","公司活动、技术分享、团建与招聘文化，了解佳益方圆团队的日常。","users","indigo",30,{"id":32,"parentId":6,"slug":33,"name":34,"description":35,"icon":36,"cover":11,"tone":37,"kind":13,"sortOrder":38,"count":15},3,"project-retrospective","项目复盘","从 0 到 1 的真实项目记录，完整呈现问题、方案、踩坑经验与最终结果。","clipboard-check","teal",40,{"id":40,"parentId":6,"slug":41,"name":42,"description":43,"icon":44,"cover":11,"tone":45,"kind":13,"sortOrder":46,"count":47},2,"product-thinking","产品思维","需求分析、用户体验与产品设计方法论，以及从业务问题到产品方案的思考过程。","lightbulb","slate",50,22,{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":55},1,"engineering","技术专栏","架构设计、性能优化、AI 集成与跨端方案等一线技术实践，由研发团队持续分享。","cpu",60,24,{"language":57,"page":49,"pageSize":49,"total":58,"list":59},"zh-CN",126,[60],{"id":30,"slug":61,"title":62,"excerpt":63,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":65,"updatedAt":65,"readingMinutes":49,"featured":66,"tags":67,"category":71},"integration-api-pitfalls","企业系统集成：接口对接最容易踩的五个坑","接口文档写得再全，真正对接时仍然会卡在字段约定、超时和重复推送这些细节上。","佳益方圆团队","2026-10-17T09:00:00+08:00",false,[68,69,70],"系统集成","接口","工程实践",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"language":57,"page":49,"pageSize":73,"total":55,"list":74},9,[75,78,89,100,110,121,132,141,151],{"id":30,"slug":61,"title":62,"excerpt":63,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":65,"updatedAt":65,"readingMinutes":49,"featured":66,"tags":76,"category":77},[68,69,70],{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":49,"slug":79,"title":80,"excerpt":81,"content":11,"cover":11,"tone":22,"author":64,"publishedAt":82,"updatedAt":83,"readingMinutes":40,"featured":84,"tags":85,"category":88},"why-enterprise-systems-age","为什么企业系统会在三年后开始“老化”","系统上线时功能齐全，三年后却处处别扭。问题往往不在代码，而在交付时被忽略的那些变化。","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[86,87],"系统演进","架构设计",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":90,"slug":91,"title":92,"excerpt":93,"content":11,"cover":11,"tone":12,"author":64,"publishedAt":94,"updatedAt":94,"readingMinutes":49,"featured":66,"tags":95,"category":99},31,"idempotent-design-basics","幂等设计：重复提交不只是用户手抖","网络重试、消息重投、用户连点，都会让同一个请求到达多次。幂等应该设计在接口里。","2026-10-05T10:13:00+08:00",[96,97,98],"接口设计","幂等","可靠性",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":32,"slug":101,"title":102,"excerpt":103,"content":11,"cover":11,"tone":12,"author":64,"publishedAt":104,"updatedAt":105,"readingMinutes":40,"featured":66,"tags":106,"category":109},"miniapp-or-app","小程序还是 App？先看业务发生在什么场景","技术偏好不该成为选型依据。低频与高频、分享与留存、能力边界，才是决定载体的关键。","2026-09-25T09:00:00+08:00","2026-10-18T15:58:14.677+08:00",[107,108],"移动端","技术选型",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":111,"slug":112,"title":113,"excerpt":114,"content":11,"cover":11,"tone":29,"author":64,"publishedAt":115,"updatedAt":115,"readingMinutes":49,"featured":66,"tags":116,"category":120},32,"rbac-to-data-permissions","权限模型：从角色控制到数据权限","多数后台的权限停在菜单和按钮层面，真正难的是让不同的人只看到自己该看的数据。","2026-09-23T11:26:00+08:00",[117,118,119],"权限","后台系统","架构",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":122,"slug":123,"title":124,"excerpt":125,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":126,"updatedAt":126,"readingMinutes":49,"featured":66,"tags":127,"category":131},33,"slow-query-first-steps","慢查询治理：先看执行计划再谈优化","加索引不是万能解药。没有执行计划，优化基本靠猜。","2026-09-11T12:39:00+08:00",[128,129,130],"数据库","性能","SQL",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":17,"slug":133,"title":134,"excerpt":135,"content":11,"cover":11,"tone":37,"author":64,"publishedAt":136,"updatedAt":137,"readingMinutes":49,"featured":66,"tags":138,"category":140},"ai-assist-enterprise-software","AI 进入企业软件：先从减少重复劳动开始","企业场景不需要“会聊天”的 AI，而需要能稳定分担重复工作、并且结果可追溯的助手。","2026-09-04T09:30:00+08:00","2026-10-18T15:58:14.704+08:00",[139,70],"AI 应用",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":142,"slug":143,"title":144,"excerpt":145,"content":11,"cover":11,"tone":12,"author":64,"publishedAt":146,"updatedAt":146,"readingMinutes":49,"featured":66,"tags":147,"category":150},34,"nuxt-ssr-cache-strategy","Nuxt SSR 的缓存与首屏速度","服务端渲染不等于快。首屏速度取决于数据请求的组织方式，而不是渲染模式本身。","2026-08-30T13:52:00+08:00",[148,149,129],"Nuxt","SSR",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":5,"slug":152,"title":153,"excerpt":154,"content":11,"cover":11,"tone":29,"author":64,"publishedAt":155,"updatedAt":156,"readingMinutes":49,"featured":66,"tags":157,"category":160},"design-handoff-contract","从设计稿到设计系统：和研发协作的三个约定","间距不一致、状态没覆盖、组件重复实现，往往不是态度问题，而是没有写下共同约定。","2026-08-28T10:00:00+08:00","2026-10-18T15:58:14.717+08:00",[158,159],"设计系统","团队协作",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6}]