- code=2200、message=SUCCESS、data=null —— 服务端用「成功」的信封拒绝了你。这篇记一次真实排查:一个签到脚本连续 4 天显示「完成 ✅」却什么都没做,最后发现是判空缺失 + 环境变量注入路径错位两个坑叠在一起。 code=2200、message=SUCCESS、data=null —— 服务端用「成功」的信封拒绝了你。这篇记一次真实排查:一个签到脚本连续 4 天显示「完成 ✅」却什么都没做,最后发现是判空缺失 + 环境变量注入路径错位两个坑叠在一起。
- 从请求重试、数据库唯一约束和事务边界出发,说明接口幂等性的实现及故障验收。 从请求重试、数据库唯一约束和事务边界出发,说明接口幂等性的实现及故障验收。
- 一、持久化不是“存下来”这么简单多数应用都会遇到同一类问题:配置要记住、列表要缓存、用户数据要落盘。很多开发者的做法是“全都用一种方式存”,要么全塞进键值对,要么全写文件。结果要么是读取越来越慢,要么是数据一多就找不到、改不动。持久化的关键不是“能不能存”,而是按数据的形态和生命周期选对方式。鸿蒙应用常用的三类手段各有明确边界:键值存储适合小而离散的配置,关系型数据库适合结构化且有查询需求... 一、持久化不是“存下来”这么简单多数应用都会遇到同一类问题:配置要记住、列表要缓存、用户数据要落盘。很多开发者的做法是“全都用一种方式存”,要么全塞进键值对,要么全写文件。结果要么是读取越来越慢,要么是数据一多就找不到、改不动。持久化的关键不是“能不能存”,而是按数据的形态和生命周期选对方式。鸿蒙应用常用的三类手段各有明确边界:键值存储适合小而离散的配置,关系型数据库适合结构化且有查询需求...
- 用户点一下提交按钮,网络抖了一下,前端自动重试了一次,后端就收到了两条一模一样的下单请求。结果是重复扣款、重复发货,还是只执行了一次?这取决于接口是不是幂等的。幂等不是一个可有可无的加分项,而是所有会产生副作用的接口都应该具备的基本属性。本文讲四种落地做法,以及各自适合的场景。幂等键:让客户端带上唯一标识最通用的做法是幂等键。客户端每次发起请求时生成一个唯一键,随请求一起发过来,服务端用这个... 用户点一下提交按钮,网络抖了一下,前端自动重试了一次,后端就收到了两条一模一样的下单请求。结果是重复扣款、重复发货,还是只执行了一次?这取决于接口是不是幂等的。幂等不是一个可有可无的加分项,而是所有会产生副作用的接口都应该具备的基本属性。本文讲四种落地做法,以及各自适合的场景。幂等键:让客户端带上唯一标识最通用的做法是幂等键。客户端每次发起请求时生成一个唯一键,随请求一起发过来,服务端用这个...
- 一、 前言在传统的 relational database(关系型数据库)中,表结构(Schema)是严格固定的。但在实际业务开发中,我们经常遇到这样的痛点:1. 结构多变:电商商品的属性千差万别(有的有尺码,有的有功率,有的有颜色),如果强行用关系型表存储会产生大量的空字段。2. 查询门槛高:半结构化数据(JSON)虽然灵活,但编写复杂的嵌套查询(如 MongoDB 的 Aggregate... 一、 前言在传统的 relational database(关系型数据库)中,表结构(Schema)是严格固定的。但在实际业务开发中,我们经常遇到这样的痛点:1. 结构多变:电商商品的属性千差万别(有的有尺码,有的有功率,有的有颜色),如果强行用关系型表存储会产生大量的空字段。2. 查询门槛高:半结构化数据(JSON)虽然灵活,但编写复杂的嵌套查询(如 MongoDB 的 Aggregate...
- Apiiro 扫描 GitHub 上 10 万余份 .claude/settings.local.json,在 1994 个公开仓库里找到 2539 个真实凭据。起因只是 Claude Code 的"不再询问"把带明文密码的命令原文写进了项目配置文件。本文还原机制、数据与扫描器漏报原因,并给出轮换、清理与写法层面的修复清单。 Apiiro 扫描 GitHub 上 10 万余份 .claude/settings.local.json,在 1994 个公开仓库里找到 2539 个真实凭据。起因只是 Claude Code 的"不再询问"把带明文密码的命令原文写进了项目配置文件。本文还原机制、数据与扫描器漏报原因,并给出轮换、清理与写法层面的修复清单。
- LIMIT 20 OFFSET 40000 为什么越翻越慢,以及游标分页、延迟关联、限制翻页深度该怎么选。 LIMIT 20 OFFSET 40000 为什么越翻越慢,以及游标分页、延迟关联、限制翻页深度该怎么选。
- 针对云原生环境下,微服务产生的海量运行日志导致传统 Elasticsearch 存储成本剧增、内存消耗过大、集群频繁触发 Full GC 的痛点,本文分享一套摒弃重型全文搜索引擎,转向高压缩比、极速扫描的列式数据库日志架构降本解法。 针对云原生环境下,微服务产生的海量运行日志导致传统 Elasticsearch 存储成本剧增、内存消耗过大、集群频繁触发 Full GC 的痛点,本文分享一套摒弃重型全文搜索引擎,转向高压缩比、极速扫描的列式数据库日志架构降本解法。
- 慢查询很少是突然变慢的。多数时候,它是数据量悄悄长大、索引慢慢失效、一条写得很随意的 SQL 被反复执行,最后在业务高峰时一起爆发。治理慢查询也不靠某一个神奇参数,而是一条链路:先定位,再看执行计划,然后改 SQL 或改索引,最后把复发拦在流程里。 一、先定位:别凭感觉猜是哪条 SQL第一步是让慢查询现形。打开慢日志是最直接的办法:SET GLOBAL slow_query_log = 'O... 慢查询很少是突然变慢的。多数时候,它是数据量悄悄长大、索引慢慢失效、一条写得很随意的 SQL 被反复执行,最后在业务高峰时一起爆发。治理慢查询也不靠某一个神奇参数,而是一条链路:先定位,再看执行计划,然后改 SQL 或改索引,最后把复发拦在流程里。 一、先定位:别凭感觉猜是哪条 SQL第一步是让慢查询现形。打开慢日志是最直接的办法:SET GLOBAL slow_query_log = 'O...
- 前言在笔记类应用中,不管后续要不要对接云端同步,本地数据可靠存储都是绕不开的底层能力。很多开发者上手时会直接选择Preferences,但Preferences更适合存放简单键值配置,不适合结构化、存在关联关系、未来需要同步的数据。本文聚焦一个核心实现:使用HarmonyOS关系型数据库(RDB)搭建笔记的数据层,设计适配后续端云同步的数据模型,完成基础的增删改查。本文只聊技术实现、表结构... 前言在笔记类应用中,不管后续要不要对接云端同步,本地数据可靠存储都是绕不开的底层能力。很多开发者上手时会直接选择Preferences,但Preferences更适合存放简单键值配置,不适合结构化、存在关联关系、未来需要同步的数据。本文聚焦一个核心实现:使用HarmonyOS关系型数据库(RDB)搭建笔记的数据层,设计适配后续端云同步的数据模型,完成基础的增删改查。本文只聊技术实现、表结构...
- 鸿蒙应用里要存数据时,可选方案不止一种:轻量级 preferences、关系型数据库 RelationalStore、分布式数据,以及直接读写沙箱文件。很多教程只讲 API 用法,不讲什么时候该用哪个。本文按实际开发中的典型场景,给一套选型思路和落地写法,适合正在做第一个鸿蒙应用、准备把数据真正存下来的开发者。 一、先分清四种方案把常见需求映射到方案上:记住用户偏好:主题色、字体大小、上次停... 鸿蒙应用里要存数据时,可选方案不止一种:轻量级 preferences、关系型数据库 RelationalStore、分布式数据,以及直接读写沙箱文件。很多教程只讲 API 用法,不讲什么时候该用哪个。本文按实际开发中的典型场景,给一套选型思路和落地写法,适合正在做第一个鸿蒙应用、准备把数据真正存下来的开发者。 一、先分清四种方案把常见需求映射到方案上:记住用户偏好:主题色、字体大小、上次停...
- 针对按 created_at 范围查询的大日志表,本文从建表、递增写入、创建 BRIN(created_at) 索引和调整 pages_per_range 入手,通过 EXPLAIN 与索引大小对比,说明 BRIN 相对 B-tree 的取舍及适用边界。 针对按 created_at 范围查询的大日志表,本文从建表、递增写入、创建 BRIN(created_at) 索引和调整 pages_per_range 入手,通过 EXPLAIN 与索引大小对比,说明 BRIN 相对 B-tree 的取舍及适用边界。
- openGauss 数据库介绍:国产开源数据库的技术特点与应用实践 一、什么是 openGauss?随着数字化转型的不断深入,数据库作为信息系统的核心基础设施,在金融、电信、政务、能源、互联网等行业发挥着越来越重要的作用。长期以来,传统数据库市场主要由国外数据库产品占据。为了推动数据库技术自主创新,构建安全、可靠、高性能的数据管理基础设施,国内也涌现出了许多优秀的数据库产品。其中,open... openGauss 数据库介绍:国产开源数据库的技术特点与应用实践 一、什么是 openGauss?随着数字化转型的不断深入,数据库作为信息系统的核心基础设施,在金融、电信、政务、能源、互联网等行业发挥着越来越重要的作用。长期以来,传统数据库市场主要由国外数据库产品占据。为了推动数据库技术自主创新,构建安全、可靠、高性能的数据管理基础设施,国内也涌现出了许多优秀的数据库产品。其中,open...
- 会议室预约看起来只是填写房间和起止时间,却有几个容易忽略的问题:上一场十点结束,下一场能否十点开始?取消的预约是否继续占用房间?两个人同时提交怎么办?下面用一个小型物业应用场景说明设计思路。代码是说明性示例,尚未运行验证,不代表已部署项目的实测结果。 一、明确时间边界将预约表示为半开区间 [开始时间, 结束时间),包含开始时刻,不包含结束时刻。因此,09:00—10:00 与 10:00—1... 会议室预约看起来只是填写房间和起止时间,却有几个容易忽略的问题:上一场十点结束,下一场能否十点开始?取消的预约是否继续占用房间?两个人同时提交怎么办?下面用一个小型物业应用场景说明设计思路。代码是说明性示例,尚未运行验证,不代表已部署项目的实测结果。 一、明确时间边界将预约表示为半开区间 [开始时间, 结束时间),包含开始时刻,不包含结束时刻。因此,09:00—10:00 与 10:00—1...
- 一个网站很少只有一个容器,往往是程序本体加数据库再加缓存。用 docker run 一条条起,命令长、参数杂,起错顺序还互相连不上。Docker Compose 的做法是把这组容器的构成写进一个文件,一条命令整组拉起、一条命令整组停掉。本文讲清这份文件怎么写、日常四条命令怎么用,以及三条不能碰的红线。一个网站跑起来,通常不是一个容器能搞定的:程序本体一个、数据库一个、缓存可能还要一个。用最原... 一个网站很少只有一个容器,往往是程序本体加数据库再加缓存。用 docker run 一条条起,命令长、参数杂,起错顺序还互相连不上。Docker Compose 的做法是把这组容器的构成写进一个文件,一条命令整组拉起、一条命令整组停掉。本文讲清这份文件怎么写、日常四条命令怎么用,以及三条不能碰的红线。一个网站跑起来,通常不是一个容器能搞定的:程序本体一个、数据库一个、缓存可能还要一个。用最原...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签