飞算JavaAI:程序员深夜加班的“电子布洛芬“
目录
-
-
- 一、安装篇:30秒获得AI超能力
- 二、新手村任务:第一个AI生成接口
- 三、老项目改造实战
- 四、团队规范植入
- 五、Debug神操作
- 六、为什么说它像\"电子布洛芬\"?
-
一、安装篇:30秒获得AI超能力
-
IDEA插件市场速装
- 打开IntelliJ IDEA → 点击右下角「配置」→「插件」→ 搜索\"飞算\"
- 认准蓝色火箭图标(别被山寨插件骗了)→ 点击安装 → 连进度条都没看清就装好了
-
微信扫码即注册
- 重启IDEA后 → 右上角出现火箭图标 → 点击选择「微信扫码」
- 贴心设计:支持关联Git账号(自动同步团队规范)
- 企业用户:可配置SSO单点登录(找管理员要秘钥)
- 安全设置必看
- 首次登录弹出「隐私保护选项」→ 建议勾选:
✓ 仅本地分析(代码不出局域网)
✓ 关闭匿名数据分享(强迫症福音)
- 首次登录弹出「隐私保护选项」→ 建议勾选:
// 首次使用时的初始化配置示例public class FeisuanConfig { public static void main(String[] args) { // 设置本地分析模式(确保代码不出内网) System.setProperty(\"feisuan.mode\", \"local\"); // 自定义AI生成规则路径 System.setProperty(\"feisuan.rule.path\", \"/projects/.feisuan/rules.yml\"); }}
二、新手村任务:第一个AI生成接口
- 创建护航项目
- 右键项目根目录 →「飞算」→「新建护航任务」→ 选择「Spring Boot」模板
- 勾选「我需要:用户管理模块」→ 看AI如何3步建好CRUD:
① 生成带Swagger的Controller
② 制作符合阿里规约的Service
③ 连单元测试都给你准备好了
- 实时调教AI
- 对生成的代码不满意?直接说人话:
“把分页参数改成PageHelper风格”
“给所有接口加上@PreAuthorize注解” - 支持语音输入(深夜加班不用吵到家人)
- 对生成的代码不满意?直接说人话:
// AI生成的Controller示例(带Swagger注解)@RestController@RequestMapping(\"/users\")@Api(tags = \"用户管理\")public class UserController { @Autowired private UserService userService; @GetMapping @ApiOperation(\"分页查询用户\") public Result<PageInfo<UserVO>> listUsers( @RequestParam(defaultValue = \"1\") Integer pageNum, @RequestParam(defaultValue = \"10\") Integer pageSize) { return Result.success(userService.listUsers(pageNum, pageSize)); }}
三、老项目改造实战
- 智能扫描
- 打开祖传项目 → 点击「代码体检」→ 等待5分钟得到报告:
🔴 高风险:ThreadLocal未清理(3处)
🟡 警告:魔法值\"STATUS=1\"(17处)
💡 建议:用策略模式重构if-else链
- 打开祖传项目 → 点击「代码体检」→ 等待5分钟得到报告:
- 一键手术
- 勾选要修复的问题 → 选择「保守治疗」(保留原逻辑)或「激进重构」
- 黑科技:点击「时光机」查看2018年该代码的演变历史
// 改造前(祖传代码)public class OrderService { public BigDecimal calculatePrice(Order order) { // 魔法值+复杂if-else if (order.getType() == 1) { return order.getAmount().multiply(new BigDecimal(\"0.9\")); } else if (order.getType() == 2) { return order.getAmount().multiply(new BigDecimal(\"0.8\")); } // ...更多if-else }}// AI重构后(策略模式)public class OrderService { private Map<Integer, DiscountStrategy> strategies; public BigDecimal calculatePrice(Order order) { return strategies.get(order.getType()) .calculate(order.getAmount()); }}
四、团队规范植入
- 编写团队\"宪法\"
在项目根目录创建.feisuan/rules.yml
:controller: - 必须添加@ApiOperation - 返回值包装为Result<T> service: - 方法不超过150行 - 禁止出现System.out
- AI监考老师
- 新人提交代码时自动检查:
✅ 符合规范 → 打上「AI认证」标签
❌ 违规 → 附修改建议(比技术总监语气温柔)
- 新人提交代码时自动检查:
# .feisuan/rules.yml 完整示例rules: controller: - \"必须添加@Api(tags)\" - \"返回值必须包装为Result\" - \"每个方法添加@LogRecord注解\" service: - \"方法长度 ≤ 150行\" - \"禁止使用System.out\" - \"事务注解必须指定rollbackFor\" exception: - \"自定义业务异常必须继承BaseException\" - \"错误码必须使用枚举定义\"# 可以通过自然语言添加规则natural_language_rules: - \"所有Mapper接口方法必须加@Mapper注解\" - \"DTO类字段必须用包装类型\"
五、Debug神操作
- 报错翻译官
遇到异常直接拖选报错信息 → 右键「诊断病因」→ 得到:
💊 直接原因:MyBatis参数#{id}写成${id}
📚 深层分析:可能导致SQL注入(附CVE案例)
🛠️ 修复方案:点击自动替换
// 问题代码示例(会被AI检测出问题)public class ProblematicCode { public void processUser(String userId) { // 可能抛出NPE String userName = getUserById(userId).getName(); // SQL注入风险 jdbcTemplate.query(\"SELECT * FROM orders WHERE user_id=\" + userId); }}// AI给出的修复建议public class FixedCode { @Nullable public void processUser(@NotBlank String userId) { // 建议1:NPE防护 Optional.ofNullable(getUserById(userId)) .ifPresent(user -> { String userName = user.getName(); // 建议2:参数化查询 jdbcTemplate.query( \"SELECT * FROM orders WHERE user_id=?\", new Object[]{userId}, // ... RowMapper ); }); }}
- 代码时光机
对着神秘方法点击「考古」→ 显示:
“该逻辑由@张三在2021年为财务需求添加
当时业务规则:日元换算需四舍五入到小数点后2位”
六、为什么说它像\"电子布洛芬\"?
- 即刻止痛:从\"这个需求做不了\"到\"你看这样行吗\"只要几分钟
- 长效缓释:随着使用越来越懂你的编码习惯
- 0副作用:所有分析在本地完成,连Git都不需要push
程序员浪漫彩蛋:连续使用30天后,生成的代码注释会出现隐藏诗句
“我写下的每一行代码,都是与你并肩作战的证明”
点击开启无痛编程
(安装后记得备点零食——因为加班变得太高效,容易饿)