Skip to content

Commit 7e8d4bc

Browse files
committed
feat: 初始化项目结构并添加多个技术栈规范文件
1 parent ac79f82 commit 7e8d4bc

File tree

24 files changed

+1502
-0
lines changed

24 files changed

+1502
-0
lines changed

plan.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Awesome-cursorrules-zh Translation Plan (V3 - Accurate)
2+
3+
This plan is automatically generated based on a file-by-file comparison between the original and translated projects. It accurately reflects the remaining work.
4+
5+
## Untranslated Files in `rules-new`
6+
7+
- [x] `rules-new/clean-code.mdc`
8+
- [x] `rules-new/codequality.mdc`
9+
- [x] `rules-new/cpp.mdc`
10+
- [x] `rules-new/database.mdc`
11+
- [x] `rules-new/fastapi.mdc`
12+
- [x] `rules-new/gitflow.mdc`
13+
- [x] `rules-new/medusa.mdc`
14+
- [x] `rules-new/nativescript.mdc`
15+
- [x] `rules-new/nextjs.mdc`
16+
- [x] `rules-new/node-express.mdc`
17+
- [x] `rules-new/python.mdc`
18+
- [x] `rules-new/react.mdc`
19+
- [x] `rules-new/svelte.mdc`
20+
- [x] `rules-new/tailwind.mdc`
21+
- [x] `rules-new/typescript.mdc`
22+
- [x] `rules-new/vue.mdc`
23+
24+
## Untranslated Files in `rules`
25+
26+
- [x] `rules/code-guidelines-cursorrules-prompt-file/README.md`
27+
- [x] `rules/code-guidelines-cursorrules-prompt-file/general-coding-rules.mdc`
28+
- [x] `rules/code-pair-interviews/README.md`
29+
- [x] `rules/code-style-consistency-cursorrules-prompt-file/README.md`
30+
- [x] `rules/convex-cursorrules-prompt-file/convex-development---general.mdc`
31+
- [ ] `rules/convex-cursorrules-prompt-file/convex-schema-design---built-in-types.mdc`
32+
- [ ] `rules/convex-cursorrules-prompt-file/convex-schema-design---example-schema.mdc`
33+
- [ ] `rules/convex-cursorrules-prompt-file/convex-schema-design---system-fields.mdc`
34+
- [ ] `rules/dragonruby-best-practices-cursorrules-prompt-file/README.md`
35+
- [ ] `rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-error-handling.mdc`
36+
- [ ] `rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-general-ruby-rules.mdc`
37+
- [ ] `rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-naming-conventions.mdc`
38+
- [ ] `rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-syntax-and-formatting.mdc`
39+
- [ ] `rules/drupal-11-cursorrules-prompt-file/README.md`
40+
- [ ] `rules/elixir-engineer-guidelines-cursorrules-prompt-file/README.md`
41+
- [ ] `rules/elixir-engineer-guidelines-cursorrules-prompt-file/commit-message-format.mdc`
42+
- [ ] `rules/engineering-ticket-template-cursorrules-prompt-file/README.md`
43+
- [ ] `rules/gherkin-style-testing-cursorrules-prompt-file/README.md`
44+
- [ ] `rules/git-conventional-commit-messages/README.md`
45+
- [ ] `rules/github-code-quality-cursorrules-prompt-file/file-by-file-changes-rule.mdc`
46+
- [ ] `rules/xray-test-case-cursorrules-prompt-file/README.md`

rules-new/clean-code.mdc

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
description: 编写干净、可维护且易于人类阅读的代码的指南。在编写或审查代码时应用这些规则,以确保一致性和质量。
3+
globs:
4+
---
5+
# 整洁代码指南
6+
7+
## 使用常量而非魔术数字
8+
- 用具名常量替换硬编码的值
9+
- 使用描述性的常量名称来解释值的用途
10+
- 将常量放在文件顶部或专用的常量文件中
11+
12+
## 有意义的命名
13+
- 变量、函数和类的名称应揭示其用途
14+
- 名称应解释某物为何存在以及如何使用
15+
- 避免使用缩写,除非它们是普遍理解的
16+
17+
## 明智的注释
18+
- 不要注释代码做了什么——让代码自文档化
19+
- 使用注释来解释为什么某事要以某种方式完成
20+
- 为 API、复杂算法和不明显的副作用编写文档
21+
22+
## 单一职责
23+
- 每个函数应该只做一件事
24+
- 函数应该小而专注
25+
- 如果一个函数需要注释来解释它做什么,那么它应该被拆分
26+
27+
## DRY (不要重复自己)
28+
- 将重复的代码提取到可重用的函数中
29+
- 通过适当的抽象共享通用逻辑
30+
- 维护单一事实来源
31+
32+
## 整洁的结构
33+
- 将相关代码放在一起
34+
- 以逻辑层次组织代码
35+
- 使用一致的文件和文件夹命名约定
36+
37+
## 封装
38+
- 隐藏实现细节
39+
- 暴露清晰的接口
40+
- 将嵌套的条件判断移入命名良好的函数中
41+
42+
## 代码质量维护
43+
- 持续重构
44+
- 尽早修复技术债务
45+
- 离开时让代码比你发现时更整洁
46+
47+
## 测试
48+
- 在修复错误之前编写测试
49+
- 保持测试的可读性和可维护性
50+
- 测试边界情况和错误条件
51+
52+
## 版本控制
53+
- 编写清晰的提交信息
54+
- 进行小而专注的提交
55+
- 使用有意义的分支名称

