分类 · 文章

后端开发

PHP / Java / Python / Go 语言实践、框架源码、微服务、数据库、性能优化

共 243 篇文章

Rust 所有权:看你的答对几道题?

读 Rust 代码时,很容易卡在这样两行上: 同一个名字怎么能声明两次?第二行已经拿到了所有权,为什么还要写 mut?既然东西归我,难道还不能改吗? 如果之前主要写 Java、C# 或 JavaScript,这种困惑很自然。我们习惯了把对象…

SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼

上周三凌晨,我们的订单服务在预发环境启动耗时突然从15秒飙升到2分钟——而代码和依赖压根没改!这种诡异的性能劣化就像代码里藏了一只蜗牛,逼得我不得不翻开SpringBoot的黑匣子。 一、症状:启动时间为何突然暴涨? 现象很简单:同样的代码…

构建 Agent 就绪的数据库 OKF 知识包:Python 编译器实战

在 AI Agent 自主编写 SQL 的场景中,仅仅提供数据库 Schema 往往是不够的。Agent 还需要理解业务术语(如指标定义、风险条件)才能生成准确的查询。然而,原始文档(如建表语句、列字典、业务规则)通常散落在各处,格式不一,…

zap WriteSyncer与Sink体系

1. WriteSyncer 家族全景 2. 基础组合子(write\_syncer.go) 2.1 AddSync:类型适配 2.2 Lock:并发安全包装 为什么需要锁? os.File 的单次 Write 是原子的,但"Write +…

如何查看 drift 在 本机的 sqlite 文件路径

验证 Drift 数据是否成功存入 SQLite 的几种方案 前提:你的 MessageRecords 表已经加上主键,代码已经改好。分代码内验证、外部工具查看数据库文件两种方式。 ✅ 方式 1:代码内验证(推荐,单元测试 / 业务校验) …

JDBC学习DAY2:从Statement到PreparedStatement

昨天用Statement跑通了查询,但网课今天一上来就讲SQL注入,看完演示之后后背有点凉——原来Statement拼接字符串的方式,在真实项目里就是颗定时炸弹。正好今天的内容就是怎么拆掉这颗炸弹,顺便把昨天那些繁琐的样板代码也一并收拾干净…

pnpm 12 升级实测

一、pnpm 12 值得升吗? pnpm 12 值得升。 这话我说得干脆,因为不是看发布说明得出的。11.2.2 和 12.8.1 装到同一台机器上,同一个项目,两边各跑一轮,写着写着发现发布说明里有两类,一类我一测就对上,一类我怎么测都对…

ai agent --- redis 缓存

一.redis 是什么? 1.概念 Redis(Remote Dictionary Server)是一个基于内存的键值对(Key-Value)数据库,同时也是一个高性能的缓存中间件。 它最大的特点是快——读写操作都在内存中完成,官方标称读性…

升级 RustFS 二进制不停机:一条一条换,留一条退路

封面 一个四节点集群跑了半年没重启过,版本落后两个小版本。升级这件事真正的难点是出了事怎么退回去,把新二进制放上去那一步反而不难。RustFS 官方的二进制升级页给的流程很短,但里面那两条备份命令才是整个流程的核心:备份配置,以及把当前正在…

测试金字塔与自动化分层

测试金字塔与自动化分层 > 一句话:金字塔表达的是成本结构(越往上越慢、越贵、越脆),不是用例数量的 KPI——把它当比例指标考核,就是下一个被刷掉的数字。 定位:测试技术第 3 页。回答"自动化用例放在哪一层",把 \[\[黑盒测试技术\…