归档
2026
从 Scrapy 到自研:单人长期项目中的爬虫工程判断
对单人长期项目而言,工程问题往往不是“能不能做”,而是“能不能长期承受”。本文记录了我在使用 Scrapy 过程中逐步暴露的工程风险,以及最终选择自研爬虫框架、重新分配工程不确定性的判断过程。
2025
Next.js App Router 中 ISR 的真实行为与设计取舍:为什么你的页面没有更新
拆解 Next.js App Router 中 ISR 的真实工作方式,澄清“为什么数据更新了页面却没变”的根源。从内容型站点的视角理解 ISR 的设计假设、延迟与不一致的必然性。通过真实业务节奏,讨论何时应继续使用 ISR,何时过渡到 on-demand revalidate。
2024
群晖自动申请、安装、续期SSL证书
事情的起因是大概几个月前断断续续收到了十几封来自阿里云的邮件,去年申请的 SSL 证书全部到期了。本来我还在琢磨更新那么多证书得折腾多久,然后就看到了阿里云的公告:免费 SSL 证书签发后的有效期统一变更为 3 个月。于是乎陷入了沉思,还是另寻他法吧,最终折腾了一下自动申请、安装、续期 SSL 证书的方法,结果一直拖着没有写这篇文章,直到 NAS 迁移后因为…
Ant Design Vue 实现表单上传 Excel 文件时校验行数
最近在开发时遇到这样的需求:对上传的 Excel 文件行数进行校验,行数超过 1000 则提示用户数据超限。本来该校验是在用户选择文件后由前端校验,后续临时变更为上传文件后由后端校验,但是前端代码已经开发完毕了,直接删除怪可惜的,遂记录
提升Next.js博客性能:图像优化与LCP
今年3月底,为了让博客看起来不那么单调死板,我在首页增加了一张 banner。然而近期登陆 Vercel 控制台的时候发现 Speed Insights 评分越来越低了。不看不知道,一看吓一跳,Speed Insights 面板中的 LCP 指标甚至最高达到了 6.2 秒,这鲜红的颜色无时无刻不在提醒我,是时候优化博客性能了
Vuex3.x 快速入门
自入职以来使用 Vue 差不多两年了,虽然一直知道 Vuex 的存在,也完整浏览过官方文档,奈何原项目不大,一直没有实践的机会。近期加入了新的项目,使用的技术栈是 Vue2.7 和 Vuex3.x,趁着这个机会加深印象并做个记录
2023
react-beautiful-dnd表格拖拽时行收缩
最近在使用react-beautiful-dnd开发表格拖拽排序时遇到了一个问题:在选中一行并开始拖拽时 ,行、或者说单元格的样式会发生变化,具体表现为整行宽度收缩。在搜索资料并翻阅文档后,找到了这个问题的解决方法
为Next.js博客添加Fancybox图片灯箱效果
一直觉得博客的图片无法进行缩放非常影响使用体验,有些比较小的截图需要放大才能看清,于是在选定Fancybox作为解决方案后,为博客图片增加了灯箱效果
TypeScript使用注意点整理
初次接触TypeScript是刚入职的时候要写Angular,当时其实连JavaScript都没写明白,更别说TypeScript了,依葫芦画瓢,硬是写成了"AnyScript"。当时唯一的感受是,这东西好难用,为什么要给自己加这么多限制。后来新项目选型的时候我选择了Vue2,使用的是JavaScript,这段有点折磨的经历也就这么过去了。时过境迁,在开发过…
解决IntelliJ IDEA将项目识别为Vue导致TypeScript报错问题(Vue: Type Element is not assignable to type ReactNode)
当项目依赖中存在Vue相关依赖时,IntelliJ IDEA可能错误地将其标识为Vue项目,导致无法正确识别原项目框架,从而出现类似(Vue: Type Element is not assignable to type ReactNode)的错误信息,本文将介绍一种解决该问题的方法
Ubuntu22.04 初始化设置(静态IP及修改SSH端口号)
近期搭建MC服务器时经常报错,为了控制变量排查环境问题,需要频繁重新安装Ubuntu,安装后需要进行固定服务器IP、修改SSH端口号等操作,这里记录下来以便参考
使用PVE安装Linux(Ubuntu)系统
日常工作或娱乐中难免遇到需要在服务器上跑服务、跑脚本的情况,我的服务器底层系统为PVE,本文记录了如何使用PVE安装Ubuntu操作系统