rules-new/codequality.mdc

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
description: 代码质量指南
3+
globs:
4+
---
5+
# 代码质量指南
6+
7+
## 核实信息
8+
在呈现信息前务必核实。不要在没有明确证据的情况下做出假设或推测。
9+
10+
## 逐文件变更
11+
逐个文件进行更改,让我有机会发现错误。
12+
13+
## 不要道歉
14+
绝不使用道歉。
15+
16+
## 不反馈理解情况
17+
避免在注释或文档中提供关于理解情况的反馈。
18+
19+
## 不提空白字符建议
20+
不要建议更改空白字符。
21+
22+
## 不做总结
23+
不要总结所做的更改。
24+
25+
## 不做额外发明
26+
除了明确要求的内容外,不要创造其他更改。
27+
28+
## 不做不必要的确认
29+
不要对上下文中已提供的信息请求确认。
30+
31+
## 保留现有代码
32+
不要删除不相关的代码或功能。注意保留现有结构。
33+
34+
## 单块编辑
35+
在单个区块中提供所有编辑,而不是为同一个文件提供多步指令或解释。
36+
37+
## 不检查实现
38+
不要要求用户验证在所提供上下文中可见的实现。
39+
40+
## 不做不必要的更新
41+
当不需要实际修改时,不要建议更新或更改文件。
42+
43+
## 提供真实文件链接
44+
始终提供指向真实文件的链接,而不是 x.md。
45+
46+
## 不展示当前实现
47+
除非特别要求,否则不要展示或讨论当前的实现。

rules-new/cpp.mdc

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
description:
3+
globs: "**/*.c,**/*.cpp,**/*.h,**/*.hpp,**/*.cxx,CMakeLists.txt,*.cmake,conanfile.txt,Makefil,**/*.cc"
4+
alwaysApply: false
5+
---
6+
# C++ 编程指南
7+
8+
## 基本原则
9+
10+
- 所有代码和文档都使用英文。
11+
- 始终声明每个变量和函数(参数和返回值)的类型。
12+
- 创建必要的类型和类。
13+
- 使用 Doxygen 风格的注释来记录公共类和方法。
14+
- 不要在函数内部留空行。
15+
- 遵循单一定义规则 (ODR)。
16+
17+
## 命名法
18+
19+
- 类和结构使用帕斯卡命名法 (PascalCase)。
20+
- 变量、函数和方法使用驼峰命名法 (camelCase)。
21+
- 常量和宏使用全大写 (ALL_CAPS)。
22+
- 文件和目录名使用蛇形命名法 (snake_case)。
23+
- 环境变量使用大写 (UPPERCASE)。
24+
- 避免使用魔术数字并定义常量。
25+
- 每个函数以动词开头。
26+
- 布尔变量使用动词。例如:isLoading, hasError, canDelete 等。
27+
- 使用完整的单词而不是缩写,并确保拼写正确。
28+
- 标准缩写除外,如 API, URL 等。
29+
- 众所周知的缩写除外:
30+
- i, j, k 用于循环
31+
- err 用于错误
32+
- ctx 用于上下文
33+
- req, res 用于请求/响应参数
34+
35+
## 函数
36+
37+
- 编写具有单一目的的短函数。少于 20 条指令。
38+
- 函数命名使用动词和其他词。
39+
- 如果返回布尔值,使用 isX 或 hasX, canX 等。
40+
- 如果不返回任何内容 (void),使用 executeX 或 saveX 等。
41+
- 通过以下方式避免块嵌套:
42+
- 提早检查和返回。
43+
- 提取到实用函数中。
44+
- 使用标准库算法 (std::for_each, std::transform, std::find 等) 来避免函数嵌套。
45+
- 对简单操作使用 lambda 函数。
46+
- 对非简单操作使用命名函数。
47+
- 使用默认参数值,而不是检查 null 或 nullptr。
48+
- 使用结构体或类来减少函数参数
49+
- 使用对象传递多个参数。
50+
- 使用对象返回多个结果。
51+
52+
## 错误处理
53+
54+
- 捕获异常的目的应该是:
55+
- 修复预期的问题。
56+
- 添加上下文。
57+
- 否则,使用全局处理器。
58+
- 对预期的失败使用 std::optional, std::expected 或错误码。
59+
60+
## 内存管理
61+
62+
- 优先使用智能指针 (std::unique_ptr, std::shared_ptr) 而不是原始指针。
63+
- 使用 RAII (资源获取即初始化) 原则。
64+
- 通过适当的资源管理避免内存泄漏。
65+
- 使用 std::vector 和其他标准容器,而不是 C 风格的数组。
66+
67+
## 测试
68+
69+
- 测试遵循 Arrange-Act-Assert 约定。
70+
- 清晰地命名测试变量。
71+
- 遵循约定:inputX, mockX, actualX, expectedX 等。
72+
- 为每个公共函数编写单元测试。
73+
- 使用测试替身来模拟依赖项。
74+
- 执行成本不高的第三方依赖项除外。
75+
- 为每个模块编写集成测试。
76+
- 遵循 Given-When-Then 约定。
77+
78+
## 项目结构
79+
80+
- 使用模块化架构
81+
- 将代码组织到逻辑目录中:
82+
- include/ 用于头文件
83+
- src/ 用于源文件
84+
- test/ 用于测试文件
85+
- lib/ 用于库
86+
- doc/ 用于文档
87+
- 使用 CMake 或类似的构建系统。
88+
- 将接口 (.h) 与实现 (.cpp) 分离。
89+
- 使用命名空间来逻辑地组织代码。
90+
- 为基础组件创建一个核心命名空间。
91+
- 为实用函数创建一个 utils 命名空间。
92+
93+
## 标准库
94+
95+
- 尽可能使用 C++ 标准库。
96+
- 优先使用 std::string 而不是 C 风格的字符串。
97+
- 对集合使用 std::vector, std::map, std::unordered_map 等。
98+
- 为现代类型安全使用 std::optional, std::variant, std::any。
99+
- 对文件操作使用 std::filesystem。
100+
- 对时间相关操作使用 std::chrono。
101+
102+
## 并发
103+
104+
- 为线程安全使用 std::thread, std::mutex, std::lock_guard。
105+
- 优先使用基于任务的并行性,而不是基于线程的并行性。
106+
- 对原子操作使用 std::atomic。
107+
- 通过适当的同步避免数据竞争。
108+
- 必要时使用线程安全的数据结构。

