第 1 章 AI 辅助编程概述.............................. 1
1.1 核心技术原理...............................................1
1.2 AI 辅助编程的开发流程 .............................2
典型开发流程...............................................2
1.3 常用 AI 辅助编程工具 ................................4
1.4 AI 辅助编程与传统编程的对比 .................4
1.5 氛围编程.......................................................5
第 2 章 BlogN 系统开发项目简介 ................ 7
2.1 背景...............................................................7
2.2 BlogN 系统概述...........................................7
2.3 功能需求.......................................................8
2.3.1 用户管理...........................................8
2.3.2 积分管理...........................................8
2.3.3 博客文章管理...................................8
2.3.4 图片管理...........................................9
2.3.5 博客文章分类...................................9
2.3.6 评论管理...........................................9
2.3.7 留言本管理.......................................9
2.3.8 订阅...................................................9
2.3.9 RSS 发布.........................................10
2.3.10 搜索...............................................10
2.4 技术选型.....................................................10
2.4.1 后端技术栈.....................................10
2.4.2 前端技术栈.....................................11
2.5 架构模式.....................................................12
2.5.1 MVC 模式.......................................12
2.5.2 Ajax+JSON 实现前后端分离 ........12
2.6 系统架构设计.............................................12
2.6.1 总体架构.........................................12
2.6.2 后端项目文件及目录结构.............13
2.6.3 数据库设计.....................................14
2.6.4 前端架构设计.................................15
2.7 用户界面设计 ............................................16
2.7.1 用户界面设计原则.........................16
2.7.2 关键页面.........................................17
第 3 章 开发环境和工具.............................20
3.1 开发环境 ....................................................20
3.2 Cursor .........................................................20
3.2.1 简介.................................................21
3.2.2 历史.................................................21
3.2.3 基本使用.........................................21
3.2.4 核心功能.........................................22
3.2.5 高级功能.........................................26
3.2.6 规则.................................................28
3.2.7 价格与成本.....................................29
3.2.8 小结.................................................30
3.3 开发实践 ....................................................30
第 4 章 数据库迁移 ....................................31
4.1 准备工作 ....................................................31
4.2 执行迁移 ....................................................32
4.3 小结 ............................................................35
第 5 章 测试页面创建.................................36
5.1 开发环境配置 ............................................36
5.1.1 配置 Remote Explorer ....................36
5.1.2 开发环境初始化.............................37
5.1.3 Python 虚拟环境 venv....................38
5.1.4 安装依赖.........................................39
5.1.5 生成测试页面.................................40
5.1.6 配置 Apache ...................................42
5.1.7 配置数据库连接.............................44
5.1.8 配置 Git 环境..................................47
5.2 评审生成的代码.........................................48
5.2.1 blogn2.conf......................................49
5.2.2 blogn2-service .................................50
5.2.3 run.py...............................................50
5.2.4 src/main.py ......................................51
5.2.5 src/database.py.................................52
5.2.6 src/routes/test.py..............................54
5.2.7 src/routes/user.py.............................55
5.2.8 目录结构.........................................56
5.3 一个安全漏洞.............................................57
5.4 相关知识点介绍.........................................59
5.4.1 CORS 简介......................................59
5.4.2 FastAPI 的路由机制.......................60
5.4.3 FastAPI 的异步引擎和同步引擎 .................................................61
5.4.4 SQLModel 简介..............................62
5.4.5 Python 的高级语法.........................63
第 6 章 生成首页 ....................................... 64
6.1 def_page 分支.............................................64
6.2 静态页面.....................................................65
6.2.1 生成首页结构.................................65
6.2.2 用户界面调整.................................69
6.2.3 相关问题.........................................71
6.3 网站元数据.................................................72
6.3.1 生成页面.........................................72
6.3.2 代码分析.........................................74
6.4 MVC 模式...................................................81
6.4.1 基于 MVC 模式重构......................82
6.4.2 修正问题.........................................85
6.4.3 代码分析.........................................86
6.5 清理代码.....................................................93
6.6 最新加入博客、最热门博客和最近评论.............................................................95
6.6.1 第 一次生成代码.............................95
6.6.2 修正“最近评论”列表卡片.........97
6.6.3 “你在骗人”...................................98
6.6.4 大语言模型的幻觉.......................103
6.7 头像...........................................................104
6.8 网站介绍 ..................................................107
6.9 最近留言 ..................................................108
6.10 最新博文摘要 ........................................ 111
6.11 代码合并 ................................................ 114
6.11.1 重构代码..................................... 114
6.11.2 拉取请求..................................... 116
6.11.3 评审代码.....................................120
6.11.4 Cursor 的 Bugbot ........................122
6.11.5 完成代码合并.............................126
第 7 章 单元测试......................................127
7.1 pytest 简介................................................127
7.2 创建单元测试代码 ..................................129
7.3 代码覆盖率 ..............................................132
7.4 单元测试和集成测试 ..............................136
7.5 数据库污染 ..............................................139
7.6 代码分析 ..................................................141
7.6.1 单元测试示例...............................142
7.6.2 集成测试示例...............................146
7.6.3 缺点...............................................150
7.7 合并代码前总结 ......................................151
7.7.1 测试统计.......................................151
7.7.2 测试覆盖范围...............................151
7.7.3 测试方法列表...............................151
7.7.4 运行测试.......................................152
7.7.5 值得注意的地方...........................153
7.8 代码合并 ..................................................154
第 8 章 性能与缓存层...............................156
8.1 对系统性能的考虑 ..................................156
8.2 一个数据库性能问题 ..............................157
8.3 缓存机制的选择 ......................................160
8.4 FastAPI 工作进程的生命周期................165
8.5 实现缓存代码 ..........................................168
8.5.1 实现基本代码...............................168
8.5.2 使代码运行...................................171
8.5.3 单元测试.......................................174
8.5.4 性能测试脚本...............................177
8.6 代码合并 ..................................................184
第 9 章 生成博客页面 .............................. 187
9.1 生成基本页面...........................................187
9.2 调整界面风格...........................................190
9.3 “分类列表”卡片的动态化.....................191
9.4 单元测试...................................................193
9.5 “最近评论”列表卡片的动态化和 Web 组件复用...................................................197
9.6 博客文章摘要列表卡片的动态化 ..........200
9.6.1 基本代码.......................................200
9.6.2 分页功能.......................................203
9.6.3 分类...............................................204
9.7 数据库升级...............................................207
9.8 代码合并与分析.......................................208
9.8.1 前端组件层...................................209
9.8.2 后端 API 层...................................212
9.8.3 数据库模型层...............................214
9.8.4 数据访问层...................................214
9.8.5 业务逻辑层...................................215
9.8.6 数据流程.......................................216
第 10 章 生成博客文章页面..................... 217
10.1 基本页面.................................................217
10.2 界面调整.................................................220
10.3 使用真正的链接.....................................222
10.4 多个图片附件.........................................223
10.5 RSS 订阅.................................................226
10.6 代码重构与合并.....................................229
第 11 章 用户管理.................................... 234
11.1 身份认证与授权.....................................234
11.1.1 基于 JWT 的解决方案 ...............234
11.1.2 数据库更新 .................................236
11.1.3 用户登录功能 .............................241
11.1.4 实现个人资料页面 .....................245
11.1.5 通用权限管理器 .........................251
11.1.6 后端的令牌管理 .........................254
11.1.7 前端的令牌管理 .........................255
11.2 用户信息管理.........................................258
11.2.1 重置用户密码.............................258
11.2.2 数据库表的自增字段.................262
11.2.3 实现注册码管理页面.................264
11.2.4 新用户注册.................................265
11.2.5 用户列表.....................................268
11.2.6 缓存和测试.................................274
11.3 代码重构与合并 ....................................278
第 12 章 博客文章管理.............................280
12.1 发表博客文章 ........................................280
12.1.1 基本的发表功能.........................280
12.1.2 上传图片.....................................282
12.1.3 调试与重构.................................288
12.2 修改博客文章 ........................................291
12.3 删除博客文章 ........................................293
12.4 支持多张图片 ........................................298
12.5 支持 Markdown 格式.............................301
12.6 代码重构与合并 ....................................305
第 13 章 评论和留言本管理 .....................307
13.1 评论 ........................................................308
13.1.1 发表评论.....................................308
13.1.2 删除评论..................................... 311
13.1.3 评论分页.....................................312
13.2 留言本 ....................................................317
13.2.1 留言本页面.................................318
13.2.2 主题页面.....................................321
13.2.3 发表留言.....................................322
13.3 缓存覆盖 ................................................323
13.4 代码重构与合并 ....................................324
第 14 章 订阅功能及其他.........................325
14.1 订阅功能 ................................................325
14.1.1 订阅博客.....................................325
14.1.2 广播博客文章.............................328
14.1.3 显示订阅的博客文章.................331
14.1.4 管理订阅博客.............................333
14.2 杂项 ........................................................335
14.2.1 维护个人资料.............................335
14.2.2 设置个人介绍.............................336
14.2.3 维护分类.....................................338
14.2.4 管理友情链接.............................339
14.2.5 更新全局统计信息.....................339
14.2.6 冻结用户.....................................340
14.3 代码重构与合并.....................................340
14.4 数据库更新.............................................343
14.4.1 重新计算统计信息.....................343
14.4.2 增加索引.....................................344
14.4.3 统计信息的实时计算.................345
第 15 章 基于 BERT 的全文检索 ............. 348
15.1 语义检索与 BERT 技术.........................348
15.2 技术栈.....................................................349
15.2.1 向量化数据的存储.....................349
15.2.2 封装了BERT 功能的Python 库...349
15.2.3 针对中文优化的预训练模型.....349
15.3 初始化设置 ............................................350
15.4 表结构和分段存储 ................................351
15.5 搜索页面的实现 ....................................355
15.6 向量化数据的更新和删除....................359
15.7 已有数据的向量化 ................................362
15.8 相似度和搜索调优 ................................364
15.8.1 相似度和阈值.............................365
15.8.2 计算片段相似度.........................365
15.8.3 计算整体相似度.........................366
15.8.4 搜索调优.....................................368
后记:未完成的工作 ..................................370