Show HN: JavaFactory - 用于生成 Java 代码的 IntelliJ 插件
JavaFactoryPluginDev / javafactory-plugin
JavaFactory
JavaFactory 是一个使用 LLM 自动生成重复 Java 代码的工具。它产生的结果比传统的 AI 代码生成器更可预测和稳定。JavaFactory 基于两个核心组件运行:
- 模式定义: 用自然语言定义每个工作单元(例如,测试生成、实现生成等)。
- 基于注解的引用收集: 使用注解显式指定所需的类。
定义后,这些模式可以重复使用,以生成各种类型的代码——例如实现、测试和 fixtures。
- 🔗 JetBrains Marketplace
- 📘 使用方法
- 🛠 安装:IntelliJ > Settings > Plugins > Search:
JavaFactory
演示:20 秒内生成 400 行代码,全部测试通过
Demo: 400 Lines in 20s. All tests passed
以下演示展示了一个生成 400 行代码且所有测试均通过的示例:
主要特性
1. 将工作单元定义为模式
Define units of work as patterns
重复性任务可以定义为单个模式。模式清楚地指定要生成什么、如何生成以及要引用哪些类。
一个模式由两个主要部分组成:
系统提示 (System Prompt)
## Goal
{{ user_defined_goal }}
## Rules
{{ user_defined_rules }}
## Output
{{ expected_format }}
## Example
{{ typical_example_code }}
用户提示 (User Prompt)
<< {role_name1 } >>
{{ class source }}
<< {role_name1 } >>
{{ class source }}
....
编辑模式 (Edit Patterns)
您可以为每个任务配置系统提示和用户提示,并且 JavaFactory 为此目的提供了专门的 UI。
- 编辑系统提示配置
Goal, Rules, Output, Example 可以自定义
- 编辑用户提示配置
确定哪些类应包含在用户提示中。
2. 基于注解的引用收集
Annotation-Based Reference Collection
要在一个模式中使用的类,使用注解显式地进行限定。当一个类使用特定角色进行注解时,如果它匹配模式中定义的引用目标,它将自动包含在内。
注解分为两种主要类型:
@JavaFactoryData
- 递归地收集
referencedData
中指定的类。 - 示例:领域模型、实体和其他与数据相关的类。
- 递归地收集
@JavaFactoryApi
- 仅收集一级的
referencedApi
。 - 可以选择为 API 指定实现、测试和 fixture 类。
- 示例:API 接口,如 Reader、Writer、Validator。
- 仅收集一级的
您可以显式控制代码生成需要哪些类以及引用收集应该进行多远。
推荐用于
对传统 AI 代码生成器感到失望的人
Those who have been disappointed with traditional AI code generators
- 如果您在前期的代码生成中遇到过不可预测的结果或可维护性问题
- 如果您想要的不仅仅是简单的生成,您想要显式控制任务单元和引用结构
在重复、结构化环境中工作的开发人员
Developers working in repetitive, structured environments
-
例如:具有重复模式的环境,如分层架构
-
在定义一次规则后,可以重复自动执行以下任务:
- dao-repository-implementation
- dao-repository-test
- dao-repository-fixture
- domain-api-implementation
- domain-api-test
- domain-api-fixture
在这种结构中,我建议手动设计红色框,并让 JavaFactory 自动化蓝色框。