[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"rainink-post-reading-2026-h1":3,"rainink-content-index":189},{"id":4,"title":5,"body":6,"category":173,"cover":174,"date":175,"description":176,"draft":177,"extension":178,"featured":177,"lang":174,"meta":179,"navigation":180,"order":174,"path":181,"period":174,"pinned":177,"repo":174,"seo":182,"slug":174,"stack":174,"stem":183,"tags":184,"thumb":174,"toc":180,"updated":174,"__hash__":188},"content\u002Fposts\u002Freading-2026-h1.md","上半年读书清单：几本反复翻的技术书",{"type":7,"value":8,"toc":160},"minimark",[9,21,25,28,33,36,50,54,60,63,119,122,128,131,146,149,157],[10,11,12],"blockquote",{},[13,14,15,16,20],"p",{},"读书这件事，对我最有用的一条原则是：",[17,18,19],"strong",{},"带着一个具体问题去读","，而不是按书单硬刷。",[22,23,24],"h2",{"id":24},"重读的两本",[13,26,27],{},"有些书第一遍读不出味道，等到真遇上了对应的问题，再翻就都是重点。",[29,30,32],"h3",{"id":31},"设计数据密集型应用","《设计数据密集型应用》",[13,34,35],{},"第一次读的时候只觉得概念多，第二次读是在梳理一个数据同步方案时，忽然明白了「批处理与流处理的边界」那一章在说什么。",[37,38,39,43],"ul",{},[40,41,42],"li",{},"对「一致性」这个词的理解，从「数据库的开关」变成了「业务能接受什么」；",[40,44,45,46,49],{},"记住了那句话：",[17,47,48],{},"系统复杂度来自需求本身，而不是技术选型","。",[29,51,53],{"id":52},"重构","《重构》",[13,55,56,57,49],{},"重读时不再关注具体手法，而是关注它反复强调的节奏：",[17,58,59],{},"小步、可验证、随时可停",[22,61,62],{"id":62},"新读的几本",[64,65,66,82],"table",{},[67,68,69],"thead",{},[70,71,72,76,79],"tr",{},[73,74,75],"th",{},"书名",[73,77,78],{},"解决的问题",[73,80,81],{},"适合谁",[83,84,85,97,108],"tbody",{},[70,86,87,91,94],{},[88,89,90],"td",{},"《程序员修炼之道》",[88,92,93],{},"工程习惯的清单化",[88,95,96],{},"工作两三年后重读效果最好",[70,98,99,102,105],{},[88,100,101],{},"《编写可读代码的艺术》",[88,103,104],{},"命名与结构的具体判断",[88,106,107],{},"需要 review 别人代码的人",[70,109,110,113,116],{},[88,111,112],{},"《写作这回事》",[88,114,115],{},"怎么把一件事讲清楚",[88,117,118],{},"需要写文档、写文章的人",[22,120,121],{"id":121},"一个意外的收获",[13,123,124,125],{},"技术书之外，我读得最有用的一本是讲写作的。工程里大量时间花在「把复杂的事情说清楚」上：写方案、写复盘、写接口文档、写变更说明。",[17,126,127],{},"说不清楚，往往说明自己还没想清楚。",[22,129,130],{"id":130},"阅读方式上的两个调整",[132,133,134,140],"ol",{},[40,135,136,139],{},[17,137,138],{},"不再追求读完","：一本书里有两三章真正解决问题，就已经值回时间；",[40,141,142,145],{},[17,143,144],{},"边读边留痕","：在笔记里只记「我会怎么用」，不抄原文。",[22,147,148],{"id":148},"下半年想读的",[37,150,151,154],{},[40,152,153],{},"一本操作系统相关的书，补一补底层直觉；",[40,155,156],{},"一本非技术类的长篇，用来对抗碎片化阅读的习惯。",[13,158,159],{},"读书清单不写太长，写长了就变成任务，任务就会拖延。",{"title":161,"searchDepth":162,"depth":162,"links":163},"",2,[164,169,170,171,172],{"id":24,"depth":162,"text":24,"children":165},[166,168],{"id":31,"depth":167,"text":32},3,{"id":52,"depth":167,"text":53},{"id":62,"depth":162,"text":62},{"id":121,"depth":162,"text":121},{"id":130,"depth":162,"text":130},{"id":148,"depth":162,"text":148},"life",null,"2026-07-06","上半年读完与重读的几本书，以及它们各自解决了我在工程实践中的哪个具体问题。",false,"md",{},true,"\u002Fposts\u002Freading-2026-h1",{"title":5,"description":176},"posts\u002Freading-2026-h1",[185,186,187],"阅读","随笔","效率","6U-SdhCje-0VgWsr1EMiScQkTi-TytOrpc41nuOCnTI",{"all":190,"posts":287,"essays":297,"projects":304,"tags":314},[191,209,221,232,237,246,263,277],{"title":192,"description":193,"path":194,"slug":195,"category":196,"categoryLabel":197,"kind":198,"tags":199,"date":204,"updated":205,"minutes":206,"pinned":180,"draft":177,"order":207,"stack":208,"period":161,"repo":161,"thumb":161},"用 Nuxt 4 + Nuxt Content 搭一个纯静态个人站","站点骨架的取舍：内容目录怎么定、SSG 怎么预渲染、设计令牌怎么从原型抽成一套 CSS 变量，以及首屏主题闪烁的解法。","\u002Fposts\u002Fnuxt4-static-site","nuxt4-static-site","tech","技术","post",[200,201,202,203],"Nuxt","Nuxt Content","SSG","前端工程化","2026-10-12","2026-10-18",5,0,[],{"title":210,"description":211,"path":212,"slug":213,"category":196,"categoryLabel":197,"kind":198,"tags":214,"date":219,"updated":161,"minutes":206,"pinned":177,"draft":177,"order":207,"stack":220,"period":161,"repo":161,"thumb":161},"B 端后台底座：把权限、菜单、请求收敛成三层","后台系统做多了会发现，真正需要沉淀的不是页面，而是权限模型、动态菜单和请求层这三块底座。","\u002Fposts\u002Fvue3-admin-base","vue3-admin-base",[215,216,217,218],"Vue","后台","架构","权限","2026-09-24",[],{"title":222,"description":223,"path":224,"slug":225,"category":196,"categoryLabel":197,"kind":198,"tags":226,"date":230,"updated":161,"minutes":206,"pinned":177,"draft":177,"order":207,"stack":231,"period":161,"repo":161,"thumb":161},"工作流引擎实操笔记：节点、流转与幂等","从状态机到可配置流程：一次工作流引擎落地中关于节点模型、流转条件、幂等与补偿的实操记录。","\u002Fposts\u002Fworkflow-engine-notes","workflow-engine-notes",[227,228,217,229],"工作流","后端","幂等","2026-08-30",[],{"title":5,"description":176,"path":181,"slug":233,"category":173,"categoryLabel":186,"kind":198,"tags":234,"date":175,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":207,"stack":236,"period":161,"repo":161,"thumb":161},"reading-2026-h1",[185,186,187],1,[],{"title":238,"description":239,"path":240,"slug":241,"category":173,"categoryLabel":186,"kind":198,"tags":242,"date":244,"updated":161,"minutes":162,"pinned":177,"draft":177,"order":207,"stack":245,"period":161,"repo":161,"thumb":161},"我的写作与输入工具链","从收集、整理到成稿：一套尽量少依赖工具的写作流程，以及几个用了三年以上没换过的选择。","\u002Fposts\u002Ftools-and-writing","tools-and-writing",[243,187,186],"工具","2026-06-15",[],{"title":247,"description":248,"path":249,"slug":250,"category":251,"categoryLabel":252,"kind":251,"tags":253,"date":254,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":235,"stack":255,"period":261,"repo":161,"thumb":262},"Super Admin 后台底座","一套可复用的 B 端后台前端底座：权限三层收敛、动态菜单、请求层封装与通用表格表单组件，新项目接入只需替换业务页面。","\u002Fprojects\u002Fsuper-admin","super-admin","project","项目",[215,216,203],"2026-05-20",[256,257,258,259,260],"Vue 3","TypeScript","Vite","Pinia","Element Plus","2026 年至今","SA",{"title":264,"description":265,"path":266,"slug":267,"category":251,"categoryLabel":252,"kind":251,"tags":268,"date":269,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":162,"stack":270,"period":275,"repo":161,"thumb":276},"轻量工作流引擎","面向审批场景的轻量工作流：节点与连线可配置，支持条件分支、抄送、超时补偿，重点解决幂等与流程改版两类问题。","\u002Fprojects\u002Fworkflow-engine","workflow-engine",[227,228,217],"2026-04-08",[271,272,273,274],"Spring Boot","MyBatis","MySQL","Redis","2026 年上半年","WF",{"title":278,"description":279,"path":280,"slug":281,"category":251,"categoryLabel":252,"kind":251,"tags":282,"date":205,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":167,"stack":283,"period":285,"repo":161,"thumb":286},"雨墨 RainInk 本站","你正在看的这个站：Nuxt 4 + Nuxt Content 的纯静态个人站，手写设计令牌、无评论无用户输入、产物可直接静态托管。","\u002Fprojects\u002Frainink-site","rainink-site",[200,202,203],[284,256,201,257],"Nuxt 4","2026 年 10 月","RI",[288,291,294],{"title":192,"description":193,"path":194,"slug":195,"category":196,"categoryLabel":197,"kind":198,"tags":289,"date":204,"updated":205,"minutes":206,"pinned":180,"draft":177,"order":207,"stack":290,"period":161,"repo":161,"thumb":161},[200,201,202,203],[],{"title":210,"description":211,"path":212,"slug":213,"category":196,"categoryLabel":197,"kind":198,"tags":292,"date":219,"updated":161,"minutes":206,"pinned":177,"draft":177,"order":207,"stack":293,"period":161,"repo":161,"thumb":161},[215,216,217,218],[],{"title":222,"description":223,"path":224,"slug":225,"category":196,"categoryLabel":197,"kind":198,"tags":295,"date":230,"updated":161,"minutes":206,"pinned":177,"draft":177,"order":207,"stack":296,"period":161,"repo":161,"thumb":161},[227,228,217,229],[],[298,301],{"title":5,"description":176,"path":181,"slug":233,"category":173,"categoryLabel":186,"kind":198,"tags":299,"date":175,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":207,"stack":300,"period":161,"repo":161,"thumb":161},[185,186,187],[],{"title":238,"description":239,"path":240,"slug":241,"category":173,"categoryLabel":186,"kind":198,"tags":302,"date":244,"updated":161,"minutes":162,"pinned":177,"draft":177,"order":207,"stack":303,"period":161,"repo":161,"thumb":161},[243,187,186],[],[305,308,311],{"title":247,"description":248,"path":249,"slug":250,"category":251,"categoryLabel":252,"kind":251,"tags":306,"date":254,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":235,"stack":307,"period":261,"repo":161,"thumb":262},[215,216,203],[256,257,258,259,260],{"title":264,"description":265,"path":266,"slug":267,"category":251,"categoryLabel":252,"kind":251,"tags":309,"date":269,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":162,"stack":310,"period":275,"repo":161,"thumb":276},[227,228,217],[271,272,273,274],{"title":278,"description":279,"path":280,"slug":281,"category":251,"categoryLabel":252,"kind":251,"tags":312,"date":205,"updated":161,"minutes":235,"pinned":177,"draft":177,"order":167,"stack":313,"period":285,"repo":161,"thumb":286},[200,202,203],[284,256,201,257],[315,317,318,319,321,322,323,324,325,326,327,328,329,330,331],{"name":187,"count":162,"weight":316},1.6,{"name":217,"count":162,"weight":316},{"name":186,"count":162,"weight":316},{"name":200,"count":235,"weight":320},1.25,{"name":201,"count":235,"weight":320},{"name":202,"count":235,"weight":320},{"name":215,"count":235,"weight":320},{"name":203,"count":235,"weight":320},{"name":216,"count":235,"weight":320},{"name":228,"count":235,"weight":320},{"name":227,"count":235,"weight":320},{"name":243,"count":235,"weight":320},{"name":229,"count":235,"weight":320},{"name":218,"count":235,"weight":320},{"name":185,"count":235,"weight":320},1792657179070]