yaad96/AndroidArchitectureRules
GitHub: yaad96/AndroidArchitectureRules
一套包含 8 条 Android 架构设计规则及配套 Java 代码示例的实验性规则集,用于配合 DesignFix 工具进行架构违规检测与修复测试。
Stars: 0 | Forks: 0
# Android 架构规则
这是一个实验性项目,包含 **8 条 Android 架构设计规则**和 Java 源代码示例,可用于 DesignFix 工具进行规则违规检测和修复测试。
## 规则
| # | 规则 | 难度 | 违规文件 |
|----|------------------------------------------------|------------|------------------------|
| 1 | DTO 必须具有无参构造函数 | Trivial | `OrderDto.java` |
| 2 | ViewModel 必须通过 Repository 访问数据 | Easy | `OrderViewModel.java` |
| 3 | Room @Entity 类必须具有 @PrimaryKey | Trivial | `OrderEntity.java` |
| 4 | ViewModel 不得持有 Activity/Context 引用 | Easy | `ProductViewModel.java`|
| 5 | DAO 接口必须使用 @Dao 注解 | Trivial | `OrderDao.java` |
| 6 | LiveData 不得作为 MutableLiveData 暴露 | Medium | `OrderViewModel.java` |
| 7 | Use Case 必须只有一个 execute() 方法 | Medium | `GetOrderUseCase.java` |
| 8 | ViewModel 不得直接进行网络调用 | Medium-Hard| `SearchViewModel.java` |
## 项目结构
```
src/com/android/architecture/
├── dto/ # Data Transfer Objects (Rule 1)
├── repository/ # Repository pattern classes (Rule 2)
├── viewmodel/ # ViewModel classes (Rules 2, 4, 6, 8)
├── data/
│ ├── entity/ # Room Entity classes (Rule 3)
│ └── dao/ # Data Access Object interfaces (Rule 5)
└── domain/
└── usecase/ # Clean Architecture Use Cases (Rule 7)
```
## 标签
| 标签 | 描述 |
|-------------------|--------------------------------------------------|
| DTO | Data Transfer Object 序列化规则 |
| Repository | 用于数据访问的 Repository 模式 |
| Room | Room 持久化库注解 |
| ViewModel | ViewModel 生命周期与封装 |
| Architecture | 通用 Android 架构最佳实践 |
| LiveData | LiveData 的封装与暴露 |
| CleanArchitecture | Use Case / Interactor 模式 |
| Networking | 网络层分离 |
## 如何使用
1. 在 VSCode 中将此项目作为工作区打开
2. 确保已安装并激活 DesignFix 扩展
3. 启动 React 客户端
4. 扩展将通过 srcML 将 Java 文件转换为 XML,并将规则/标签发送给客户端
5. 客户端将评估基于 XPath 的规则并报告违规情况
每条规则都有 **2 个合规**和 **1 个不合规**的代码文件用于测试。
标签:Android开发, JS文件枚举, 代码规范, 域名枚举, 架构设计, 错误基检测, 静态代码分析