.NET 8 学习笔记索引(持续更新)
我把自己从 .NET 8 发布以来记的零散笔记按主题排了个索引,方便回头找。分类很粗糙,会跟着学习进度改。目前有六个主题,其中「性能优化」那块还只有标题没有内容。
· 约 4 分钟 · #.NET #笔记方法
学一个新东西的时候,我会把过程写下来,包括没搞懂的部分。这里的条目按分类排,同一分类内按时间倒序。写完过一段时间回头看,经常会发现当时写错了,这种地方我会直接补在原文里,不再另写一篇。
共 24 篇 · 最近更新 2026-07-06
我把自己从 .NET 8 发布以来记的零散笔记按主题排了个索引,方便回头找。分类很粗糙,会跟着学习进度改。目前有六个主题,其中「性能优化」那块还只有标题没有内容。
· 约 4 分钟 · #.NET #笔记方法
隔两个月不看,我就又会搞混 Use 和 Run 的区别。画了张洋葱图,把 Map、UseWhen 和短路返回的位置标上去之后才算记住。顺手记了三种「看起来能跑、其实会吞掉响应」的写法。
· 约 7 分钟 · #ASP.NET Core
12 万行状态字段要刷,第一版 SaveChanges 跑了四十多分钟还没跑完。后来把 SaveChanges、原生 SQL、ExecuteUpdate 在同一个库上都测了一遍,差距比预想的大。附批量条数的实测图。
· 约 8 分钟 · #EF Core #性能优化
服务跑一晚上内存涨到 2G,重启就好。最后定位到一个 Singleton 里注入了 Scoped 的 DbContext,实体一直被引用着回收不掉。dotMemory 的快照对比帮我省了差不多两天。
· 约 9 分钟 · #.NET #踩坑
顺着 HttpClientFactory 的源码看了一圈,搞清了 Handler 默认 2 分钟生命周期和连接池的关系,也明白为什么「每次 new 一个 HttpClient」会把端口耗尽。里面有不少是我的推测,可能有更准确的解读。
· 约 11 分钟 · #.NET
三种我都用过,公司那套系统最后选了 Hangfire,理由很朴素:它自带失败重试和一个能看任务执行情况的面板,我不想自己写。Quartz.NET 的 cron 表达式更灵活,配置成本也更高。
· 约 7 分钟 · #.NET
容器里 DateTime.Now 比北京时间晚 8 小时,本地跑完全正常。原因是基础镜像没装 tzdata,TimeZoneInfo.FindSystemTimeZoneById 直接抛了异常。加一行 ENV TZ=Asia/Shanghai 就好了。
· 约 3 分钟 · #Linux #踩坑
空值缓存、布隆过滤器、接口限流,三种我都试过。前两个解决的是「查一个根本不存在的数据」,第三个其实是另一回事,只是经常被人放在一起讲。我自己最后只留了空值缓存加短过期。
· 约 6 分钟 · #Redis
sys.dm_db_index_physical_stats 里的 avg_fragmentation_in_percent 到多少才该动手,网上说法从 10% 到 30% 都有。我按自己库的情况记了个经验值,不确定换到别的场景还成不成立。
· 约 4 分钟 · #SQL Server
从 OneNote 到 Notion 再到 Logseq,最后落到 Obsidian 1.7。功能上其实没那么大差别,关键是本地 Markdown 文件让我不用再担心服务哪天关停。附我现在的三个顶层文件夹和三个插件。
· 约 9 分钟 · #效率工具 #笔记方法
原文写的是 12 个,这次又补了三个:ripgrep 14、fd、dust,凑到 15 个。Windows 上大部分用 scoop 装,个别需要去 releases 页面手动下载。
· 约 14 分钟 · #效率工具
找文件名用 Everything,找文件内容用 ripgrep,两个我都留着。Everything 1.4 的索引快得离谱,ripgrep 在几十万行的日志里搜关键字基本是秒出,只是 Windows 上得先配好终端。
· 约 6 分钟 · #效率工具
什么时候该用 toRefs、watch 的依赖怎么写才不会漏、onScopeDispose 忘了调用会怎样——这三个在公司那套系统里各踩了一次。这次修订补上了 3.5 之后一些行为变化。
· 约 8 分钟 · #Vue
迁移本身一个下午,补坑花了三天:环境变量的加载规则不一样、CommonJS 依赖要手动处理、还有一个只在打包之后才冒出来的路径问题。第三条我到现在也没完全想明白。
· 约 7 分钟 · #Vite #踩坑
写给公司新来的后端同事的,列了 ESLint、TypeScript 严格模式、CI 里跑构建这几项。清单本身没什么新鲜东西,价值主要在把「哪些可以先不做」标了出来。
· 约 6 分钟 · #前端工程化
Promise 里抛出来的错、资源加载失败、Vue 组件内部的异常,window.onerror 都抓不全。补上 unhandledrejection 和捕获阶段的 error 监听之后,上报量翻了一倍多,其中一半是真问题。
· 约 9 分钟 · #前端工程化
写了个内部用的小工具,顺便试了下 System.CommandLine。参数绑定和自动生成的帮助信息都挺顺手,缺点是它的 API 在 2.0 beta 之后改过好几轮,网上很多例子已经跑不通了。
· 约 4 分钟 · #.NET
从把同一段说明复制粘贴十次,到抽成能反复调用的 skill。记了第一次写 skill 踩的三个坑,也写下我现在的判断标准:高频、步骤固定、解释成本高,三条缺一条就不值得做。
· 约 3 分钟 · #AI #WorkBuddy
从当补全用,到把整块重构丢给它但每行 diff 都看。一次它改对 LINQ 却把命名规范搞乱的经历,让我定了「只改指定文件 + 改完必 diff」的规矩。
· 约 4 分钟 · #AI #Claude Code
先只读搜索、上白名单目录、所有改动走 PR 不直推。记了第一次没设白名单,它把我一个配置文件删了又补了个错的事故,以及后来固定下来的流程。
· 约 3 分钟 · #AI #工作流
需求模糊时它瞎编实现、需要理解老系统历史包袱的改动、跨多个服务的一致性改动。每点配一个我踩过的真实例子,也说了它到底适合干什么。
· 约 2 分钟 · #AI #复盘
单文件顺着写开 Copilot,多文件要先看懂再改开 Cursor。不是来比高下,是记我分别在什么场景下更愿意打开哪一个,以及两个都省不掉的人把关。
· 约 4 分钟 · #AI #工具对比
这些分类会随整理进度调整,早期的一些笔记还没归类。