[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-migration-three-runs-zh-CN":3,"blog-related-migration-three-runs-zh-CN":30,"blog-adjacent-migration-three-runs-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":29},82,"migration-three-runs","数据迁移复盘：十万条数据的三次重跑","第一次跑出错，第二次跑对不上数，第三次才通过。每次失败都暴露了不同的问题。","\u003Cp>这是一个旧系统替换项目，需要迁移十万条客户与合同数据。原计划两天完成，实际用了十天，但最终上线时数据零差异。\u003C\u002Fp>\n\u003Ch2>三次失败的原因\u003C\u002Fh2>\n\u003Cp>第一次：字符集不一致，部分中文客户名称变成乱码。源库是 latin1，目标库是 utf8mb4。\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>\n\u003Cp>迁移时间几乎总是被低估。把核对脚本当成第一优先级，比优化迁移速度更重要。\u003C\u002Fp>","","teal","佳益方圆团队","2026-05-22T13:36:00+08:00",1,false,[16,17,18],"复盘","数据迁移","老系统",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},3,0,"project-retrospective","项目复盘","从 0 到 1 的真实项目记录，完整呈现问题、方案、踩坑经验与最终结果。","clipboard-check","blue","article",40,{},[31,42,53],{"id":32,"slug":33,"title":34,"excerpt":35,"content":9,"cover":9,"tone":36,"author":11,"publishedAt":37,"updatedAt":37,"readingMinutes":13,"featured":14,"tags":38,"category":41},70,"gov-project-acceptance","政务项目复盘：验收为什么拖了半年","功能早已上线，验收却迟迟没有完成。问题往往不在系统，而在文档、流程和沟通节奏。","indigo","2026-10-13T09:00:00+08:00",[16,39,40],"政务项目","验收",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":43,"slug":44,"title":45,"excerpt":46,"content":9,"cover":9,"tone":47,"author":11,"publishedAt":48,"updatedAt":48,"readingMinutes":13,"featured":14,"tags":49,"category":52},71,"mes-integration-retro","制造企业 MES 对接复盘","系统对接最难的部分不是接口，而是让两个部门对同一个字段达成一致。","cyan","2026-10-01T10:13:00+08:00",[16,50,51],"制造业","系统集成",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"id":54,"slug":55,"title":56,"excerpt":57,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":58,"updatedAt":58,"readingMinutes":13,"featured":14,"tags":59,"category":62},72,"cross-border-site-retro","跨境独立站复盘：流量到了，转化没到","网站上线后广告投放正常，询盘却很少。复盘发现，问题集中在信任和填写成本上。","2026-09-19T11:26:00+08:00",[16,60,61],"跨境","转化",{"id":20,"parentId":21,"slug":22,"name":23,"description":24,"icon":25,"cover":9,"tone":26,"kind":27,"sortOrder":28,"count":21},{"previous":64,"next":81},{"id":65,"slug":66,"title":67,"excerpt":68,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":69,"updatedAt":69,"readingMinutes":13,"featured":14,"tags":70,"category":74},62,"cheap-usability-testing","可用性测试的廉价做法","不需要实验室和眼动仪，五个人、一台电脑、一小时，就能发现大部分问题。","2026-05-24T13:36:00+08:00",[71,72,73],"可用性","用户研究","产品方法",{"id":75,"parentId":21,"slug":76,"name":77,"description":78,"icon":79,"cover":9,"tone":26,"kind":27,"sortOrder":80,"count":21},2,"product-thinking","产品思维","需求分析、用户体验与产品设计方法论，以及从业务问题到产品方案的思考过程。","lightbulb",50,{"id":82,"slug":83,"title":84,"excerpt":85,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":86,"updatedAt":86,"readingMinutes":13,"featured":14,"tags":87,"category":91},101,"who-joins-client-visits","谁该去见客户","不是只有销售和项目经理能见客户，开发者见客户的价值被低估了。","2026-05-20T13:36:00+08:00",[88,89,90],"团队文化","客户沟通","需求",{"id":92,"parentId":21,"slug":93,"name":94,"description":95,"icon":96,"cover":9,"tone":26,"kind":27,"sortOrder":97,"count":21},4,"team-culture","团队动态","公司活动、技术分享、团建与招聘文化，了解佳益方圆团队的日常。","users",30]