[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-categories-zh-CN":3,"blog-index-engineering-2-zh-CN":56,"blog-all-posts-zh-CN":157},[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":40,"pageSize":58,"total":55,"list":59},"zh-CN",9,[60,73,83,94,105,116,125,135,146],{"id":61,"slug":62,"title":63,"excerpt":64,"content":11,"cover":11,"tone":45,"author":65,"publishedAt":66,"updatedAt":66,"readingMinutes":49,"featured":67,"tags":68,"category":72},35,"frontend-monitoring-basics","前端监控：等白屏了才知道","用户不会告诉你页面打不开，他们只会离开。前端监控应该在上线前就位。","佳益方圆团队","2026-08-18T14:05:00+08:00",false,[69,70,71],"前端","监控","运维",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":74,"slug":75,"title":76,"excerpt":77,"content":11,"cover":11,"tone":22,"author":65,"publishedAt":78,"updatedAt":78,"readingMinutes":49,"featured":67,"tags":79,"category":82},36,"gray-release-for-smb","中小项目怎么做灰度发布","没有庞大的基础设施，也可以用简单办法把发布风险降到可控。","2026-08-06T15:18:00+08:00",[80,71,81],"发布","风险控制",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":84,"slug":85,"title":86,"excerpt":87,"content":11,"cover":11,"tone":29,"author":65,"publishedAt":88,"updatedAt":88,"readingMinutes":49,"featured":67,"tags":89,"category":93},37,"excel-export-performance","报表导出为什么这么慢","十万行数据导出卡死浏览器，问题往往不在生成文件，而在查询和内存使用方式。","2026-07-25T16:31:00+08:00",[90,91,92],"报表","导出","性能",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":95,"slug":96,"title":97,"excerpt":98,"content":11,"cover":11,"tone":37,"author":65,"publishedAt":99,"updatedAt":99,"readingMinutes":49,"featured":67,"tags":100,"category":104},38,"message-queue-tradeoffs","消息队列不是万能药","引入队列能解决耦合和削峰，也会带来重复、顺序和可观测性三类新问题。","2026-07-13T09:44:00+08:00",[101,102,103],"架构","消息队列","工程实践",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":106,"slug":107,"title":108,"excerpt":109,"content":11,"cover":11,"tone":45,"author":65,"publishedAt":110,"updatedAt":110,"readingMinutes":49,"featured":67,"tags":111,"category":115},39,"legacy-data-migration","数据迁移：先把旧系统的账算清","迁移失败的原因通常不是技术，而是没人说得清旧数据里到底有什么。","2026-07-01T10:57:00+08:00",[112,113,114],"数据迁移","老系统","项目实践",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":38,"slug":117,"title":118,"excerpt":119,"content":11,"cover":11,"tone":22,"author":65,"publishedAt":120,"updatedAt":120,"readingMinutes":49,"featured":67,"tags":121,"category":124},"testing-on-a-budget","预算有限时，测试该测什么","没有专职测试团队，也要有测试策略。关键是把有限的精力放在出错代价最高的地方。","2026-06-19T11:10:00+08:00",[122,123,103],"测试","质量",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":126,"slug":127,"title":128,"excerpt":129,"content":11,"cover":11,"tone":12,"author":65,"publishedAt":130,"updatedAt":130,"readingMinutes":49,"featured":67,"tags":131,"category":134},41,"lightweight-code-review","小团队的代码评审怎么落地","评审不是找茬，而是让改动在合并前被第二个人理解。规模小也要有流程。","2026-06-07T12:23:00+08:00",[132,133,103],"代码评审","团队",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":136,"slug":137,"title":138,"excerpt":139,"content":11,"cover":11,"tone":45,"author":65,"publishedAt":140,"updatedAt":140,"readingMinutes":49,"featured":67,"tags":141,"category":145},42,"offline-deployment-notes","局域网离线部署的注意事项","工厂、政务和大企业内部网络常常不能访问互联网，部署方式要为此重新设计。","2026-05-26T13:36:00+08:00",[142,143,144],"部署","离线环境","交付",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6},{"id":147,"slug":148,"title":149,"excerpt":150,"content":11,"cover":11,"tone":29,"author":65,"publishedAt":151,"updatedAt":151,"readingMinutes":49,"featured":67,"tags":152,"category":156},43,"barcode-and-rfid-basics","扫码与标签：仓储数字化的第一步","很多仓储项目的起点不是系统，而是把每一件货变成一个可扫描的编号。","2026-05-14T14:49:00+08:00",[153,154,155],"仓储","条码","制造业",{"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":49,"total":158,"list":159},126,[160],{"id":30,"slug":161,"title":162,"excerpt":163,"content":11,"cover":11,"tone":22,"author":65,"publishedAt":164,"updatedAt":164,"readingMinutes":49,"featured":67,"tags":165,"category":168},"integration-api-pitfalls","企业系统集成：接口对接最容易踩的五个坑","接口文档写得再全，真正对接时仍然会卡在字段约定、超时和重复推送这些细节上。","2026-10-17T09:00:00+08:00",[166,167,103],"系统集成","接口",{"id":49,"parentId":6,"slug":50,"name":51,"description":52,"icon":53,"cover":11,"tone":12,"kind":13,"sortOrder":54,"count":6}]