[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-miniapp-performance-en":3,"blog-adjacent-miniapp-performance-en":29,"blog-related-miniapp-performance-en":66},{"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},48,"miniapp-performance","Mini Program Performance: Trade-offs for a One-Second First Screen","Mini programs have bundle limits and platform startup costs, so first-screen work is about trade-offs, not tricks.","\u003Cp>Every client asks for the same thing: it must open fast. Mini programs cap the main bundle and start through the platform layer, so the options are finite. We sort the work into three buckets by return.\u003C\u002Fp>\n\u003Ch2>Three kinds of optimisation\u003C\u002Fh2>\n\u003Cp>Fewer first-screen dependencies: the main bundle holds only the home page and shared components, other pages load as subpackages, and images go through a CDN compressed.\u003C\u002Fp>\n\u003Cp>Fewer requests: merge home APIs into one call returning only first-screen fields, and load lists on scroll.\u003C\u002Fp>\n\u003Cp>Cheaper rendering: avoid deep nesting and repeated nodes; use virtual scrolling for long lists.\u003C\u002Fp>\n\u003Ch2>Details that get missed\u003C\u002Fh2>\n\u003Cp>Synchronous work at startup blocks rendering; defer every initialisation that can wait.\u003C\u002Fp>\n\u003Cp>A skeleton screen reduces perceived waiting better than a spinner, but it must match the real layout.\u003C\u002Fp>\n\u003Cp>Test on weak networks. Many issues only appear at 3G speeds.\u003C\u002Fp>\n\u003Cp>Optimising a mini program&#39;s first screen is mostly about cutting requirements, not stacking techniques. Do one thing first and it gets noticeably faster.\u003C\u002Fp>","","cyan","佳益方圆团队","2026-03-15T11:54:00+08:00",1,false,[16,17,18],"Mini Program","Performance","Frontend",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},0,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu","blue","article",60,{},{"previous":30,"next":48},{"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":41},27,"office-move-notes","Notes From Moving Offices","Moving from an apartment to an office building changes more than furniture; it changes how the team works.","slate","2026-03-17T10:41:00+08:00",[38,39,40],"Startup","Team","Office",{"id":42,"parentId":20,"slug":43,"name":44,"description":45,"icon":46,"cover":9,"tone":25,"kind":26,"sortOrder":47,"count":20},6,"founder-notes","Founder Notes","Reflections from the founding team on business, management and product, documenting the growth of a software company.","pen-tool",10,{"id":49,"slug":50,"title":51,"excerpt":52,"content":9,"cover":9,"tone":53,"author":11,"publishedAt":54,"updatedAt":54,"readingMinutes":13,"featured":14,"tags":55,"category":59},68,"onboarding-design","Onboarding: Make the First Use Successful","The goal is not to introduce every feature, but to get the user through one task with a real outcome.","teal","2026-03-13T11:54:00+08:00",[56,57,58],"Onboarding","New Users","Product Design",{"id":60,"parentId":20,"slug":61,"name":62,"description":63,"icon":64,"cover":9,"tone":25,"kind":26,"sortOrder":65,"count":20},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,[67,77,88],{"id":68,"slug":69,"title":70,"excerpt":71,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":72,"updatedAt":72,"readingMinutes":13,"featured":14,"tags":73,"category":76},30,"integration-api-pitfalls","Five Traps in Enterprise System Integration","However complete the API documentation is, integration usually stalls on field semantics, timeouts and repeated pushes.","2026-10-17T09:00:00+08:00",[74,75,22],"Integration","APIs",{"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":78,"title":79,"excerpt":80,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":81,"updatedAt":82,"readingMinutes":60,"featured":83,"tags":84,"category":87},"why-enterprise-systems-age","Why Enterprise Systems Start to Age After Three Years","A system can pass acceptance with every feature checked, then feel awkward three years later. The problem is rarely the code — it is the changes that were never considered at delivery.","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[85,86],"System Evolution","Architecture",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":89,"slug":90,"title":91,"excerpt":92,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":93,"updatedAt":93,"readingMinutes":13,"featured":14,"tags":94,"category":98},31,"idempotent-design-basics","Idempotency: Duplicate Submissions Are Not Just Double Clicks","Retries, redelivery and impatient users all send the same request more than once. Idempotency belongs in the API design.","2026-10-05T10:13:00+08:00",[95,96,97],"API Design","Idempotency","Reliability",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20}]