diff --git a/.gitignore b/.gitignore index e7a54bc..3b1b9e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -/result.md \ No newline at end of file +/result.md +/CLAUDE.md +/.claude +/AGENTS.md diff --git a/Common.md b/Common.md index 864df61..7a78a77 100644 --- a/Common.md +++ b/Common.md @@ -15,7 +15,7 @@ NodeJS, NSIS, axios, pinia, Less, 微信小程序等现代程序知识 - 经典示例:链式表删除操作,10 行 if 判断优化为 4 行无条件分支 - 好的品味是一种需要经验的直觉 - 消除边界情况总是比添加条件判断更好 - - UTF-8 是伟大的编码,所有文本文件都应该使用它 + - UTF-8 是伟大的编码,请使用 UTF-8 不带 BOM 读写所有文本文件,包括代码注释、文档等 2. 实用主义 - 我的信仰:我是个该死的实用主义者 diff --git a/Java_Common.md b/Java_Common.md new file mode 100644 index 0000000..85f2fd8 --- /dev/null +++ b/Java_Common.md @@ -0,0 +1,25 @@ +## 系统上下文 + +这是一个 Java + +- 部分 timi-* 系列依赖属于本地项目,如果权限允许可以,你可以文件绝对路径 E:\IDEAProject\timi-* 访问他们的源码 + +## 技术栈和限制 + +- 运行时:JDK21 +- 语言:Java + +## Java 代码约束 + +- 使用 tab 缩进,而不是空格 +- 类、方法、变量注释需要符合 javadoc 标准,拥有完整的类型、参数、返回、异常等说明 +- 优先使用字符串模板,且是 JDK15 的 "".formatted() 方法 +- 字符串超长且动态时使用 StringBuilder +- 数值比较应该使用小于,即使常量在前变量在后 +- 仅使用上述工具。除非堆栈无法合理地解决外部依赖关系,否则不要引入外部依赖关系 +- 在编写自定义实现之前,首选所选工具中的官方 API +- 该项目目前没有测试, 除非明确要求,否则不要添加测试 +- 所有文字、评论和文档均为中文 +- 不在没有充分理由的情况下添加外部库 +- 不用繁重的计算阻塞主线程, 卸载或推迟 +- 重复 API 调用必要时通过存储进行缓存或协调 diff --git a/Java_FX.md b/Java_FX.md new file mode 100644 index 0000000..a18851b --- /dev/null +++ b/Java_FX.md @@ -0,0 +1,8 @@ +## 系统上下文 + +这是一个 JDK21 + JavaFX 的桌面端程序框架 + +## 技术栈和限制 + +- 语言:Java +- 框架: JavaFX diff --git a/Java_Spring.md b/Java_Spring.md new file mode 100644 index 0000000..9052c03 --- /dev/null +++ b/Java_Spring.md @@ -0,0 +1,4 @@ +## Spring 相关代码约束 + +- 单行 SQL 请直接使用 MyBatis 注解写在 Mapper 接口里 +- 发生换行的 SQL 请写在 MyBatis xml 中,以便维护 diff --git a/WebCommon.md b/WebCommon.md index cea3e2c..cd7246c 100644 --- a/WebCommon.md +++ b/WebCommon.md @@ -6,10 +6,11 @@ - 在编写自定义实现之前,首选所选工具中的官方 API - 该项目目前没有测试, 除非明确要求,否则不要添加测试 - 尽可能定义 Typescript 类型和进行 JSDoc 注释 +- 对于 Promise 和 async/await 函数,请使用 async/await 而不是 .then() +- 即使不使用 Promise 的返回值,也请使用 await - 路由、Pinia、组件命名规则应符合官方建议 - 需要适配深色模式 - 所有文字、评论和文档均为中文 - 不在没有充分理由的情况下添加外部库 - 不用繁重的计算阻塞主线程, 卸载或推迟 - 重复 API 调用必要时通过存储进行缓存或协调 - diff --git a/WebStylesheet.md b/WebStylesheet.md index 4b8fd20..b720fa3 100644 --- a/WebStylesheet.md +++ b/WebStylesheet.md @@ -1,5 +1,6 @@ ## 前端样式约束 +- LESS 必须使用层级特性,这是 LESS 最重要的特性 - CSS、LESS 的属性应当尽量缩写,如使用 background 而不是 background-color - CSS、LESS 的单位优先使用 rem,除非 % 或 vw vh 等比例单位 - CSS、LESS 的属性应该按照属性名长度由短到长排序以便维护 diff --git a/WebTDesign.md b/WebTDesign.md index a8d3e99..58f5ec8 100644 --- a/WebTDesign.md +++ b/WebTDesign.md @@ -5,6 +5,5 @@ - TDesign UI组件用于常见 UI(导航栏、卡片、选项卡、下拉菜单、模态、表单)。不要重新实现 TDesign 已经提供的功能 - 保持类字符串可读且有序:布局 → 间距 → 排版 → 颜色 → 状态 → 反应性变体 - 所有颜色都应该统一在一个文件中定义。**如果没有必要,不要使用自定义颜色** -- 样式应该写在 Vue 组建的 style 中,**不要在原生 html 标签使用 style 属性** - 尽量使用 TDesign 原生图标,即使你无法搜索到你想要的图标,**禁止使用原生 SVG** - 使用 TDesign 弹窗、提示等反馈 diff --git a/WebVue.md b/WebVue.md index 2fbaed9..d0a2379 100644 --- a/WebVue.md +++ b/WebVue.md @@ -1,5 +1,37 @@ ## 前端 Vue 约束 +- Vue 自定义组件中,使用模板标签时应该使用全小写,如 - - Vue 模板中如果要使用变量则应该使用 v-text 而不是插值符号以避免渲染延时,如果只是纯文本不要使用 v-text - Vue Composition API 的代码应该按功能模块分组,相同的变量、函数等在一个片段,公共的在脚本头部,不同模块之间变量、函数不穿插 -- 保持组件小而集中, 提取逻辑的可组合项 \ No newline at end of file +- 样式应该写在 Vue 组建的 style 中,**不要在原生 html 标签使用 style 属性** +- 保持组件小而集中, 提取逻辑的可组合项 + +## 前端 Vue 组件代码风格约束 + +- 使用 Composition API, +- 使用 setup 语法糖 +- 使用 unplugin-auto-import 和 unplugin-vue-components 自动导入 +- Composition API 的代码应该按功能分区域,如以下代码示例 + +```ts + +// 引用、公共变量、函数 +const common = ref('common'); + +// ---------- 功能 1 ---------- + +// 功能 1 变量 +// 功能 1 计算属性 +// 功能 1 函数 +// 功能 1 生命周期 +onMounted(() => {}); + +// ---------- 功能 2 ---------- + +// 功能 2 变量 +// 功能 2 计算属性 +// 功能 2 函数 +// 功能 2 生命周期 +onMounted(() => {}); + +``` \ No newline at end of file