这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《Python编程实战》1.3 代码规范、pre-commit 与提交门禁
写在文档里的规范没人执行,变成门禁才会拦人。本节先讲 ruff 规则集怎么选、format 与 --fix 的边界、per-file-ignores 怎么开合理的口子,再用原生 git hook 实测一个「提交前跑 ruff + mypy,不合格就拒绝提交」的门禁,并给出 pre-commit 框架的等价配置。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
写在文档里的规范没人执行,变成门禁才会拦人。本节先讲 ruff 规则集怎么选、format 与 --fix 的边界、per-file-ignores 怎么开合理的口子,再用原生 git hook 实测一个「提交前跑 ruff + mypy,不合格就拒绝提交」的门禁,并给出 pre-commit 框架的等价配置。
pyproject.toml 是现代 Python 项目唯一的配置中心。本节逐段拆解它的四个区段——build-system、project、dependency-groups、tool.*,再用实测代码演示 mypy 的三档分层:核心模块严格、适配层宽松、遗留模块豁免,让类型检查既能守住关键逻辑,又不被历史包袱拖垮。
真实项目的第一步不是写代码,而是把脚手架搭对。本节用 uv 从零建出一个 src 布局的 Python 项目,实测 uv init、uv run、uv add、uv lock 的完整输出,再把 ruff 与 mypy 装成 dev 依赖跑通第一次静态检查,让你五分钟拿到一个可提交、可协作、可复现的工程骨架。
本附录分两半:报错速查按异常类型列出真实报错原文、成因与修法,覆盖 SyntaxError 到 AssertionError 共十七类;常见困惑 FAQ 解答 a=b 的别名、可变默认参数、多线程没变快、is 与 ==、pip 装错环境、中文乱码、.pyc 缓存、finally 里 return 等问题。
本附录按场景汇总 Python 生态里的常用第三方库:包管理与环境、代码质量、测试、Web 与 API、数据库与 ORM、数据处理、网络与爬虫、命令行、序列化配置、任务队列、可观测性、科学计算、桌面图像、打包发布,每张表给出库、用途、对应章节与实测版本号,并整理学习资源。
本附录按用途分组整理 Python 标准库常用模块:文本与字符串、数据结构、函数式与迭代、文件与路径、日期时间、数据格式、并发与异步、网络、调试与剖析、系统与进程、测试、数值随机与哈希、压缩归档与持久化,每组给出模块、一句话用途、常用名字与对应正文小节,并标注引入版本与版本分界速查。
本附录把全书用到的 Python 语法压缩成一组速查表:字面量与运算符优先级、字符串/列表/字典/集合的常用方法与复杂度、切片与解包、函数参数四种形态、作用域、类与继承、异常语法、match 语句、PEP 695 类型注解、内置函数与 f-string 格式说明符,每个片段均在 3.14.6 上实测。
把秋冷糖公开风险样章转化为《孢子危机》中段正式章节,设计信息压力、会议冲突、普通人后果和公开建议的代价。
全面解析微服务间的通信模式,涵盖REST、gRPC同步调用、消息队列异步通信、事件驱动架构、Saga模式处理分布式事务,提供完整的设计决策框架和实战代码。
《Spring Boot 实战》全书导航页:说明本卷面向已会用 Spring Boot、但没独立交付过生产服务的工程师这一读者定位,给出三条学习路径与一份十周计划,讲清四个部分之间的依赖关系,并按部分列出 18 章 54 节的完整索引,另含生产场景常见问题速查表,每一节都配一句话说明,方便按需跳读与随时查阅。
同一个 DTO 在新增和修改时规则常常冲突:新增时 id 必须为空,修改时 id 必须非空。本节用图书 DTO 演示校验分组、@GroupSequence 组顺序、嵌套对象级联与集合元素校验,指出 @Valid 加错位置会静默跳过的陷阱,并以一个新增/修改共用 DTO 的完整示例收尾。
本节把代码规范从口头约定变成不可绕过的自动化门禁:先对比 ESLint 加 Prettier 与 Biome 两套方案的取舍,再用 flat config 写出带类型感知的 typescript-eslint 配置,然后用 husky 与 lint-staged 把检查挂到 pre-commit,用 commitlint 约束提交信息,最后在 CI 里跑全量校验兜底。
本节把 tsconfig.json 讲成可维护的配置:先解释 strict 总开关包含哪几项检查,再补齐 noUncheckedIndexedAccess、exactOptionalPropertyTypes 等护栏,然后梳理 module 与 moduleResolution 的联动,最后用三层 extends 把编辑器检查与产物构建分开。读完你能判断每个选项该开还是该关,并看懂常见报错。
本节从空目录开始搭起可复现的 TypeScript 工程脚手架:先用 Corepack 锁定 pnpm 版本并说明它比 npm 快在哪里,再设计 src 与 dist 的目录结构和 package.json 关键字段,然后用 tsx 负责开发期直接运行 TS,用 tsup 负责生产构建。读完你能得到 dev、build、typecheck 三条脚本,并知道每个工具为什么被选中、常见报错怎么排查。
《TypeScript编程入门》全书导航页:说明本书定位、读者画像与前置知识、三条学习路径与各部分之间的依赖关系,并按五部分列出 18 章 54 节的完整章节索引,另含序、前言、附录 A–D 与常见问题速查表,方便按需定位、跳读与查阅,是一份可长期使用的学习地图。
《TypeScript编程入门》的序。为什么在类型化 JavaScript 的今天依然值得系统学习 TypeScript:从类型即文档与护栏、十年生态位置变化,到本书的讲法取舍,再到不同起点的读者该从哪一章进入这 18 章的完整旅程。全文以观点为主线,帮助你建立对这门语言的正确预期。
《TypeScript编程入门》前言:说明本书的目标读者与前置知识、五部分 18 章的结构分工、每节的组织方式、代码约定与 TypeScript 5.x 版本基线,并给出顺序通读、按需跳读、当参考手册用三种阅读路径的建议,附各部分的阅读时长估算。
标准注解不够用时,就要自己写约束。本节以 ISBN 格式校验为例,完整演示自定义注解 + ConstraintValidator 实现,拆解 message、groups、payload 三个成员,讲清 ValidationMessages.properties 的中文国际化与 4.x 的编码要求,并给出在 Service 层手动触发校验的两种方式与真实异常响应。
《Python编程入门》全书导航页:说明本书定位、读者画像与前置知识、三条学习路径与四个部分之间的依赖关系,并按四个部分列出 18 章 54 节的完整章节索引,另含序、前言、附录 A–D 与常见问题速查表,方便按需定位、跳读与随时查阅全书。
《Python编程入门》的序。从 Python 今天在语言生态中的位置谈起,说明站内既有的 46 篇 Python 专题做的是「单点深挖」、这本书补的是「从零到能干活」的递进路径,并交代本书的三个刻意取舍、明确不写的内容,以及不同起点的读者该从哪一章进入这趟旅程。