mcpField
1
142-java-functional-programming

142-java-functional-programming

github.com/jabrena开发456380 次安装1 天前更新
代码仓库

关于 142-java-functional-programming

这是一个面向 Java 开发者的函数式编程技能,用于评估和改进不可变性、纯函数及函数组合等代码实践。它涵盖 Stream、Optional、Lambda 和较新的 Java 特性,并要求先确认编译与语言版本兼容性。

主要功能

  1. 01改进不可变对象与纯函数
  2. 02应用 Lambda、方法引用与函数接口
  3. 03使用 Stream 与 Optional 惯用写法
  4. 04采用函数组合与高阶函数
  5. 05按 Java 版本检查特性兼容性

适用场景

  1. 01重构 Java 代码以改善不可变性
  2. 02将代码改为安全使用 Stream 或 Optional
  3. 03分离副作用并整理核心逻辑

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 142-java-functional-programming

安装后在 Claude Code 中输入/142-java-functional-programming确认已加载。

附带文件references/142-java-functional-programming.md

详细介绍

Java 函数式编程规则

识别并应用 Java 中的函数式编程原则,以提升不可变性、表达力和可维护性。

此技能涵盖哪些内容?

  • 不可变对象和 Records(JEP 395)
  • 无副作用的纯函数
  • 函数式接口:Function、Predicate、Consumer、Supplier、自定义 @FunctionalInterface
  • Lambda 表达式和方法引用
  • Stream API:filter/map/reduce 管道、并行流、toUnmodifiable* 收集器
  • Optional 的惯用用法:使用 map/flatMap/filter/orElse*,而非 isPresent()+get()
  • 函数组合:andThen/compose
  • 高阶函数:记忆化、柯里化、部分应用
  • instanceof 和 switch 的模式匹配(Java 21)
  • 使用密封类和接口(Java 17)构建完备的领域层次结构
  • Switch 表达式(Java 14)、Stream Gatherers(JEP 461)
  • 效果边界分离:将副作用置于边界,核心逻辑保持纯粹
  • 不可变集合:List.of()、Collectors.toUnmodifiableList()

**范围:**本参考资料按示例(每个核心领域的良好/不良代码模式)组织。请根据适用示例采纳建议。

约束

在应用任何函数式编程改动之前,确保项目能够编译。如果编译失败,请立即停止——在项目成功编译之前不要继续。确认 maven-compiler-plugin 的 source/target 支持所使用的 Java 特性。

  • **必须:**在应用任何改动前运行 ./mvnw compile 或 mvn compile
  • **安全:**如果编译失败,请立即停止——在项目成功编译之前不要继续
  • **验证:**确认 maven-compiler-plugin 的 source/target 支持所使用的 Java 特性
  • **验证:**应用改进后运行 ./mvnw clean verify 或 mvn clean verify
  • **应用改动前:**阅读参考资料,了解每种函数式编程模式的详细良好/不良示例、约束和保护措施
  • **边界情况:**如果请求范围不明确,请先停止并提出澄清问题,再应用改动
  • **边界情况:**如果缺少必需的输入、文件或工具,请说明缺少的内容,并询问是否要继续获取设置指导

何时使用此技能

  • 使用函数式编程改进代码
  • 应用函数式编程
  • 使用函数式编程重构代码
  • 安全地将 Java 代码重构为使用流或 Optionals
  • 改进 Java 中的不可变性和纯函数

工作流

  1. 在进行函数式重构前编译项目

运行 ./mvnw compile 或 mvn compile,如果编译失败,请立即停止。

  1. 确认 Java 特性兼容性

确认 maven-compiler-plugin 的 source/target 支持计划采用的函数式特性。

  1. 阅读函数式编程参考资料并评估代码

阅读 references/142-java-functional-programming.md,找出不可变性、纯函数和函数组合方面的改进机会。

  1. 应用函数式编程改进

实施选定的函数式重构,同时将副作用保留在边界处。

  1. 通过完整构建进行验证

应用改进后运行 ./mvnw clean verify 或 mvn clean verify。

参考资料

详细指导、示例和约束,请参阅 references/142-java-functional-programming.md。

评论

支持 Markdown