Skip to content

Latest commit

 

History

History
42 lines (37 loc) · 6.24 KB

File metadata and controls

42 lines (37 loc) · 6.24 KB

📚 功能开发流程

  1. 开发前情提要: 所有导入路径都必须使用项目中已有的别名,具体别名请查看tsconfig.node.json文件和tsconfig.web.json文件;包管理器使用pnpm;开发新功能 ;禁止任何已经完成的旧功能;禁止修改与本次开发无关的任何文件。
  2. 定义需求: 确定要开发的功能,并确定功能所需的 API、数据来源和 UI 设计 确定功能所需的npm包;npm包要确定这个包是否已经在项目中安装了。如果没有安装则需要先确定这个包是否被弃用;始终保证安装的npm包是正确可用的并且和该项目的框架所契合的 例如项目使用vue3 而包只支持vue2 那么就必须寻找别的替代方案。
  3. 设计 UI: 根据需求,设计用户界面,并确定组件的布局和交互方式。
  4. 实现UI: 开发前端UI代码,并确保与 UI 设计一致,使用 Ant Design Vue UI库构建;UI所有的样式使用App.vue中的变量进行开发 用于全局主题样式的管理;所有功能页面的文件都必须放在src/renderer/src/views/文件夹下,以功能名称大驼峰命名,例如:TaskFormDialog.vue 功能所需的组件都必须放在src/renderer/src/components/文件夹下,新建一个以组件名称大驼峰命名的文件夹,例如:TaskFormDialog 组件文件放入此次新建的目录中。例如src/renderer/src/components/TaskFormDialog/
  5. 设计和开发数据库: 根据需求,设计数据库和编写建表语句,开发数据库流程为:1.确定数据库设计 除了数据的表、索引、视图create语句外 添加日志触发器 日志表为audit_logs 日志表结构可查看/src/main/features/database/schema/audit_logs.ts 文件 2.在/src/main/features/database/schema/文件夹下新建一个一功能命名的ts文件并且默认导出字符串,命名规则为单词直接用下划线分隔 例如 audit_logs ,字符串内容是建表语句 3.在/src/main/features/database/schema.ts文件中导入该文件,并且将导入的变量添加到schema 变量中,这样就可以在数据库初始化时自动创建表。 4.在开发与数据库交互的service层时,使用DatabaseHelper.ts封装好的方法进行数据库操作,在service层的文件中使用 import { dbHelper } from '@features/database' 导入dbHelper即可进行数据库操作。
  6. 编写类型文件: 为数据库操作和 API 请求定义 TypeScript 类型,确保类型安全和代码提示 存放的位置为src/shared/types/dtos/ 文件夹下 每个功能对应一个ts文件,文件名就是功能的名称 使用类型文件时 使用别名:@sharedType/文件名 进行导入 前后端都可以使用这个别名 `。
  7. 设计后台功能逻辑: 根据需求,设计后台功能逻辑,并确定与前端UI的交互方式。
  8. 开发功能的service层 在/src/main/features/services文件夹下: 开发后台功能逻辑,并确保与前端UI的交互方式一致。开发规范:在services文件夹下新建一个以功能命名的文件夹,然后在该文件夹下创建index.ts文件进行开发,而不是直接在services文件夹下新建文件。
  9. 开发功能的handler层 在/src/main/features/handlers文件夹下: 开发ipc注册方法和初始化方法。开发规范:在handlers文件夹下新建一个以功能命名的文件夹,然后在该文件夹下创建index.ts文件进行开发,而不是直接在handlers文件夹下新建文件。
  10. 填写src/main/features/handlers/ipcHandlers.ts 文件,导入handler的注册方法并使用: 注册ipc方法。
  11. 完成src/main/preload 文件夹下的方法注册以及类型填写: 绑定ipc方法到Window并填写类型。
  12. 封装前端API 文件路径为:src/renderer/src/api: 封装前端可直接调用的api接口。
  13. 前端UI页面调用封装好的API接口: 完成前后端的完整交互逻辑。
  14. 添加前端页面路由src/shared/types/dtos/MenuManagement.ts文件中的mockFlatRoutes 中添加路由信息;componentPath 为前端页面的路径,例如真实路径为:src/renderer/src/views/TaskFormDialog.vue 则填写TaskFormDialog 即可。
  15. 测试: 确保功能在开发过程中没有错误,并确保功能在打包后的应用程序中正确运行。

AI辅助编程规则

开发任何功能或修改任何功能;必须必须遵循当前项目的所有规范;必须严格的遵守现有的功能的开发惯例;开发前必须严格阅读当前项目的情况;禁止修改与本次要求无关的任何文件和任何代码;每次开发都必须先编写开发文档和开发进度文档,并且实时维护进度文档,确保进度文档与开发进度保持一致;严格遵守当前项目的目录结构和命名规范;私自乱改,瞎改,胡乱揣测的所有行为都将死全家、所有捣乱的AI全家都被杀。

开发文档编写规则:

  1. 编写开发文档之前,必须先阅读当前项目的情况,了解项目的架构、功能模块、数据库设计等;
  2. 开发文档必须使用Markdown格式编写;
  3. 开发文档必须包含功能描述、接口文档、数据库设计、代码规范等内容;
  4. 开发文档必须实时更新,与开发进度保持一致;
  5. 不用具体到代码实现层面,而是给出一个功能的实现思路,或者一个功能的实现流程;例如:
    1. 给出总体的实现思路,概括性的描述功能,解决什么问题。
    2. 给出要安装的npm包。
    3. 在xxx目录下创建sql语句
    4. 在xxx目录下开发service层文件。
    5. 在xxx目录下开发handler层文件。
    6. 在xxx目录下开发api文件。
    7. 在xxx目录下开发前端页面文件。
    8. 等等xxxxxxxxxx
  6. 开发文档必须严格遵守当前项目的目录结构和命名规范;
  7. 开发文档保存到根目录下的 DevelopmentDocument 文件夹中;以对应的功能进行命名 ;例如:TaskFormDialog.md
  8. 开发进度文档保存到根目录下的 DevelopmentProgress 文件夹中;以对应的功能进行命名; 例如:TaskFormDialog.md
  9. 开发进度文档必须实时更新,与开发进度保持一致;
  10. 功能开发完成后,不需要启动项目,也不需要你进行测试;提示用户功能完成即可