同样的需求,别人让AI写的代码能直接上线,你写的全是TODO和占位符——差距在哪?
先看问题
帮我写一个用户登录功能public class Login {publicstaticvoidmain(String[] args) {String username = "admin";String password = "123456";if (username.equals("admin") && password.equals("123456")) {System.out.println("登录成功");}}}
换一种问法
Spring Boot 3.2项目,需要实现用户登录接口:- 接收用户名密码,验证成功返回JWT Token- 使用Spring Security + BCrypt- Token有效期24小时- 返回统一响应格式Result<T>- Controller-Service分层
@RestController@RequestMapping("/api/auth")@RequiredArgsConstructorpublic class AuthController {private final AuthService authService;@PostMapping("/login")public Result<LoginVO> login(@Valid@RequestBody LoginDTO dto) {return Result.success(authService.login(dto));}}@Service@RequiredArgsConstructorpublic class AuthService {private final AuthenticationManager authManager;private final JwtTokenProvider tokenProvider;private final UserRepository userRepository;public LoginVO login(LoginDTO dto) {Authentication auth = authManager.authenticate(new UsernamePasswordAuthenticationToken(dto.getUsername(), dto.getPassword()));User user = (User) auth.getPrincipal();String token = tokenProvider.generateToken(user);return new LoginVO(token, user.getId(), user.getUsername());}}// 还有SecurityConfig、JwtTokenProvider、异常处理...
我总结的几个关键点
1. 告诉AI你的技术栈
【背景】- 项目:Spring Boot 3.2 + Java 17 + MyBatis-Plus- 业务:银行对公贷款系统
2. 说清楚业务规则
【业务规则】1. 查询客户近12个月交易数据2. 评分规则:- 交易频率 > 50次/月:+20分- 无逾期记录:+50分3. 总分 > 90分为A级,< 50分为D级
3. 给约束,不要让AI猜
【约束】- 参数校验用@Valid + @NotBlank- 异常用全局异常处理器捕获- 日志记录入参和异常- 代码注释用中文
4. 给一个示例代码
【参考风格】@RestController@RequestMapping("/api/orders")@RequiredArgsConstructor@Slf4jpublic class OrderController {private final OrderService orderService;@GetMappingpublic Result<PageResult<OrderVO>> list(@Valid OrderQuery query) {log.info("查询订单列表,参数:{}", query);return Result.success(orderService.listOrders(query));}}
几个实用模板
新功能开发
【背景】Spring Boot 3.2 + Java 17【需求】实现客户信息查询接口,支持按名称模糊搜索、行业筛选、分页【约束】- Controller-Service-Mapper三层- 参数校验用@Valid- 返回统一格式Result<T>【参考风格】(贴一段你的代码)
代码补全
【现有代码】public String calculateRiskLevel(Long customerId) {// TODO: 实现风险评估逻辑}【业务规则】(写清楚规则)【约束】使用Stream API,异常返回D级
代码重构
【原始代码】(贴需要重构的代码)【重构目标】1. 用Stream替代for循环2. 优化条件判断【约束】保持方法签名不变
Bug修复
【问题】NPE at UserService.java:42【堆栈】(贴异常堆栈)【相关代码】(贴代码)【修复要求】分析原因,给出修复方案,补充单元测试
我踩过的坑
坑1:让AI自己选技术方案
帮我实现一个定时任务用Spring @Scheduled,每5分钟执行一次坑2:没说代码风格
坑3:没说要什么文件
生成Controller、Service、Mapper三层完整代码最后
你给的信息越具体,代码质量越高。
深蓝技术笔记 · 轻量技巧
夜雨聆风