posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 game golang 客户端开发 Minigame Saas rust Python Java cg Typescript
typescript

《TypeScript编程实战》3.3 结构化日志与脱敏

本节说明 console.log 为什么在生产环境不可用,并给出结构化日志的字段约定。随后用 pino 搭一套类型安全的日志封装:child logger 绑定请求上下文、err 序列化器还原堆栈与 cause、redact 路径与自定义 serializer 做脱敏。最后讲如何把日志与 trace_id 关联、级别与采样策略,以及 JSON.stringify(error) 得到空对象等坑。

6 分钟阅读
TypeScript TypeScript编程实战 结构化日志
typescript

《TypeScript编程实战》3.2 全局错误边界与未捕获异常

本节讲 Result 覆盖不到的失败:Node 进程级的 uncaughtException 与 unhandledRejection 该怎么用;React 错误边界如何捕获渲染期异常,以及它捕获不到事件处理器与异步错误的原因;Next.js App Router 的 error.tsx 与 global-error.tsx 落点。最后给出统一的上报管线与去重、采样、flush 等实战细节。

6 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》3.1 Result/Either 与类型化错误

本节从 throw 的类型黑洞讲起,说明 TypeScript 的函数签名为何无法表达失败路径。随后手写一套零依赖的 Result/Either 判别联合:Ok/Err 构造、isOk/isErr 类型守卫、map/mapErr/andThen 组合子、unwrapOr 兜底与 fromPromise 互转。再讨论异步流程中把错误搬进类型签名的写法,并划清预期业务错误与意外异常的分工。

6 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》2.3 调试与 source map

本节解决「运行时报错的行号对不上源码」这一痛点。先讲清 source map 是什么、由哪些字段组成,再配置 tsconfig 里的 sourceMap、inlineSources 与 declarationMap;随后给出 Node 调试的三种姿势,讨论生产环境该不该带 source map,并列出断点错位、找不到源文件等常见坑与真实报错。读完你能让断点准确落在 .ts 文件上。

8 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》2.2 环境变量与配置的类型化

本节把环境变量与配置纳入类型系统。先讲清 process.env 的真实类型为什么是 string 或 undefined,再依次给出三档方案:手写声明合并、Zod 启动时校验加类型推导、以及多环境文件的分层加载。随后讨论密钥不进仓库、构建期变量与运行期变量的区别,并列出配置项缺失、布尔值被解析成字符串等常见坑与真实报错。读完你能写出一份启动即校验、类型自动推导的配置模块。

9 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》2.1 路径别名与 monorepo 结构

本节讲清路径别名与 monorepo 结构。先用相对路径失控的场景引出 paths 与 baseUrl 的编译期别名,再拆解别名运行时失效的根本原因,给出 tsc-alias、打包器 alias、Node subpath imports 三种补救方案;随后用 pnpm workspace 与 project references 组织多包仓库。读完你能设计一套可编译、可运行、可发布的目录结构。

9 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程入门》附录 D 常见问题与解决方案(FAQ)

本附录汇总初学者最常撞上的十三类 TypeScript 报错与困惑,覆盖模块找不到声明、属性不存在、可能为 null、类型不可赋值、never 参数、as 断言滥用、tsconfig 不生效、ESM 与 CJS 混用、isolatedModules、第三方库缺类型、CI 与本地结论不一致等,每问按症状、原因、解决三段给出。

8 分钟阅读
TypeScript TypeScript编程入门 FAQ
java

《Spring Boot 实战》1.1 何时该拆模块

从团队规模、发布节奏、复用需求与编译耗时四个维度判断单体还是多模块,给出「先别拆」的五条红线与「该拆了」的信号,对比按层、按业务、按可复用库三种拆分粒度各自的代价与适用场景,并附一份可在评审会上直接使用的决策清单与三个常见误区,以及判断时常被忽略的隐性维护成本。

11 分钟阅读
Spring Boot Spring Boot 实战 多模块工程
java

《Spring Boot 入门》10.1 @ExceptionHandler

Spring Boot 默认的错误响应由 BasicErrorController 生成,字段有限且不携带业务语义。本节先看清默认 JSON 长什么样,再讲 @ExceptionHandler 的用法与作用范围(只对所在控制器生效)、多异常与继承关系的匹配顺序、@ResponseStatus 与 ResponseEntity 的状态码控制,并说明为什么在每个控制器里重复写处理方法是不可持续的。

6 分钟阅读
Spring Boot Spring Boot 入门 异常处理