[{"data":1,"prerenderedAt":537},["ShallowReactive",2],{"post-miniapp-cost-guide":3,"posts-all-miniapp-cost-guide":149},{"id":4,"title":5,"body":6,"category":135,"cover":136,"date":137,"description":138,"extension":139,"meta":140,"navigation":141,"path":142,"seo":143,"stem":144,"tags":145,"__hash__":148},"posts\u002Fblog\u002Fminiapp-cost-guide.md","小程序开发成本到底多少？一份真实的报价拆解",{"type":7,"value":8,"toc":127},"minimark",[9,13,17,40,43,99,102,117,120],[10,11,12],"h2",{"id":12},"为什么小程序报价差距这么大",[14,15,16],"p",{},"同样一句\"做个商城小程序\"，有人报 5 千，有人报 5 万。差距来自三个变量：",[18,19,20,28,34],"ol",{},[21,22,23,27],"li",{},[24,25,26],"strong",{},"功能复杂度","：展示型 vs 交易型，差了不止一个量级",[21,29,30,33],{},[24,31,32],{},"后台管理","：要不要管理端，决定工作量翻倍",[21,35,36,39],{},[24,37,38],{},"对接成本","：支付、物流、第三方系统，每个接口都要钱和时间",[10,41,42],{"id":42},"一份真实的报价区间参考",[44,45,46,62],"table",{},[47,48,49],"thead",{},[50,51,52,56,59],"tr",{},[53,54,55],"th",{},"类型",[53,57,58],{},"周期",[53,60,61],{},"参考报价",[63,64,65,77,88],"tbody",{},[50,66,67,71,74],{},[68,69,70],"td",{},"展示型小程序",[68,72,73],{},"2-4 周",[68,75,76],{},"0.5 - 1.5 万",[50,78,79,82,85],{},[68,80,81],{},"商城 + 支付",[68,83,84],{},"4-8 周",[68,86,87],{},"2 - 5 万",[50,89,90,93,96],{},[68,91,92],{},"交易 + 复杂业务",[68,94,95],{},"8-16 周",[68,97,98],{},"5 万起",[10,100,101],{"id":101},"给需求方的建议",[103,104,105,111,114],"ul",{},[21,106,107,108],{},"不要只比价格，要对比",[24,109,110],{},"案例 + 服务流程 + 售后",[21,112,113],{},"需求文档写得越细，报价越准确，双方越省心",[21,115,116],{},"确认是否包含：UI 设计、苹果安卓两端、服务器、上线审核、售后维护",[10,118,119],{"id":119},"给接单同行的建议",[14,121,122,123,126],{},"报价前一定要把",[24,124,125],{},"需求边界","写清楚，哪些包含、哪些不包含，避免后期扯皮。合理的报价 = 功能 + 人力 + 风险 + 合理利润。",{"title":128,"searchDepth":129,"depth":129,"links":130},"",2,[131,132,133,134],{"id":12,"depth":129,"text":12},{"id":42,"depth":129,"text":42},{"id":101,"depth":129,"text":101},{"id":119,"depth":129,"text":119},"接单经验","https:\u002F\u002Fcoresg-normal.trae.ai\u002Fapi\u002Fide\u002Fv1\u002Ftext_to_image?prompt=mini%20program%20development%20cost%20analysis%2C%20price%20tags%20and%20timeline%20chart%2C%20modern%20flat%20illustration%2C%20blue%20and%20navy&image_size=landscape_16_9","2025-09","很多人问\"做个小程序多少钱\"，答案从几千到几十万都有。这篇文章用真实案例拆解影响报价的核心因素。","md",{},true,"\u002Fblog\u002Fminiapp-cost-guide",{"title":5,"description":138},"blog\u002Fminiapp-cost-guide",[146,147],"小程序","报价","NWs4paQ5PsebZBJJDwmRSvLRTS1r41bf46sPgS2ljY0",[150,282,370],{"id":151,"title":152,"body":153,"category":269,"cover":270,"date":271,"description":272,"extension":139,"meta":273,"navigation":141,"path":274,"seo":275,"stem":276,"tags":277,"__hash__":281},"posts\u002Fblog\u002Fenterprise-website-guide.md","从 0 到 1 搭建企业官网：技术选型与避坑指南",{"type":7,"value":154,"toc":263},[155,159,162,173,179,183,233,238,242,256,260],[10,156,158],{"id":157},"一先想清楚这个官网要解决什么问题","一、先想清楚：这个官网要解决什么问题",[14,160,161],{},"很多企业主做官网时只会说\"做个好看的页面\"，但作为开发者，第一步永远是问清楚目的：",[103,163,164,167,170],{},[21,165,166],{},"是品牌展示，还是获客转化？",[21,168,169],{},"需要后台管理内容吗？",[21,171,172],{},"目标用户是搜索引擎流量，还是直接访问？",[14,174,175,178],{},[24,176,177],{},"避坑","：不要一上来就选重型框架。一个纯展示站用静态生成就够了，没必要引入数据库和后台。",[10,180,182],{"id":181},"二技术选型建议","二、技术选型建议",[44,184,185,198],{},[47,186,187],{},[50,188,189,192,195],{},[53,190,191],{},"场景",[53,193,194],{},"推荐",[53,196,197],{},"理由",[63,199,200,211,222],{},[50,201,202,205,208],{},[68,203,204],{},"纯展示站",[68,206,207],{},"Nuxt\u002FVuePress 静态生成",[68,209,210],{},"快、SEO 好、无运维成本",[50,212,213,216,219],{},[68,214,215],{},"需要内容更新",[68,217,218],{},"Nuxt + 内容管理",[68,220,221],{},"Markdown 驱动，改文不改码",[50,223,224,227,230],{},[68,225,226],{},"需要后台",[68,228,229],{},"Next\u002FNuxt + Headless CMS",[68,231,232],{},"内容与代码解耦",[14,234,235,237],{},[24,236,177],{},"：国内访问务必注意字体与 CDN 的可用性，Google Fonts 经常加载失败，建议自托管。",[10,239,241],{"id":240},"三部署与-seo-的关键点","三、部署与 SEO 的关键点",[18,243,244,247,250,253],{},[21,245,246],{},"国内服务器必须 ICP 备案，提前 1-3 周准备",[21,248,249],{},"强制 HTTPS，配置 301 跳转",[21,251,252],{},"生成 sitemap 并提交百度站长平台",[21,254,255],{},"每个页面单独写 title 与 description，不要全站共用",[10,257,259],{"id":258},"四总结","四、总结",[14,261,262],{},"企业官网的核心是\"清晰 + 快\"。技术选型围绕内容更新频率来决定，能静态就不要动态。这篇文章里的方案已经过 10+ 个项目验证，希望对你有帮助。",{"title":128,"searchDepth":129,"depth":129,"links":264},[265,266,267,268],{"id":157,"depth":129,"text":158},{"id":181,"depth":129,"text":182},{"id":240,"depth":129,"text":241},{"id":258,"depth":129,"text":259},"前端","https:\u002F\u002Fcoresg-normal.trae.ai\u002Fapi\u002Fide\u002Fv1\u002Ftext_to_image?prompt=web%20development%20technology%20stack%20illustration%2C%20code%20snippets%20and%20gear%20wheels%2C%20navy%20blue%20color%20palette%2C%20flat%20design&image_size=landscape_16_9","2025-11","企业官网看似简单，但技术选型、SEO、部署环节处处是坑。分享一套经过 10+ 个项目验证的选型方案。",{},"\u002Fblog\u002Fenterprise-website-guide",{"title":152,"description":272},"blog\u002Fenterprise-website-guide",[278,279,280],"Vue","Nuxt","SEO","N_yyD626PKk5RUWpGOaWNrYl2PtOrITTiGaypHDuW5Y",{"id":4,"title":5,"body":283,"category":135,"cover":136,"date":137,"description":138,"extension":139,"meta":367,"navigation":141,"path":142,"seo":368,"stem":144,"tags":369,"__hash__":148},{"type":7,"value":284,"toc":361},[285,287,289,303,305,343,345,355,357],[10,286,12],{"id":12},[14,288,16],{},[18,290,291,295,299],{},[21,292,293,27],{},[24,294,26],{},[21,296,297,33],{},[24,298,32],{},[21,300,301,39],{},[24,302,38],{},[10,304,42],{"id":42},[44,306,307,317],{},[47,308,309],{},[50,310,311,313,315],{},[53,312,55],{},[53,314,58],{},[53,316,61],{},[63,318,319,327,335],{},[50,320,321,323,325],{},[68,322,70],{},[68,324,73],{},[68,326,76],{},[50,328,329,331,333],{},[68,330,81],{},[68,332,84],{},[68,334,87],{},[50,336,337,339,341],{},[68,338,92],{},[68,340,95],{},[68,342,98],{},[10,344,101],{"id":101},[103,346,347,351,353],{},[21,348,107,349],{},[24,350,110],{},[21,352,113],{},[21,354,116],{},[10,356,119],{"id":119},[14,358,122,359,126],{},[24,360,125],{},{"title":128,"searchDepth":129,"depth":129,"links":362},[363,364,365,366],{"id":12,"depth":129,"text":12},{"id":42,"depth":129,"text":42},{"id":101,"depth":129,"text":101},{"id":119,"depth":129,"text":119},{},{"title":5,"description":138},[146,147],{"id":371,"title":372,"body":373,"category":524,"cover":525,"date":526,"description":527,"extension":139,"meta":528,"navigation":141,"path":529,"seo":530,"stem":531,"tags":532,"__hash__":536},"posts\u002Fblog\u002Fpitfalls-10.md","中小软件项目的 10 个技术踩坑记录",{"type":7,"value":374,"toc":511},[375,379,394,398,409,413,421,425,433,437,445,449,457,461,469,473,481,485,493,497,505,508],[10,376,378],{"id":377},"_1-并发扣库存先锁后查","1. 并发扣库存：先锁后查",[14,380,381,384,385,388,389,393],{},[24,382,383],{},"坑","：先查询库存再判断，超卖事故。\n",[24,386,387],{},"解法","：",[390,391,392],"code",{},"UPDATE ... SET stock = stock - 1 WHERE stock > 0","，用原子操作 + 影响行数判断。",[10,395,397],{"id":396},"_2-慢查询索引失效的常见原因","2. 慢查询：索引失效的常见原因",[14,399,400,388,402,405,406,408],{},[24,401,383],{},[390,403,404],{},"LIKE '%keyword%'"," 前缀模糊导致全表扫描。\n",[24,407,387],{},"：业务上改为前缀匹配，或引入 ES；必要时用覆盖索引。",[10,410,412],{"id":411},"_3-时区问题永远存-utc","3. 时区问题：永远存 UTC",[14,414,415,417,418,420],{},[24,416,383],{},"：直接存东八区字符串，跨平台解析乱套。\n",[24,419,387],{},"：数据库统一 UTC，展示层再转本地时区。",[10,422,424],{"id":423},"_4-上传文件务必做类型校验","4. 上传文件：务必做类型校验",[14,426,427,429,430,432],{},[24,428,383],{},"：只看扩展名放行，被上传了 web shell。\n",[24,431,387],{},"：校验 MIME + 魔数 + 重命名存储 + 独立静态域。",[10,434,436],{"id":435},"_5-配置管理敏感信息不进代码仓库","5. 配置管理：敏感信息不进代码仓库",[14,438,439,441,442,444],{},[24,440,383],{},"：数据库密码写死在代码里，仓库泄露全完。\n",[24,443,387],{},"：环境变量 + 密钥管理服务，.env 不进 git。",[10,446,448],{"id":447},"_6-定时任务防重复执行","6. 定时任务：防重复执行",[14,450,451,453,454,456],{},[24,452,383],{},"：多实例部署后定时任务重复跑，产生重复数据。\n",[24,455,387],{},"：分布式锁（Redis SETNX + 过期时间）。",[10,458,460],{"id":459},"_7-第三方接口必须做超时与重试","7. 第三方接口：必须做超时与重试",[14,462,463,465,466,468],{},[24,464,383],{},"：调用支付接口不设超时，接口挂了页面一直转圈。\n",[24,467,387],{},"：统一 HTTP 客户端，设置连接\u002F读取超时 + 幂等重试。",[10,470,472],{"id":471},"_8-日志关键节点必须留痕","8. 日志：关键节点必须留痕",[14,474,475,477,478,480],{},[24,476,383],{},"：线上出问题查不到上下文，只能靠猜。\n",[24,479,387],{},"：请求 ID 贯穿全链路，关键操作打印结构化日志。",[10,482,484],{"id":483},"_9-数据库连接池用完必还","9. 数据库连接池：用完必还",[14,486,487,489,490,492],{},[24,488,383],{},"：连接未释放，连接池耗尽服务假死。\n",[24,491,387],{},"：使用 ORM\u002F连接池管理，禁止手写裸连接不关闭。",[10,494,496],{"id":495},"_10-备份先演练恢复","10. 备份：先演练恢复",[14,498,499,501,502,504],{},[24,500,383],{},"：有备份但从没演练过，真出事时恢复失败。\n",[24,503,387],{},"：定期做恢复演练，备份文件异地存储。",[10,506,507],{"id":507},"写在最后",[14,509,510],{},"这 10 条几乎都是\"看起来很简单，出事很严重\"的典型。小项目更要注重基本功，把这些变成肌肉记忆。",{"title":128,"searchDepth":129,"depth":129,"links":512},[513,514,515,516,517,518,519,520,521,522,523],{"id":377,"depth":129,"text":378},{"id":396,"depth":129,"text":397},{"id":411,"depth":129,"text":412},{"id":423,"depth":129,"text":424},{"id":435,"depth":129,"text":436},{"id":447,"depth":129,"text":448},{"id":459,"depth":129,"text":460},{"id":471,"depth":129,"text":472},{"id":483,"depth":129,"text":484},{"id":495,"depth":129,"text":496},{"id":507,"depth":129,"text":507},"踩坑记录","https:\u002F\u002Fcoresg-normal.trae.ai\u002Fapi\u002Fide\u002Fv1\u002Ftext_to_image?prompt=developer%20debugging%20bug%20fix%20concept%2C%20magnifying%20glass%20over%20code%2C%20warning%20signs%20and%20checkmarks%2C%20flat%20illustration%20navy%20blue&image_size=landscape_16_9","2025-07","汇总近三年中小项目中反复踩到的技术坑：从并发扣库存到慢查询优化，每一条都对应真实生产事故。",{},"\u002Fblog\u002Fpitfalls-10",{"title":372,"description":527},"blog\u002Fpitfalls-10",[533,534,535],"后端","数据库","运维","jlZmmrp4tG6U2To7vrceflGkT-5CBv79K44aBtd2EM4",1786005259838]