Night Field's Blog

Make it work, make it right, make it fast.

RAG Learning Notes (For Java / AI Agent Engineers)

1. What is RAG RAG stands for Retrieval-Augmented Generation. Core flow: 1 2 3 4 5 6 7 User Query ↓ Retrieval / Recall ↓ Relevant Document Chunk ↓ LLM Generates Answer In essence: fir...

Experience of JDK 8 to 17, JAX-RS to Spring Web upgrade

Jersey vs SpringBoot Web Jersey: - The implementation of JAX-RS (Java API for RESTful Web Services), which is a Java programming language API spec that provides support in creating web service...

Appium Screen Recording Solution Evaluation Report

Executive Summary This report targets Appium automation scenarios focused on Windows desktop applications and browser testing, comparing three screen recording solutions. The final recommendation ...

Appium in Practice: Writing Test Cases and Locating Elements

This article assumes you have already set up the Appium environment (Server and corresponding Drivers installed). The focus is on how to write a runnable test case and how to find element locator i...

Appium Architecture Design and Workflow

1. What Is Appium? Appium is an open-source, cross-platform UI automation testing framework covering mobile (Android / iOS) and desktop (Windows). Its core philosophy is to act as a “translator” —...

领域驱动设计(Domain-Driven Design)知识指南

本文档整合了领域驱动设计的核心概念、代码示例与架构约束方法,用于团队知识库建设。 1. 什么是领域驱动设计? 领域驱动设计(DDD)是一种以业务领域为核心的软件开发方法。它有三个重点: 通用语言(Ubiquitous Language):开发人员与领域专家使用同一套术语,这套术语直接反映在代码里。 聚焦业务复杂度:把核心价值放在领域模型上,而不是技术框架上。 ...

Apache HttpClient 模拟 SSO 登陆丢失 cookie 问题分析

背景 需要用 Java 访问一个被 SSO 保护的特殊接口获取信息。 方案设计 假如我们用浏览器来实现这个功能,步骤简单如下: 输入目标 API 地址 (浏览器自动重定向到 SSO 登陆页面) 输入用户名密码登陆 (浏览器重定向回到 API 地址,并附带认证信息) 获取目标 API 的资源信息 其中需要用户操作的是步骤 1 和步骤 3。 但要求是用 Java...

Mybatis 批量插入 Oracle 记录

基本环境 语言:Java 8 数据库:Oracle ORM 框架:MyBatis 3.4.5 需求 批量插入数据,数据需要有自增 id。每次插入有一个唯一的 sessionId 来标记这些记录,插入完成之后返回这个 sessionId。 方案 循环插入单条记录,伪代码: 1 2 3 4 5 int sessionId = dao.querySessionId(); for (R...

Redis 频繁加载数据的问题排查

背景 监控是系统的重要模块,我们给产线的 Redis 机器配置了全方位的监控,包括机器性能指标测试以及 Redis 服务测试等等。今天收到了 PagerDuty 告警,报告说 Redis 服务间歇性异常。 问题描述 Redis 是一个集群,三主三从,每个节点各配置了一个监控,监控的测试逻辑大致是,用 INFO,CLUSTER SLOTS,CLUSTER NODES 等命令查看节点以及集群的...

Typecho搬家笔记

背景 由于云主机马上就要到期了,所以最近对比了几家云服务器提供商。最终决定尝试一下 UCloud。于是不得不把原博客(typecho)迁移过来。下面是流水账式地记录一下过程。 过程记录 本想尝试按照以前的笔记重新搭建一套环境,然后再把数据导过来,但是一想到这一长串的步骤,以及可能碰到的问题就头疼,于是决定构建一个基于容器的 LNMP 环境,一劳永逸,也方便日后继续做博客迁移。当然如果有同学...