Gin 系列教程 (03)-使用Redis Gin框架中使用RedisRedis是一种高性能的键值对存储数据库,广泛用于缓存、会话管理、消息队列等场景。在Gin框架中使用Redis可以显著提升应用程序的性能。 一、安装Redis驱动首先,我们需要安装Go语言的Redis驱动。推荐使用go-redis/redis库,它提供了丰富的API和良好的性能。 1go get github.com/go-redis/redis/v8 二、基本连接1. 2018-04-03 Golang #Go #gin教程 #Redis
Gin 系列教程 (02):Go 里的数据库访问层该怎么选 在 Go 的 Web 项目里,数据库访问层的选型争论从来没停过:database/sql 原生接口、sqlx、GORM,还是更轻量的 sqlc?每个选项背后都是不同的工程权衡,和”哪个更好用”关系不大,和”你愿意把多少控制权交给库”关系很大。 这篇文章从 database/sql 出发,讲清楚它的设计模型,然后说清楚什么情况下往上加一层抽象是合理的。 database/sql 的设计模型Go 标 2018-04-03 Golang #Go #web #framework #gin教程 #MySQL
Python asyncio:事件循环不是魔法 大多数 asyncio 教程都在讲 API,很少有人讲清楚它到底在解决什么问题,以及它在哪里会让你翻车。 这篇文章不是文档搬运。它来自真实项目里踩过的坑。 异步的本质是什么先把一个误解排掉:async/await 不让你的代码跑得更快,它让你的 CPU 在等 I/O 的时候不闲着。 这个区别很关键。如果你的瓶颈是 CPU 密集计算(矩阵乘法、图像处理、模型推理),asynci 2018-04-02 Python #python #asyncio #异步编程 #并发
Gin 系列教程 (01):为什么是 Gin,以及它解决了什么问题 用 Go 写 HTTP 服务,标准库 net/http 已经够用了。路由注册、Handler 接口、中间件链——基本能力都有。那为什么还需要 Gin? 这个问题值得先想清楚,再决定要不要引入一个框架依赖。 标准库的边界在哪里net/http 的路由匹配是前缀树的简单实现,不支持路径参数。写 /users/:id 这种风格的路由,需要自己解析 URL、手动提取参数。 12345// 标准库的方式h 2018-04-02 Golang #Go #web #framework #gin教程
Python Monkey Patching:运行时改写规则的工程边界 Monkey patching 是 Python 社区里争议最持久的技术之一。反对它的人说它是”全局副作用的温床”;拥护它的人说它是”动态语言的正当权利”。两边说的都不错,但都没解决一个实际问题:你在什么情况下该用它,在什么情况下该克制。 这篇文章不讲道德,只讲工程判断。 Python 对象模型为什么允许这件事Monkey patching 能工作,根本原因是 Python 的对象模型是基于字典 2017-11-10 Python #AI 基础设施 #可观测性 #Python #测试工程