<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Clojure 专题导航：从函数式编程到企业级 Web 与并发实战 on PlumePHP</title><link>https://plumephp.com/posts/clojure/</link><description>Recent content in Clojure 专题导航：从函数式编程到企业级 Web 与并发实战 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 08 Oct 2026 01:10:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/clojure/index.xml" rel="self" type="application/rss+xml"/><item><title>Clojure 桌面 UI：cljfx 与 JavaFX 实战</title><link>https://plumephp.com/clojure-desktop-ui-cljfx/</link><pubDate>Thu, 08 Oct 2026 01:10:00 +0800</pubDate><guid>https://plumephp.com/clojure-desktop-ui-cljfx/</guid><description>用 Clojure 构建桌面应用：cljfx 的声明式 UI 与状态驱动模型、JavaFX 控件与布局、fx/sub-val 响应式订阅、事件处理与副作用、CSS 样式、打包为原生安装包与 GraalVM native image 的可行性分析。</description></item><item><title>JSON/EDN 序列化与数据格式互操作</title><link>https://plumephp.com/clojure-json-edn-serialization/</link><pubDate>Thu, 08 Oct 2026 01:09:00 +0800</pubDate><guid>https://plumephp.com/clojure-json-edn-serialization/</guid><description>Clojure 数据序列化全景：EDN 与 JSON 的语义差异、cheshire 与 jsonista 的性能对比、自定义编码器、关键字与命名风格转换、Transit 跨语言传输、Nippy 二进制序列化，以及大文档流式解析与安全反序列化。</description></item><item><title>JVM 调优与容器化部署：GC、JFR 与 Docker</title><link>https://plumephp.com/clojure-jvm-tuning-deployment/</link><pubDate>Thu, 08 Oct 2026 01:08:00 +0800</pubDate><guid>https://plumephp.com/clojure-jvm-tuning-deployment/</guid><description>Clojure 服务的 JVM 调优与容器化部署实践：堆与 GC 选型（G1、ZGC、Shenandoah）、关键 JVM 参数、JFR 与 JMC 诊断、容器内存与 CPU 感知、Dockerfile 分层构建与 Kubernetes 资源配置、优雅停机与健康探针。</description></item><item><title>解析与 DSL：Instaparse 与解析器组合子</title><link>https://plumephp.com/clojure-parsing-instaparse/</link><pubDate>Thu, 08 Oct 2026 01:07:00 +0800</pubDate><guid>https://plumephp.com/clojure-parsing-instaparse/</guid><description>深入 Clojure 的解析与领域特定语言（DSL）：用 Instaparse 的 EBNF 语法构建解析器、CFG/PEG 两种模式与歧义处理、解析器组合子手写递归下降、错误定位与语法可视化调试，以及把语法树编译为可执行表达式的完整链路。</description></item><item><title>缓存策略：core.cache、Caffeine 与失效设计</title><link>https://plumephp.com/clojure-caching-strategies/</link><pubDate>Thu, 08 Oct 2026 01:06:00 +0800</pubDate><guid>https://plumephp.com/clojure-caching-strategies/</guid><description>系统梳理 Clojure 缓存方案：core.cache 的 TTL/LRU/LU 缓存与 defcache 宏、Caffeine 的 W-TinyLFU 与异步加载、Redis 分布式缓存与单飞（single-flight）模式，以及缓存击穿、穿透、雪崩的防护与失效设计。</description></item><item><title>组件与依赖注入：Component、Integrant 与 Mount</title><link>https://plumephp.com/clojure-component-integrant-di/</link><pubDate>Thu, 08 Oct 2026 01:05:00 +0800</pubDate><guid>https://plumephp.com/clojure-component-integrant-di/</guid><description>深入 Clojure 应用的组件化与依赖注入：从 Component 的 record 生命周期协议、Integrant 的数据驱动配置与合并机制，到 Mount 的 REPL 友好状态管理，覆盖依赖顺序、启动关闭钩子、测试隔离与三种方案的选型权衡。</description></item><item><title>Clojure 配置与密钥管理</title><link>https://plumephp.com/clojure-config-secrets/</link><pubDate>Wed, 07 Oct 2026 13:40:00 +0800</pubDate><guid>https://plumephp.com/clojure-config-secrets/</guid><description>Clojure 配置与密钥管理实践：环境分层与深合并优先级、Aero 的 reader tag 与 Integrant 生命周期集成、environ 与 cprop 方案对比、密钥注入与轮换策略、配置校验与启动失败快，以及配置漂移的可观测与审计。</description></item><item><title>Clojure 报表与文档生成</title><link>https://plumephp.com/clojure-report-generation/</link><pubDate>Wed, 07 Oct 2026 13:38:00 +0800</pubDate><guid>https://plumephp.com/clojure-report-generation/</guid><description>Clojure 报表与文档生成实战：PDFBox、OpenPDF 与 clj-pdf 的选型对比，Apache POI 与 docjure 导出 Excel，模板与数据绑定，大报表流式写出与内存控制，以及中文字体嵌入、自动换行与列宽等排版细节处理。</description></item><item><title>Clojure 集成大语言模型</title><link>https://plumephp.com/clojure-llm-integration/</link><pubDate>Wed, 07 Oct 2026 13:36:00 +0800</pubDate><guid>https://plumephp.com/clojure-llm-integration/</guid><description>Clojure 集成大语言模型的完整工程实践：多供应商 API 封装与 SSE 流式解析、core.async 管道编排与背压、工具调用与结构化输出校验、向量检索与 RAG 拼装、token 计量与并发限流、两级缓存去重，以及可观测指标与评测回放方法。</description></item><item><title>数据校验：spec 与 Malli 对比</title><link>https://plumephp.com/clojure-spec-malli/</link><pubDate>Wed, 07 Oct 2026 13:34:00 +0800</pubDate><guid>https://plumephp.com/clojure-spec-malli/</guid><description>对比 clojure.spec 与 Malli 两大数据校验方案：schema 表达力与组合能力、开放与封闭 map、递归与条件依赖、生成式测试集成、错误信息可读性、解释与编译模式的运行时开销，并给出 coercion、JSON Schema 导出与选型决策依据。</description></item><item><title>从 Java 迁移到 Clojure</title><link>https://plumephp.com/clojure-java-migration/</link><pubDate>Wed, 07 Oct 2026 13:32:00 +0800</pubDate><guid>https://plumephp.com/clojure-java-migration/</guid><description>系统讲解从 Java 渐进迁移到 Clojure 的工程路径：绞杀者模式与切入点排序、互操作边界与数据语义设计、Maven/Gradle 与 deps.edn 混合构建、AOT 与 uberjar 打包部署、团队技能矩阵与代码评审清单，以及常见陷阱与量化验收度量。</description></item><item><title>Clojure 实时通信与 Sente</title><link>https://plumephp.com/clojure-websocket-sente/</link><pubDate>Wed, 07 Oct 2026 13:30:00 +0800</pubDate><guid>https://plumephp.com/clojure-websocket-sente/</guid><description>深入 Clojure 实时通信实践：WebSocket 与 SSE 的选型依据、Sente 的握手协议与双向通道模型、服务端 Ring 路由与 ClojureScript 客户端接入、房间与广播实现、断线重连与状态同步策略，以及多实例伸缩、心跳保活与生产排错要点。</description></item><item><title>Babashka 脚本化与任务自动化：原生镜像、bb 任务与生产实践</title><link>https://plumephp.com/clojure-babashka-scripting/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-babashka-scripting/</guid><description>深入 Babashka 的脚本化与自动化实践：原生镜像（GraalVM native-image）原理与毫秒级启动优势、bb 任务（bb.edn）与脚本组织、内置库与 pods 扩展、文件与进程与 HTTP 操作、本地与 CI 自动化实战、与 JVM Clojure 的取舍边界，帮你把 Babashka 用成一套轻量、快速、可移植的脚本与任务运行器。</description></item><item><title>Clojure Kafka 事件流集成：Jackdaw 客户端、序列化与位移管理</title><link>https://plumephp.com/clojure-kafka-streaming/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-kafka-streaming/</guid><description>深入 Clojure 与 Kafka 的事件流集成：Jackdaw 客户端的生产者与消费者、序列化与 Schema Registry、消费位移与错误处理、与 core.async 的编排、与 Kafka Streams 的取舍、生产运维与监控，帮你把 Clojure 服务接进可靠、可观测的事件驱动架构。</description></item><item><title>Clojure 日志、指标与可观测性：Timbre、OpenTelemetry 与采样</title><link>https://plumephp.com/clojure-observability-logging/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-observability-logging/</guid><description>深入 Clojure 服务的可观测性建设：Timbre 结构化日志与上下文、MDC 与请求追踪、日志格式与采集、指标导出（metrics）、OpenTelemetry 埋点与 trace 传播、错误上报与采样策略、生产排错实践，帮你把「日志、指标、链路」三支柱接成一条能定位问题的观测流水线。</description></item><item><title>Clojure 认证授权与安全实践：Ring 安全链、JWT、密码哈希与审计</title><link>https://plumephp.com/clojure-auth-security/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-auth-security/</guid><description>深入 Clojure Web 应用的认证授权与安全实践：Ring 中间件安全链、Session 与会话管理、JWT 与令牌设计、密码哈希与密钥管理、CSRF/XSS/SQL 注入防护、权限模型与审计日志，帮你把安全从「散落的检查」变成「可复用、可测试、可审计的中间件链」。</description></item><item><title>Clojure 静态检查与格式化工具链：clj-kondo、cljfmt、zprint 与 CI</title><link>https://plumephp.com/clojure-linting-formatting/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-linting-formatting/</guid><description>深入 Clojure 的静态检查与格式化工具链：clj-kondo 的 lint 原理、规则配置与自定义 hook、cljfmt 与 zprint 的格式化差异、编辑器与 LSP 协同、CI 集成与增量检查、常见告警治理与团队规范落地，帮你搭出一条「提交即检查、保存即格式化」的高质量代码流水线。</description></item><item><title>Datalog 查询与 Datomic/Xtdb：数据即事实、pull、时间旅行与架构</title><link>https://plumephp.com/clojure-datalog-datomic/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-datalog-datomic/</guid><description>深入 Clojure 生态的 Datalog 与 Datomic/Xtdb 实践：数据即事实（EAVT）模型、查询与拉取（pull）语法、规则与递归、时间旅行与 as-of 历史查询、事务与数据库函数、Xtdb 的对象存储架构，以及与 SQL/ORM 的对比选型，帮你掌握一套不可变、可回溯、面向事实的数据层。</description></item><item><title>Clojure 函数式错误处理：Result、异常与结构化错误</title><link>https://plumephp.com/clojure-error-handling-patterns/</link><pubDate>Tue, 29 Sep 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-error-handling-patterns/</guid><description>深入 Clojure 函数式错误处理的实践模式：异常（ex-info/ex-data）与纯函数值错误（Result/Either）的权衡、结构化错误携带语义（错误码/上下文/可追踪）、错误处理组合子（safe/either/try-then）、错误边界与中间件统一兜底、spec 校验输入拦截、恢复与重试策略、日志与可观测性，以及何时抛异常何时返回值，帮你设计优雅、可诊断、可恢复的错误处理体系。</description></item><item><title>Clojure GraphQL API 实战：lacinia、Schema、Resolver 与权限</title><link>https://plumephp.com/clojure-graphql-api/</link><pubDate>Tue, 29 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-graphql-api/</guid><description>深入 Clojure GraphQL API 的工程实践：GraphQL 核心概念（查询/变更/订阅）、lacinia 库的 Schema 定义与 resolver 映射、类型系统与参数校验、字段解析器与数据加载（N+1 问题与批处理）、变更与事务、权限与鉴权（context 注入）、订阅与实时推送、与 REST 的对比与共存、以及性能陷阱（深度限制/复杂度控制），帮你用 Clojure 构建规范、可控、高性能的 GraphQL 服务。</description></item><item><title>Clojure REPL 驱动开发：nREPL、热重载与交互式工作流</title><link>https://plumephp.com/clojure-repl-driven-development/</link><pubDate>Tue, 29 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-repl-driven-development/</guid><description>深入 Clojure REPL 驱动开发（RDD）的工程实践：REPL 驱动开发的哲学与工作流、nREPL 协议与连接、Clojure CLI / Leiningen 的 REPL 启动、CIDER / Calva 编辑器集成、热重载与代码演化（load-file/require :reload）、远程与嵌入式 REPL、REPL 里的测试与调试、以及 REPL 驱动开发的陷阱与纪律，帮你把「即时反馈」变成日常开发的第一生产力。</description></item><item><title>Clojure 不可变数据结构：结构共享、持久化与 transient 优化</title><link>https://plumephp.com/clojure-persistent-data-structures/</link><pubDate>Tue, 29 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-persistent-data-structures/</guid><description>深入 Clojure 不可变数据结构的原理与实践：持久化数据结构与结构共享（persistent vector / hash map 的树形实现）、HAMT 哈希数组映射树、transient 临时可变（批量构建的性能捷径）、数据结构的时空复杂度对比、不可变带来的线程安全与函数式好处、以及实践中的选型（何时用 vector/map/set/sorted）、优化与陷阱，帮你理解「不可变为何高效」并写出性能友好的函数式代码。</description></item><item><title>Clojure core.async 深入：通道、背压、异常与并发编排</title><link>https://plumephp.com/clojure-core-async-advanced/</link><pubDate>Tue, 29 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-core-async-advanced/</guid><description>深入 Clojure core.async 的并发工程实践：channel 通道模型与缓冲策略（unbuffered/buffered/dropping/sliding）、go-block 与线程池模型、背压与阻塞（alts! 多路选择）、错误传播与 try/catch 在通道内的边界、timeout 与超时编排、quit 与关闭模式、pipeline 管道流水线、线程安全与性能陷阱，以及死锁与泄漏排查，帮你用 core.async 写出可控、无死锁的异步并发程序。</description></item><item><title>Clojure REST API 设计实战：reitit、coercion、错误模型与文档</title><link>https://plumephp.com/clojure-rest-api-design/</link><pubDate>Tue, 29 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-rest-api-design/</guid><description>深入 Clojure REST API 设计的工程实践：reitit 数据驱动路由与 coercion（Schema/Malli 参数校验）、REST 风格与资源建模、错误模型（结构化错误码/HTTP 状态）、分页与过滤排序、鉴权与权限（JWT/中间件）、API 版本化策略、契约测试与 OpenAPI 文档生成、性能与并发（异步/限流/缓存），帮你用 Clojure 设计出规范、可维护、可演进的高质量 API。</description></item><item><title>Clojure 测试与质量工程：clojure.test、kaocha 与 CI 集成</title><link>https://plumephp.com/clojure-testing-quality/</link><pubDate>Mon, 28 Sep 2026 21:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-testing-quality/</guid><description>深入 Clojure 测试与质量工程：clojure.test 与 kaocha 测试框架、expectations 行为风格、REPL 驱动测试、测试替身与依赖注入、数据库与外部服务测试、覆盖率与质量门禁、CI 流水线集成，构建从单元到系统的完整质量保障。</description></item><item><title>Clojure 数据管道与流处理：Kafka 消费、异步管道与 ETL</title><link>https://plumephp.com/clojure-data-pipeline/</link><pubDate>Mon, 28 Sep 2026 20:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-data-pipeline/</guid><description>深入 Clojure 的数据管道与流处理工程：Kafka 生产消费与消费组管理、基于 core.async 的异步管道与背压、ETL 清洗转换加载、批处理与增量处理、Exactly-Once 与幂等消费，以及管道可观测性与故障恢复，构建健壮的数据流转基础设施。</description></item><item><title>Clojure 微服务架构实战：服务发现、网关与观测</title><link>https://plumephp.com/clojure-microservices-architecture/</link><pubDate>Mon, 28 Sep 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-microservices-architecture/</guid><description>深入 Clojure 微服务架构的工程实践：从单体到微服务的拆分原则、服务发现与注册、API 网关与聚合、配置管理与环境隔离、可观测性三支柱（日志/指标/追踪）、容器化与 K8s 部署，以及事件驱动与 Saga 分布式事务，帮你用 Clojure 搭建可运维的微服务集群。</description></item><item><title>Clojure 网络服务深入：HTTP 客户端、WebSocket、SSE 与 gRPC</title><link>https://plumephp.com/clojure-network-services/</link><pubDate>Mon, 28 Sep 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-network-services/</guid><description>深入 Clojure 的网络服务层：http-kit 异步 HTTP 客户端与服务端、clj-http 同步调用、WebSocket 双向通信、SSE 服务器推送、gRPC 跨语言调用，以及网络超时、重试、连接池与背压的工程化处理，帮你在 Web 服务中稳健地调用与提供网络能力。</description></item><item><title>Clojure 数据科学与数值计算：tablecloth / tech.ml 实战</title><link>https://plumephp.com/clojure-data-science/</link><pubDate>Mon, 28 Sep 2026 17:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-data-science/</guid><description>深入 Clojure 生态的数据科学实践：tablecloth 数据框操作与 pipeline 处理、tech.ml 的 dataset/column 抽象、数值计算与统计分析、数据可视化、机器学习建模与模型评估，展示函数式风格如何让数据清洗与分析代码更简洁可复现。</description></item><item><title>Clojure 函数式设计模式：组合子、解释器与 Monad 实战</title><link>https://plumephp.com/clojure-fp-design-patterns/</link><pubDate>Mon, 28 Sep 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-fp-design-patterns/</guid><description>深入 Clojure 的函数式设计模式：用组合子模式替代策略/模板方法、用解释器模式实现 DSL、用命令模式封装副作用、用 Either/Maybe 实现类型化错误处理，以及 Monad 风格数据流组合，帮助你把面向对象的设计模式翻译成函数式语言习惯。</description></item><item><title>Clojure 领域建模与事件溯源：DDD、CQRS 与函数式实现</title><link>https://plumephp.com/clojure-event-sourcing-cqrs/</link><pubDate>Sat, 26 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-event-sourcing-cqrs/</guid><description>用 Clojure 实践 DDD 与事件溯源：限界上下文与聚合、decide/evolve 纯函数聚合建模、事件流与事件存储实现、CQRS 命令查询分离、投影与读模型、与 spec 校验集成、事件版本化与 Kafka/PostgreSQL 生产化，附完整可运行的银行账户事件溯源示例。</description></item><item><title>Clojure 性能优化与 GraalVM 原生编译</title><link>https://plumephp.com/clojure-performance-graalvm/</link><pubDate>Sat, 26 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-performance-graalvm/</guid><description>系统提升 Clojure 应用性能：类型提示消除反射、primitive 参数与数组（long-array/amap/areduce）、transient 可变数据结构、criterium 基准测试、direct-linking 优化，以及 GraalVM native-image 编译配置、反射配置与 Clojure 原生镜像注意事项、启动性能对比。</description></item><item><title>Clojure 生成式测试实战：test.check、收缩与 spec 集成</title><link>https://plumephp.com/clojure-property-testing/</link><pubDate>Sat, 26 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-property-testing/</guid><description>深入 Clojure 生成式（属性驱动）测试：test.check 生成器组合（gen/fmap、gen/bind、递归生成器）、随机测试与种子复现、收缩（shrinking）机制与自定义、与 clojure.spec 的 s/def + s/fdef + instrument 集成、在 CI 与 clojure.test 中的集成测试策略。</description></item><item><title>ClojureScript 全栈开发：reagent、re-frame 与 shadow-cljs 实战</title><link>https://plumephp.com/clojurescript-re-frame-fullstack/</link><pubDate>Sat, 26 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/clojurescript-re-frame-fullstack/</guid><description>深入 ClojureScript 全栈开发：reagent 的函数式 React 封装与 Hiccup 语法、re-frame 单向数据流事件循环、effects/coeffects 副作用建模、reg-event-fx/reg-sub 订阅体系、与 Ring/reitit 后端的 API 通信，以及 shadow-cljs 构建配置与 CLJC 代码共享，附完整可运行的全栈 CRUD 示例。</description></item><item><title>Clojure 数据库访问实战：next.jdbc、HoneySQL 与连接池管理</title><link>https://plumephp.com/clojure-database-access/</link><pubDate>Sat, 26 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-database-access/</guid><description>系统掌握 Clojure 数据库访问全链路：next.jdbc 数据源与参数化查询、事务处理与隔离级别、HoneySQL 数据驱动 SQL 生成、HugSQL SQL 文件驱动、HikariCP 连接池调优与监控、Migratus 数据库迁移，附完整可运行的 CRUD 与批量写入实战。</description></item><item><title>Clojure Transducers 深度解析：组合、状态化转导与性能实战</title><link>https://plumephp.com/clojure-transducers-deep/</link><pubDate>Sat, 26 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-transducers-deep/</guid><description>深入 Clojure Transducers 转导器：从 sequence 管线到 transduce/into/sequence/eduction 四大终结操作、comp 组合与复用、partition/take-while 等状态化转导器、自定义 xform 协议、早停机制，以及与 seq/lazy 序列和 Java Stream API 的性能对比与最佳实践。</description></item><item><title>Clojure 并发设计模式：STM、core.async 与 Agent 实战</title><link>https://plumephp.com/clojure-concurrency-patterns/</link><pubDate>Wed, 22 Oct 2025 10:06:00 +0800</pubDate><guid>https://plumephp.com/clojure-concurrency-patterns/</guid><description>深入 Clojure 并发编程三大支柱：STM 软件事务内存（ref/dosync/alter/commute）的一致性保证、core.async CSP 通道与 go-block 的异步编排、Agent 的异步队列更新模型，附生产者-消费者模式、管道流水线、背压控制与超时策略等完整实战案例。</description></item><item><title>Clojure 现代 Web 全栈开发：Ring、reitit 与数据库集成</title><link>https://plumephp.com/clojure-modern-web-stack/</link><pubDate>Wed, 22 Oct 2025 10:05:00 +0800</pubDate><guid>https://plumephp.com/clojure-modern-web-stack/</guid><description>实战 Clojure Web 开发全技术栈：Ring 请求/响应处理与中间件链、reitit 高性能路由与数据驱动 API 设计、muuntaja 内容协商、next.jdbc 数据库访问与连接池管理、Pedestal 拦截器模式对比及完整的 RESTful CRUD 服务可运行代码。</description></item><item><title>Clojure spec 与测试：数据验证、生成测试与属性驱动</title><link>https://plumephp.com/clojure-clojure-spec/</link><pubDate>Wed, 22 Oct 2025 10:04:00 +0800</pubDate><guid>https://plumephp.com/clojure-clojure-spec/</guid><description>系统掌握 clojure.spec 数据验证框架：spec 定义与符合性检查（conform）、生成测试（test.check）、函数规格（fdef）、多规格组合与自定义生成器，对比 schema 与 malli 的类型验证方案，附 API 请求参数校验完整实战。</description></item><item><title>Clojure 工具链演进：Leiningen、Clojure CLI 与 deps.edn</title><link>https://plumephp.com/clojure-tools-deps/</link><pubDate>Wed, 22 Oct 2025 10:03:00 +0800</pubDate><guid>https://plumephp.com/clojure-tools-deps/</guid><description>全景梳理 Clojure 开发与构建工具的发展历程：从 Leiningen 的常规项目结构到 Clojure CLI / deps.edn 的现代工具链，覆盖项目初始化、依赖解析、REPL 启动、测试运行、AOT 编译、REPL 驱动编辑（Emacs/CIDER、VS Code/Calva、IntelliJ/Cursive）及生产环境打包部署方案。</description></item><item><title>Clojure 调用 Java 深度实践：从 JVM 互操作到性能优化</title><link>https://plumephp.com/clojure-java-interop/</link><pubDate>Wed, 22 Oct 2025 10:02:00 +0800</pubDate><guid>https://plumephp.com/clojure-java-interop/</guid><description>系统性讲解 Clojure 与 Java 的桥接技术：类加载与反射调用、代理与匿名类实现、Java 并发工具集成、性能优化策略（type hinting、primitive array、deftype）、Gradle/Leiningen 混合项目管理及在 Spring Boot 中嵌入 Clojure 的实战方案。</description></item><item><title>Clojure 多方法与协议：灵活的多态设计与实现</title><link>https://plumephp.com/clojure-multimethods-protocols/</link><pubDate>Wed, 22 Oct 2025 10:01:00 +0800</pubDate><guid>https://plumephp.com/clojure-multimethods-protocols/</guid><description>深入 Clojure 多态机制：多方法（Multimethod）的基于任意函数的动态分派、协议（Protocol）定义接口与类型扩展、记录（Record）实现协议的最佳实践，对比 Java 继承/接口与 Clojure ad-hoc 多态的差异，附带多租户权限系统完整设计案例。</description></item><item><title>Clojure 宏编程深度解析：从 quote/unquote 到 DSL 构建</title><link>https://plumephp.com/clojure-macro-programming/</link><pubDate>Wed, 22 Oct 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/clojure-macro-programming/</guid><description>深入 Clojure 宏（Macro）系统：掌握 quote/unquote/unquote-splicing 语法、syntax-quote 模式匹配、 hygienic macro 原理，通过实战案例构建自定义控制流、领域特定语言（DSL），并理解宏与函数的选型边界及调试技巧。</description></item><item><title>Learn Clojure by Examples</title><link>https://plumephp.com/learn-clojure-by-examples/</link><pubDate>Sat, 31 Aug 2024 11:14:40 +0800</pubDate><guid>https://plumephp.com/learn-clojure-by-examples/</guid><description>Learn Clojure by Examples系列文章可以帮助读者通过实际的例子逐步掌握Clojure这门语言。从入门到高级，涵盖动态类型开发、宏编程、Java互操作、STM并发和clojure.spec数据验证。</description></item><item><title>Clojure数据操作</title><link>https://plumephp.com/clojure-data-operations/</link><pubDate>Mon, 05 Aug 2024 20:58:53 +0800</pubDate><guid>https://plumephp.com/clojure-data-operations/</guid><description>Clojure 是一个为函数式编程设计的 Lisp 方言，它提供了丰富的序列操作来处理数据集合，特别是对于大量数据的处理。以下是一些基本的序列操作方法和技巧： 1.懒加载序列（Lazy Sequences） Clojure 的序列操作是懒加载的，这意味着它们不会立即计算序列中的所有元素，而是按需计算。</description></item><item><title>Clojure基础语法</title><link>https://plumephp.com/clojure-basic-syntax/</link><pubDate>Mon, 05 Aug 2024 20:11:23 +0800</pubDate><guid>https://plumephp.com/clojure-basic-syntax/</guid><description>这是一个Clojure基础语法教程，包含了Clojure的基本语法、Hello World程序、命名空间、注释和分隔符、符号等内容。</description></item><item><title>Clojure学习计划</title><link>https://plumephp.com/clojure-learning-plan/</link><pubDate>Fri, 26 Jul 2024 11:58:24 +0800</pubDate><guid>https://plumephp.com/clojure-learning-plan/</guid><description>学习Clojure语言是一个既有趣又具有挑战性的过程。Clojure是一种运行在Java虚拟机(JVM)上的Lisp方言，它结合了Lisp的表达性和JVM的强大功能。以下是一份详细的Clojure学习计划，帮助你从基础到高级逐步掌握这门语言。</description></item><item><title>Clojure 基础教程：从函数式编程核心概念到并发开发与 Web 服务实战</title><link>https://plumephp.com/clojure-basic-tutorial/</link><pubDate>Fri, 19 Jul 2024 18:44:57 +0800</pubDate><guid>https://plumephp.com/clojure-basic-tutorial/</guid><description>系统掌握 Clojure 函数式编程语言：从 S-表达式与不可变数据结构出发，深入理解宏（Macro）、多方法（Multimethod）、STM 软件事务内存、Agent 并发模型，并通过 Ring/Compojure 构建 Web 服务，附完整代码示例与 REPL 驱动开发最佳实践。</description></item></channel></rss>