Object、companion object 与 Kotlin 中的单例
区分 Kotlin 中的对象声明、对象表达式和 companion object,了解它们如何创建单例、从 Java 调用以及常见错误。
每篇一个主题,配合可运行的代码逐步讲解 — 从 Java、Spring Boot 到 AI、系统设计和 DevOps。
区分 Kotlin 中的对象声明、对象表达式和 companion object,了解它们如何创建单例、从 Java 调用以及常见错误。
使用 thiserror 为库定义清晰的错误类型,使用 anyhow 聚合错误并为应用程序添加上下文,以及如何组合两者使用。
使用模板字面量类型生成键名、解析路由参数,编写类型安全的事件发射器,包含 Vitest 类型测试和常见陷阱。
如何使用 JTokkit 本地计算 Token,用 BigDecimal 计算成本,阻止超出预算的请求,并与 Spring AI 实际用量数据进行对比。
配置 Maven 让 Kotlin 和 Java 相互调用,处理可空性,@JvmStatic、@JvmOverloads 和 Spring Boot 常见错误。
使用 Arc<Mutex<T>> 在线程间共享数据、使用 mpsc channel 传递消息,以及如何避免死锁、poisoning 和其他常见错误。
strict 标志在 tsconfig 中启用了哪些检查,每个检查会捕获什么错误,应该启用哪些 strict 以外的标志,以及如何将旧项目迁移到 strict 模式。
通过 HttpClient 和 WebClient 使用 Server-Sent Events 从 LLM API 接收每个 token,然后推送到浏览器,包含错误处理、超时和测试。
理解 LLM 如何调用应用函数,从原始 JSON 到 Spring AI 中的 @Tool。文章包含查询、取消订单的示例以及不需要调用真实模型的测试。
使用 by lazy 实现线程安全的延迟初始化,使用 Delegates.observable 和 vetoable 来监听或阻止属性值的改变。
使用 keyof、typeof 和 indexed access types 从现有数据推导类型,减少代码重复,让编译器帮你捕捉错误的 key。
使用 Axum 0.8 构建 REST API CRUD,包括 routing、extractor、shared state、使用 IntoResponse 处理错误以及不需要打开网络端口的处理程序测试。
学习如何声明函数类型、传递和返回 lambda、使用函数引用、闭包、lambda with receiver 以及 Kotlin 中的 inline。
何时在Rust中使用Box、Rc或Arc:heap分配、单线程内共享所有权和多线程间共享所有权,配合Weak、RefCell和Mutex。
如何在 Spring Boot 中强制 LLM 返回符合 JSON Schema 的数据:使用 Spring AI 映射到 record、启用原生 JSON Schema、验证、重试和编写测试。
配置 tsconfig 和 package.json 使 TypeScript 库正确生成 .d.ts 文件,为用户提供完整的类型支持,并通过 Vitest 进行测试。
Rust中使用Tokio进行异步编程的指南,包括async/await、spawn task、join!、select!、timeout、channel、spawn_blocking和async代码测试方法。
如何为 async 函数、Promise<T>、Awaited、Promise.all、类型安全的错误处理进行类型标注,以及避免 async 回调的常见陷阱。
实用的提示工程技巧如 system prompt、delimiter、few-shot、structured output 和 temperature,用 Spring AI 演示。
用 Kotlin 配置 Spring Boot 3 项目,编写 REST API、JPA entity、配置和测试,以及从 Java 迁移时常见的错误。