设计模式(01)-简单工厂模式的 Python 实现与工程边界
简单工厂模式(Simple Factory)不在 GoF 的 23 种设计模式之列,但它是很多人第一个真正用到的"模式"。它的意图只有一句话:把"该创建哪种对象"的判断逻辑,从调用方剥离出来,集中到一个工厂函数里。 理解这句话之前,先看它解决的是什么问题。 问题:创建逻辑散落在调用方 假设你在写一个
简单工厂模式(Simple Factory)不在 GoF 的 23 种设计模式之列,但它是很多人第一个真正用到的"模式"。它的意图只有一句话:把"该创建哪种对象"的判断逻辑,从调用方剥离出来,集中到一个工厂函数里。 理解这句话之前,先看它解决的是什么问题。 问题:创建逻辑散落在调用方 假设你在写一个
Gin框架中使用Redis Redis是一种高性能的键值对存储数据库,广泛用于缓存、会话管理、消息队列等场景。在Gin框架中使用Redis可以显著提升应用程序的性能。 一、安装Redis驱动 首先,我们需要安装Go语言的Redis驱动。推荐使用go-redis/redis库,它提供了丰富的API和良
在 Go 的 Web 项目里,数据库访问层的选型争论从来没停过:database/sql 原生接口、sqlx、GORM,还是更轻量的 sqlc?每个选项背后都是不同的工程权衡,和"哪个更好用"关系不大,和"你愿意把多少控制权交给库"关系很大。 这篇文章从 database/sql 出发,讲清楚它的设
大多数 asyncio 教程都在讲 API,很少有人讲清楚它到底在解决什么问题,以及它在哪里会让你翻车。 这篇文章不是文档搬运。它来自真实项目里踩过的坑。 --- 异步的本质是什么 先把一个误解排掉:async/await 不让你的代码跑得更快,它让你的 CPU 在等 I/O 的时候不闲着。 这个区
用 Go 写 HTTP 服务,标准库 net/http 已经够用了。路由注册、Handler 接口、中间件链——基本能力都有。那为什么还需要 Gin? 这个问题值得先想清楚,再决定要不要引入一个框架依赖。 --- 标准库的边界在哪里 net/http 的路由匹配是前缀树的简单实现,不支持路径参数。写
Monkey patching 是 Python 社区里争议最持久的技术之一。反对它的人说它是"全局副作用的温床";拥护它的人说它是"动态语言的正当权利"。两边说的都不错,但都没解决一个实际问题:你在什么情况下该用它,在什么情况下该克制。 这篇文章不讲道德,只讲工程判断。 --- Python 对象