用 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%)

  • 提取数据加载逻辑到 useFamilyMembers hook

  • 提取权限检查逻辑到 useMemberPermissions hook

  • 创建工具函数模块和可复用组件

  • 提交: a09b4d9

2.2 加入家庭页面重构

  • 目标: 提升代码可维护性

  • 成果:

  • 代码从 470 行减少到 77 行(减少 83.6%)

  • 提取数据查询、转换、验证逻辑到独立文件

  • 创建 useJoinFamily hook 统一管理状态

  • 创建可复用组件(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 统计卡片组件

  • 创建 EmptyBudgetCardQuickActionsCard 组件

  • Dashboard 页面代码从 252 行减少到 200 行

  • 提交: d1998db

3. Bug 修复

3.1 修复家庭切换路由错误

  • 问题: 在 /families 页面切换家庭后,路由会变成 families/{id}/families,导致 404
  • 修复: 在 AccountSwitcher 中添加对 /families/families/join 的特殊处理
  • 提交: 88be78a

3.2 修复邀请码创建成功视图显示问题

  • 问题: 创建邀请码成功后,依然显示创建表单,而不是成功视图

  • 修复:

  • 修改 useCreateInvitation hook,移除创建成功后立即调用 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.tsconfigs/

  • 在根目录创建符号链接保持工具兼容性

  • 更新所有配置文件引用路径

  • 提交: 4b8c9a2

4.3 脚本文件整理

  • 变更:

  • 创建 scripts/ 目录

  • 移动所有脚本文件到 scripts/ 目录

  • 更新脚本引用路径

  • 提交: 11a2d49

4.4 文档整理

  • 变更:

  • 将文档文件整理到 dev_docs/2025-11-08/ 目录

  • 移动备份文件到 supabase/backups/ 目录

  • 提交: 7660755, 07cb646

5. 代码清理和优化

5.1 移除未使用的参数和变量

  • 变更:

  • 移除 userId 参数(统一使用 family_id

  • 移除未使用的 onRefreshisOwner 参数

  • 移除未使用的导入(如 Trash2

  • 修复弃用类型警告

  • 提交: 07cb646, 233a4c4

5.2 代码优化

  • 变更:

  • 内联 query 变量

  • 移除未使用的变量(如 isExpired, isExhausted

  • 提交: 233a4c4

6. 文档更新

6.1 更新项目文档

  • 变更:

  • 更新 README.mdQUICK_START.md 以反映当前项目状态

  • 更新项目描述、技术栈、功能特性、项目结构、数据库结构

  • 提交: c90c92b

代码质量提升

代码行数减少

  • 成员管理页面: 511 行 → 169 行(减少 67%)
  • 加入家庭页面: 470 行 → 77 行(减少 83.6%)
  • 创建邀请码对话框: 455 行 → 80 行(减少 82.4%)
  • Dashboard 页面: 252 行 → 200 行(减少 20%)

代码组织改进

  • 按功能模块组织组件
  • 提取可复用的 hooks 和工具函数
  • 创建独立的组件库
  • 统一配置文件管理

可维护性提升

  • 组件职责更清晰
  • 代码复用性提高
  • 类型定义更完善
  • 测试更容易

新增文件

组件文件

  • src/components/dashboard/StatCard.tsx
  • src/components/dashboard/IncomeCard.tsx
  • src/components/dashboard/ExpenseCard.tsx
  • src/components/dashboard/BalanceCard.tsx
  • src/components/dashboard/EmptyBudgetCard.tsx
  • src/components/dashboard/QuickActionsCard.tsx
  • src/components/family/members/MemberCard.tsx
  • src/components/family/members/MemberList.tsx
  • src/components/family/members/MemberActionsMenu.tsx
  • src/components/family/join/InvitationCodeInput.tsx
  • src/components/family/join/FamilyPreviewCard.tsx
  • src/components/family/join/JoinSuccessCard.tsx
  • src/components/family/invitation/InvitationForm.tsx
  • src/components/family/invitation/InvitationSuccessView.tsx
  • src/components/family/invitation/form-fields/*.tsx (4个字段组件)

Hooks 文件

  • src/hooks/family/useFamilyMembers.ts
  • src/hooks/family/useMemberPermissions.ts
  • src/hooks/family/useJoinFamily.ts
  • src/hooks/family/useCreateInvitation.ts
  • src/hooks/family/useCopyToClipboard.ts

工具函数文件

  • src/lib/utils/family/member-queries.ts
  • src/lib/utils/family/member-transforms.ts
  • src/lib/utils/family/member-permissions.ts
  • src/lib/utils/family/member-utils.ts
  • src/lib/utils/family/invitation-queries.ts
  • src/lib/utils/family/invitation-transforms.ts
  • src/lib/utils/family/invitation-validation.ts
  • src/lib/utils/family/invitation-form-schema.ts
  • src/lib/utils/family/invitation-form-config.ts

文档文件

  • dev_docs/2025-11-08/FAMILIES_ROUTE_SWITCH_BUG_ANALYSIS.md
  • dev_docs/2025-11-08/REMOVE_NAV_MENU_ITEMS_PLAN.md
  • dev_docs/2025-11-08/REMOVE_STATISTICS_PAGE_PLAN.md
  • dev_docs/2025-11-08/SHORT_PATH_PAGES_ANALYSIS.md
  • dev_docs/2025-11-08/COMPONENTS_STRUCTURE_REORGANIZATION_PLAN.md
  • dev_docs/2025-11-08/CONFIG_FILES_REORGANIZATION_PLAN.md
  • dev_docs/2025-11-08/MEMBERS_PAGE_REFACTOR_PLAN.md
  • dev_docs/2025-11-08/JOIN_FAMILY_PAGE_REFACTOR_PLAN.md
  • dev_docs/2025-11-08/CREATE_INVITATION_DIALOG_REFACTOR_PLAN.md
  • dev_docs/2025-11-08/DASHBOARD_CARDS_EXTRACTION_PLAN.md
  • dev_docs/2025-11-08/DAILY_SUMMARY.md (本文档)

删除的文件

页面文件

  • src/app/(dashboard)/dashboard/page.tsx
  • src/app/(dashboard)/transactions/page.tsx
  • src/app/(dashboard)/categories/page.tsx
  • src/app/(dashboard)/budgets/page.tsx
  • src/app/(dashboard)/statistics/page.tsx
  • src/app/(dashboard)/families/[id]/statistics/page.tsx
  • src/app/login/page.tsx (移动到 (auth) 路由组)

脚本文件

  • execute-phase1.sh
  • execute-phase2.sh
  • verify-phase1.sh
  • verify-phase2.sh
  • run-phase1-migration.sh

统计数据

  • 总提交数: 23 个
  • 代码行数减少: 约 1000+ 行
  • 新增组件: 20+ 个
  • 新增 Hooks: 5 个
  • 新增工具函数文件: 9 个
  • 新增文档: 10+ 个
  • Bug 修复: 2 个
  • 代码质量改进: 多项

下一步计划建议

  1. 继续重构: 可以考虑重构其他复杂页面(如 settings, budgets 等)
  2. 测试覆盖: 为新提取的组件和 hooks 添加单元测试
  3. 性能优化: 优化数据加载和渲染性能
  4. 功能完善: 完善快速操作卡片的功能
  5. 文档完善: 补充组件使用文档和 API 文档

总结

今天完成了大规模的项目重构工作,显著提升了代码质量和可维护性。通过组件提取、代码重构、项目结构整理等工作,项目结构更加清晰,代码更加模块化和可复用。同时修复了多个 Bug,提升了用户体验。

END