AI Coding的一些实践 - 持续更新

2026-05-22 22:40:29 2

阶段: 需求明确后的编码过程

目的: 减少AI Coding堆砌屎山, 以及在突发情况下快速定位问题. 兼顾效率和质量

AI负责体力, 人负责架构、边界、数据流、约束


业务流程及架构

业务流必须自己整体梳理一次, 明确数据和状态在其中的流转和变动过程, 任何一环做到心中有数, 但不过分要求了解实现细节.

整体流程没问题, 代码也不会有太大问题.


数据表

表的大致关系需要自己设计(必须加上充分的注释), 细节可以交由AI辅助, 同样要明确数据在其中的流转和变动过程


编码

1. 将自己的编码风格提前封装为SKILL, 比如 (List判空和判断是否empty用hutool的CollUtil.isEmpty 字符串判空用hutool的CharSequenceUtil.isBlank 状态值必须定义为单独的枚举类)

2. 可以让AI写一个接口方法, 自己手动修改为自己看的顺眼的编码风格, 后面其它接口的编码让AI参照这种风格进行生成

3. 文档先行. 定义好所有接口的请求和响应参数, 用swagger生成文档 (AI辅助). 好处是 前端后端可以AI并行开发 和 约束AI边界, 让其不要自由发挥

4. prompt务必清晰无歧义, 复杂逻辑需要描述好每一步的逻辑, 最好带上表名和字段名

5. AI生成的代码review保证大致流程对即可, 细节可以暂时放过. 但需要做测试.

6. 明确代码边界, 比如controller只做参数接收和校验, service只做核心业务流程编排

7. 日志规范, 参照古法编程的规范

8. 一个coding上下文不要过大, 过大会影响AI能力, 每次只让 AI 聚焦一个业务闭环


禁止

禁止操作任何git命令

禁止操作除工作目录以外的文件

禁止添加无意义的空行

禁止验证是否编译通过 (可选)


SKILL

安装合适的skill, 能有效的约束AI, 提高代码质量, 比如 https://github.com/multica-ai/andrej-karpathy-skills

AI Coding的一些实践 - 持续更新

阶段: 需求明确后的编码过程目的: 减少AI Coding堆砌屎山, 以及在突发情况下快速定位问题. 兼顾效率和质量AI负责体力, 人负责架构、边界、数据流、约束业务流程及架构业务流必须自己整体梳理一次, 明确数据和状态在其中的流转和变动过程, 任何一环做到心中有数, 但不过分要求了解实现细节. 整
2026-05-22

SpringMVC流式返回数据

@GetMapping("/get") public ResponseBodyEmitter get(@RequestParam String question) { ResponseBodyEmitter emitter = new ResponseBodyEmi
2025-04-06
基于Ollama本地部署deepseek-r1:8b

基于Ollama本地部署deepseek-r1:8b

下载ollama https://ollama.com/ 设置好环境变量, 更换模型的存储位置OLLAMA_MODELS下载大模型命令行中输入ollama run deepseek-r1:8b
2025-02-22

Stable-Diffusion AI 绘画

git clone https://github.com/CompVis/stable-diffusion.git进入stable-diffusion目录在这里注册一个账号: https://huggingface.co/ 并生成个token安装CUDA https://blog.csdn.net/
2023-06-13

freemarker 时间显示不正常 设置时区

项目在本地开发的时候显示正常,部署上服务器就一直差8个小时,最后发现freemarker官方文档有这样的说明time_zone:时区的名称来显示并格式化时间。 默认情况下,使用JVM的时区。 也可以是 Java 时区 API 接受的值,或者 "JVM default" (从 FreeMarker 2
2020-03-28
IDEA 2019.1 xml 不高亮

IDEA 2019.1 xml 不高亮

前几天更新了idea后,发现xml里的代码都没有了高亮,变得跟记事本一个德性了打开setting ,搜索 File Types,找到xml项, 查看下方的匹配格式,果然没有xml,(idea真是厉害)点击右方的+,输入*.xml,点击ok,解决问题
2020-03-28

npm install 淘宝镜像

npm install --registry=https://registry.npm.taobao.org
2020-03-28
Java中方法的参数传递机制

Java中方法的参数传递机制

来看一段代码 public class Man { private String name; private Integer age; public String getName() { return name; } publi
2020-03-28
基于自定义注解手写权限控制

基于自定义注解手写权限控制

方法一: AOP 方法二: 拦截器项目结构项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w
2020-03-28

Docker 部署 详细全过程 附代码

Docker 部署本站 全过程环境:CentOS7.61. 安装Docker其他版本CentOS可以参考这个https://help.aliyun.com/document_detail/187598.html查看本机内核版本,内核版本需高于 3.10uname -r 确保 yum 包最新yum u
2020-03-28

SpringBoot 启动普通java工程

引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>
2020-03-28

Vue.js DOM操作

<template> <input type="button" @click="reply($event)" value="回复"> </template> export default { methods: { replyFun(e) {
2020-03-29
CentOS7编译调试OpenJDK12

CentOS7编译调试OpenJDK12

1. 下载源码https://hg.openjdk.java.net/jdk/jdk12点击左侧的browse,再点击zip,就可以下载zip格式的源码压缩包。unzip xxx.zip 解压文件2. 安装jdkyum install java-11-openjdk-devel -y3. 运行con
2020-04-23
编写自己的Spring Boot Starter

编写自己的Spring Boot Starter

1.新建一个maven项目命名规则统一是xxx-spring-boot-starter完整pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
2020-06-29