cefr-analyzer
Version:
分析英文文本中各CEFR级别(A1-C2)单词的数量
76 lines (60 loc) • 2.31 kB
Markdown
# CEFR Analyzer 项目规则
## 技术选型
- **Node.js**: v18+
- **编程语言**: TypeScript
- **输出格式**: CommonJS (cjs)
- **包管理工具**: pnpm (禁止使用npm/yarn)
- **单元测试框架**: Jest
- **代码规范工具**: ESLint + Prettier
- **类型检查**: 严格模式 (启用 `strict`)
- **NLP处理库**: wink-nlp + wink-eng-lite-web-model
## 命名规范
- **文件命名**: 小写,单词间用连字符分隔 (kebab-case)
- **变量/函数命名**: 驼峰式 (camelCase)
- **类命名**: 帕斯卡式 (PascalCase)
- **常量命名**: 全大写,单词间用下划线分隔 (SNAKE_CASE)
- **接口/类型命名**: 帕斯卡式,接口以 `I` 开头,类型以 `T` 开头
## 模块结构
```
📁 src/ # 核心源码
├── index.ts # 模块入口
├── vocabulary/ # 词汇表相关
│ └── dict.ts # CEFR词汇字典
├── analyzer/ # 分析器模块
│ ├── index.ts # 分析器入口
│ └── types.ts # 分析器类型定义
├── utils/ # 工具函数
├── services/ # 外部服务封装
└── types/ # 全局类型定义
📁 tests/ # 单元测试文件夹
├── analyzer.test.ts # 分析器测试
└── utils.test.ts # 工具函数测试
📁 .trae/ # 项目配置和记忆
├── project_rules.md # 项目规则
└── memory_bank/ # 项目记忆库
```
## 代码风格
- 使用2个空格缩进
- 行尾使用分号
- 字符串使用单引号
- 每个文件末尾保留一个空行
- 最大行长度为100字符
- 使用ES6+特性
- 禁止使用`any`类型,除非绝对必要
## 文档规范
- 所有函数、类、接口必须有JSDoc注释
- 复杂逻辑必须有行内注释说明
- README.md必须包含项目说明、安装方法、使用示例
## 测试规范
- 所有核心逻辑必须有单元测试
- 测试覆盖率要求90%以上
- 测试文件与源文件结构对应
- 使用Jest的describe/it/expect语法
## 提交规范
- 提交信息使用英文
- 遵循Conventional Commits规范
- 提交前运行lint和测试
## 远程仓库信息
- **仓库地址**: git@github.com:liubei-ai/cefr-analyzer.git
- **远程名称**: origin
- **主分支**: main