用 AI 提交代码的好处
作者:程序员罗尼 | 发布:2025-11-08 | 原文:https://mp.weixin.qq.com/s/PXGhWR4uWoTmVbNBDJRXgA
AI 提交的 git commit message 更加详细和全面。
不像程序员一样经常偷懒,比如
bug fix
new function
等笼统的 message,读来毫无信息量。
下面是一个 AI commit message 的例子:
Sat Nov 8 08:28:55 2025
feat: 统一导航菜单 - 所有家庭显示相同的菜单结构
- 移除 isMultiMemberFamily 判断逻辑
- 统一菜单结构:所有家庭(包括个人家庭)都显示相同的菜单项
- 添加成员管理、邀请码管理、家庭设置、家庭管理菜单项
- 提升用户体验一致性,个人家庭用户可以看到并使用所有功能
- 简化代码逻辑,移除条件判断
- 添加统一导航菜单执行计划文档
一看就详细和清晰很多。
由此可以带来的好处是什么呢?
首先是根据 git 追溯历史的时候,知道这段代码提交做了什么。
其次可以根据 git commit message,来进行工作总结,日粒度,周粒度都可以,以后写日报,写周报再也不费力了,哈哈哈。
下面是一个 AI 生成的今日工作总结示例,看起来很详细,足够给领导汇报了,而且只需要 1 分钟不到就写完了,666。
以下由 AI 生成:
2025-11-08 工作总结
概述
今天主要进行了大规模的项目重构和代码优化工作,共完成 23 个提交,涉及路由统一、组件重构、项目结构整理、Bug 修复等多个方面。
主要工作内容
1. 路由和导航系统重构
1.1 统一路由结构
-
目标: 统一所有家庭(包括个人家庭)使用
/families/{id}/xxx路由格式 -
变更:
-
移除
isPersonalFamily判断逻辑 -
统一路由规则,简化代码
-
添加短路径自动重定向功能
-
影响文件:
DashboardNav.tsx,AccountSwitcher.tsx,FamilyContext.tsx -
提交:
25470c9,17a9ac0
1.2 删除短路径页面
-
目标: 简化路由结构,统一使用家庭路径格式
-
删除的页面:
-
/dashboard→ 重定向到/families/{id}/dashboard -
/transactions→ 重定向到/families/{id}/transactions -
/categories→ 重定向到/families/{id}/categories -
/budgets→ 重定向到/families/{id}/budgets -
提交:
240c562
1.3 导航菜单优化
-
变更:
-
从导航栏移除"成员管理"和"邀请码管理"菜单项(已集成在家庭设置页面)
-
更新菜单标签:仪表盘→统计分析,账目→收支管理,分类→分类管理,预算→预算管理
-
删除统计页面,统一使用仪表盘页面
-
提交:
a96f923,1f82f82,6dfac7e
1.4 登录页面路由组
- 变更: 将登录页面移动到
(auth)路由组,保持代码组织一致性 - 提交:
06a5d7a
2. 代码重构和组件提取
2.1 成员管理页面重构
-
目标: 提升代码可维护性
-
成果:
-
代码从 511 行减少到 169 行(减少 67%)
-
提取数据加载逻辑到
useFamilyMembershook -
提取权限检查逻辑到
useMemberPermissionshook -
创建工具函数模块和可复用组件
-
提交:
a09b4d9
2.2 加入家庭页面重构
-
目标: 提升代码可维护性
-
成果:
-
代码从 470 行减少到 77 行(减少 83.6%)
-
提取数据查询、转换、验证逻辑到独立文件
-
创建
useJoinFamilyhook 统一管理状态 -
创建可复用组件(InvitationCodeInput, FamilyPreviewCard, JoinSuccessCard)
-
提交:
91c6a97
2.3 创建邀请码对话框重构
-
目标: 提升代码可维护性
-
成果:
-
代码从 455 行减少到 80 行(减少 82.4%)
-
提取表单 Schema 和配置到独立文件
-
提取业务逻辑到 hooks(useCreateInvitation, useCopyToClipboard)
-
创建表单字段组件和视图组件
-
提交:
45f31df
2.4 Dashboard 卡片组件提取
-
目标: 提高代码复用性和可维护性
-
成果:
-
创建
src/components/dashboard/目录 -
创建通用
StatCard组件 -
创建
IncomeCard,ExpenseCard,BalanceCard统计卡片组件 -
创建
EmptyBudgetCard和QuickActionsCard组件 -
Dashboard 页面代码从 252 行减少到 200 行
-
提交:
d1998db
3. Bug 修复
3.1 修复家庭切换路由错误
- 问题: 在
/families页面切换家庭后,路由会变成families/{id}/families,导致 404 - 修复: 在
AccountSwitcher中添加对/families和/families/join的特殊处理 - 提交:
88be78a
3.2 修复邀请码创建成功视图显示问题
-
问题: 创建邀请码成功后,依然显示创建表单,而不是成功视图
-
修复:
-
修改
useCreateInvitationhook,移除创建成功后立即调用onSuccess的逻辑 -
在关闭成功视图时才刷新列表
-
提交:
9c0c1f9
4. 项目结构整理
4.1 组件目录重组
-
目标: 按功能模块组织组件
-
变更:
-
创建
budget/,category/,transaction/,family/,layout/,common/目录 -
移动所有组件到对应的功能模块目录
-
更新所有导入路径
-
提交:
2dfd0e8
4.2 配置文件统一管理
-
目标: 统一管理配置文件
-
变更:
-
创建
configs/目录 -
移动
next.config.js,tailwind.config.ts,postcss.config.js,vitest.config.ts,vitest.setup.ts到configs/ -
在根目录创建符号链接保持工具兼容性
-
更新所有配置文件引用路径
-
提交:
4b8c9a2
4.3 脚本文件整理
-
变更:
-
创建
scripts/目录 -
移动所有脚本文件到
scripts/目录 -
更新脚本引用路径
-
提交:
11a2d49
4.4 文档整理
-
变更:
-
将文档文件整理到
dev_docs/2025-11-08/目录 -
移动备份文件到
supabase/backups/目录 -
提交:
7660755,07cb646
5. 代码清理和优化
5.1 移除未使用的参数和变量
-
变更:
-
移除
userId参数(统一使用family_id) -
移除未使用的
onRefresh和isOwner参数 -
移除未使用的导入(如
Trash2) -
修复弃用类型警告
-
提交:
07cb646,233a4c4
5.2 代码优化
-
变更:
-
内联
query变量 -
移除未使用的变量(如
isExpired,isExhausted) -
提交:
233a4c4
6. 文档更新
6.1 更新项目文档
-
变更:
-
更新
README.md和QUICK_START.md以反映当前项目状态 -
更新项目描述、技术栈、功能特性、项目结构、数据库结构
-
提交:
c90c92b
代码质量提升
代码行数减少
- 成员管理页面: 511 行 → 169 行(减少 67%)
- 加入家庭页面: 470 行 → 77 行(减少 83.6%)
- 创建邀请码对话框: 455 行 → 80 行(减少 82.4%)
- Dashboard 页面: 252 行 → 200 行(减少 20%)
代码组织改进
- 按功能模块组织组件
- 提取可复用的 hooks 和工具函数
- 创建独立的组件库
- 统一配置文件管理
可维护性提升
- 组件职责更清晰
- 代码复用性提高
- 类型定义更完善
- 测试更容易
新增文件
组件文件
src/components/dashboard/StatCard.tsxsrc/components/dashboard/IncomeCard.tsxsrc/components/dashboard/ExpenseCard.tsxsrc/components/dashboard/BalanceCard.tsxsrc/components/dashboard/EmptyBudgetCard.tsxsrc/components/dashboard/QuickActionsCard.tsxsrc/components/family/members/MemberCard.tsxsrc/components/family/members/MemberList.tsxsrc/components/family/members/MemberActionsMenu.tsxsrc/components/family/join/InvitationCodeInput.tsxsrc/components/family/join/FamilyPreviewCard.tsxsrc/components/family/join/JoinSuccessCard.tsxsrc/components/family/invitation/InvitationForm.tsxsrc/components/family/invitation/InvitationSuccessView.tsxsrc/components/family/invitation/form-fields/*.tsx(4个字段组件)
Hooks 文件
src/hooks/family/useFamilyMembers.tssrc/hooks/family/useMemberPermissions.tssrc/hooks/family/useJoinFamily.tssrc/hooks/family/useCreateInvitation.tssrc/hooks/family/useCopyToClipboard.ts
工具函数文件
src/lib/utils/family/member-queries.tssrc/lib/utils/family/member-transforms.tssrc/lib/utils/family/member-permissions.tssrc/lib/utils/family/member-utils.tssrc/lib/utils/family/invitation-queries.tssrc/lib/utils/family/invitation-transforms.tssrc/lib/utils/family/invitation-validation.tssrc/lib/utils/family/invitation-form-schema.tssrc/lib/utils/family/invitation-form-config.ts
文档文件
dev_docs/2025-11-08/FAMILIES_ROUTE_SWITCH_BUG_ANALYSIS.mddev_docs/2025-11-08/REMOVE_NAV_MENU_ITEMS_PLAN.mddev_docs/2025-11-08/REMOVE_STATISTICS_PAGE_PLAN.mddev_docs/2025-11-08/SHORT_PATH_PAGES_ANALYSIS.mddev_docs/2025-11-08/COMPONENTS_STRUCTURE_REORGANIZATION_PLAN.mddev_docs/2025-11-08/CONFIG_FILES_REORGANIZATION_PLAN.mddev_docs/2025-11-08/MEMBERS_PAGE_REFACTOR_PLAN.mddev_docs/2025-11-08/JOIN_FAMILY_PAGE_REFACTOR_PLAN.mddev_docs/2025-11-08/CREATE_INVITATION_DIALOG_REFACTOR_PLAN.mddev_docs/2025-11-08/DASHBOARD_CARDS_EXTRACTION_PLAN.mddev_docs/2025-11-08/DAILY_SUMMARY.md(本文档)
删除的文件
页面文件
src/app/(dashboard)/dashboard/page.tsxsrc/app/(dashboard)/transactions/page.tsxsrc/app/(dashboard)/categories/page.tsxsrc/app/(dashboard)/budgets/page.tsxsrc/app/(dashboard)/statistics/page.tsxsrc/app/(dashboard)/families/[id]/statistics/page.tsxsrc/app/login/page.tsx(移动到(auth)路由组)
脚本文件
execute-phase1.shexecute-phase2.shverify-phase1.shverify-phase2.shrun-phase1-migration.sh
统计数据
- 总提交数: 23 个
- 代码行数减少: 约 1000+ 行
- 新增组件: 20+ 个
- 新增 Hooks: 5 个
- 新增工具函数文件: 9 个
- 新增文档: 10+ 个
- Bug 修复: 2 个
- 代码质量改进: 多项
下一步计划建议
- 继续重构: 可以考虑重构其他复杂页面(如 settings, budgets 等)
- 测试覆盖: 为新提取的组件和 hooks 添加单元测试
- 性能优化: 优化数据加载和渲染性能
- 功能完善: 完善快速操作卡片的功能
- 文档完善: 补充组件使用文档和 API 文档
总结
今天完成了大规模的项目重构工作,显著提升了代码质量和可维护性。通过组件提取、代码重构、项目结构整理等工作,项目结构更加清晰,代码更加模块化和可复用。同时修复了多个 Bug,提升了用户体验。