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文件枚举, 代码规范, 域名枚举, 架构设计, 错误基检测, 静态代码分析