rules-new/database.mdc

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
description: 数据库最佳实践,重点关注 Prisma 和 Supabase 集成
3+
globs: prisma/**/*, src/db/**/*, **/*.prisma, supabase/**/*
4+
---
5+
6+
# 数据库最佳实践
7+
8+
## Prisma 设置
9+
- 使用正确的模式设计
10+
- 实现正确的迁移
11+
- 使用正确的关​​系定义
12+
- 配置正确的连接
13+
- 实现正确的种子数据填充
14+
- 使用正确的客户端设置
15+
16+
## Prisma 模型
17+
- 使用正确的模型命名
18+
- 实现正确的关​​系
19+
- 使用正确的字段类型
20+
- 定义正确的索引
21+
- 实现正确的约束
22+
- 使用正确的枚举
23+
24+
## Prisma 查询
25+
- 使用正确的查询优化
26+
- 实现正确的过滤
27+
- 使用正确的关​​系加载
28+
- 正确处理事务
29+
- 实现正确的分页
30+
- 使用正确的聚合
31+
32+
## Supabase 设置
33+
- 配置正确的项目设置
34+
- 实现正确的身份验证
35+
- 使用正确的数据库设置
36+
- 配置正确的存储
37+
- 实现正确的策略
38+
- 使用正确的客户端设置
39+
40+
## Supabase 安全
41+
- 实现正确的 RLS 策略
42+
- 使用正确的身份验证
43+
- 配置正确的权限
44+
- 正确处理敏感数据
45+
- 实现正确的备份
46+
- 使用正确的加密
47+
48+
## Supabase 查询
49+
- 使用正确的查询优化
50+
- 实现正确的过滤
51+
- 使用正确的连接
52+
- 正确处理实时数据
53+
- 实现正确的分页
54+
- 使用正确的函数
55+
56+
## 数据库设计
57+
- 使用正确的规范化
58+
- 实现正确的索引
59+
- 使用正确的约束
60+
- 定义正确的关​​系
61+
- 实现正确的级联操作
62+
- 使用正确的数据类型
63+
64+
## 性能
65+
- 使用正确的连接池
66+
- 实现正确的缓存
67+
- 使用正确的查询优化
68+
- 正确处理 N+1 查询问题
69+
- 实现正确的批处理
70+
- 监控性能指标
71+
72+
## 安全
73+
- 使用正确的身份验证
74+
- 实现正确的授权
75+
- 正确处理敏感数据
76+
- 使用正确的加密
77+
- 实现正确的备份
78+
- 监控安全问题
79+
80+
## 最佳实践
81+
- 遵循数据库约定
82+
- 使用正确的迁移
83+
- 实现正确的版本控制
84+
- 正确处理错误
85+
- 正确记录模式文档
86+
- 监控数据库健康状况

0 commit comments

Comments
 (0)