Skip to content

fenixjiang/ezDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目概览

代码规模统计

  • 总文件数: 169 个 Kotlin 文件
  • 总代码量: 43,000+ 行代码
  • 核心业务模块:
    • lib-mall (商城核心): 44 个文件, 6,500+ 行代码 (已拆分优化)
    • lib-auth (认证授权): 20 个文件, 5,838 行代码
    • lib-coupon (优惠券系统): 18 个文件, 8,088 行代码
    • lib-product (商品管理): 7 个文件, 2,645 行代码
    • lib-history (历史记录): 7 个文件, 2,287 行代码
    • lib-favorite (收藏系统): 9 个文件, 1,850 行代码
    • lib-address (地址管理): 7 个文件, 1,723 行代码
    • lib-cart (购物车系统): 10 个文件, 1,611 行代码
    • lib-order (订单系统): 7 个文件, 1,340 行代码
  • 支撑服务模块:
    • lib-recommend (推荐系统): 7 个文件
    • lib-inventory-logistics (库存物流): 7 个文件
    • lib-riskcontrol (风控系统): 7 个文件
    • lib-qa (问答系统): 7 个文件
    • lib-aftersales (售后服务): 6 个文件
    • lib-arith (算术工具): 1 个文件

架构特点

  • 5层深度嵌套模块: 采用统一的深度架构模式,实现严格的层级依赖控制
    • Facade (门面层) → Core (核心层) → Service (服务层) → Storage/Database (存储层) → API (接口层)
  • 模块化业务能力:
    • 认证授权 (lib-auth): 完整的认证、授权、安全管理系统
    • 商城核心 (lib-mall): 商品详情页智能展示、个性化策略、交互体验增强、订单系统集成
      • API层细分: ProductOperations, CartOperations, OrderOperations, UserOperations, CheckoutOperations, ReviewOperations
      • 业务层: UserProfileAnalyzer, DetailPageStrategyGenerator, InteractionEngine, AccessoryRecommendEngine
      • 服务层: ProductReviewService, InventoryService, OrderQueryService, OrderOperationService, InteractionManagementService
    • 订单系统 (lib-order): 独立订单模块,支持12种订单类型、20+状态流转、智能拆单合并
    • 商品管理 (lib-product): 商品信息管理、规格管理、库存管理
    • 购物车系统 (lib-cart): 多场景购物车(即时/收藏/心愿单/共享)、智能提醒、营销推荐
    • 优惠券系统 (lib-coupon): 优惠券管理、发放、核销
    • 收藏系统 (lib-favorite): 商品收藏、分类管理
    • 历史记录 (lib-history): 浏览历史、操作记录
    • 地址管理 (lib-address): 收货地址CRUD
    • 推荐系统 (lib-recommend): 商品推荐、个性化推荐
    • 库存物流 (lib-inventory-logistics): 库存管理、物流追踪
    • 风控系统 (lib-riskcontrol): 风险控制、反欺诈
    • 问答系统 (lib-qa): 商品问答、客服问答
    • 售后服务 (lib-aftersales): 退换货、维修服务
  • 跨平台能力:
    • Kotlin Multiplatform: 支持 HarmonyOS (ohosArm64) 平台(已移除Android和iOS配置)
    • expect/actual 机制: 平台特定实现(如 TimeProvider、currentTimeMillis)
    • NAPI 桥接: 通过 C 函数导出为 HarmonyOS 提供原生调用能力

构建影响分析:修改一个文件触发多少文件重建

测试场景:触发50+文件重建

为了测试最大影响范围,创建了 lib-base 基础公共模块,被 10个业务模块 依赖:

lib-base (6个kt文件)
    ↓ 被依赖
    ├─→ lib-mall (44个kt文件) ← 已优化拆分
    ├─→ lib-order (7个kt文件)
    ├─→ lib-cart (10个kt文件)
    ├─→ lib-coupon (9个kt文件)
    ├─→ lib-favorite (9个kt文件)
    ├─→ lib-address (7个kt文件)
    ├─→ lib-product (7个kt文件)
    ├─→ lib-history (7个kt文件)
    ├─→ lib-recommend (7个kt文件)
    └─→ lib-riskcontrol (7个kt文件)

测试结果: 修改 lib-base-api/CommonModels.kt → 触发 120个文件 重建(11个gradle子项目)

影响范围明细:

  • lib-base: 6个文件
  • lib-mall: 44个文件 ← 已优化拆分
  • lib-order: 7个文件
  • lib-cart: 10个文件
  • lib-coupon: 9个文件
  • lib-favorite: 9个文件
  • lib-address: 7个文件
  • lib-product: 7个文件
  • lib-history: 7个文件
  • lib-recommend: 7个文件
  • lib-riskcontrol: 7个文件
  • 总计: 120个kt文件 (分布在11个gradle子项目中)

案例1: lib-base-api (影响最大 - 120个文件,11个gradle子项目)

修改文件: lib-base/lib-base-core/lib-base-service/lib-base-storage/lib-base-api/src/commonMain/kotlin/com/example/base/api/CommonModels.kt

// 添加2个新方法
sealed class Result<out T> {
    fun isSuccess(): Boolean = this is Success
    fun isError(): Boolean = this is Error
}

触发重建:

  • lib-base 本身: 6个文件
  • lib-mall (依赖): 44个文件 ← 已优化拆分
  • lib-order (依赖): 7个文件
  • lib-coupon (依赖): 9个文件
  • lib-favorite (依赖): 9个文件
  • lib-address (依赖): 7个文件
  • lib-product (依赖): 7个文件
  • lib-history (依赖): 7个文件
  • lib-recommend (依赖): 7个文件
  • lib-riskcontrol (依赖): 7个文件
  • 总计: 120个文件 (11个gradle子项目)

案例2: lib-mall-api (影响44个文件)

lib-mall-api/src/commonMain/kotlin/com/example/mall/api/
├── ShoppingMall.kt (门面聚合类)
├── ProductOperations.kt (商品操作)
├── CartOperations.kt (购物车操作)
├── OrderOperations.kt (订单操作)
├── UserOperations.kt (用户操作)
├── CheckoutOperations.kt (结算操作)
├── ReviewOperations.kt (评价操作)
├── MallProductInfoProvider.kt  
└── CrossModuleIntegrationFacade.kt

触发重建链路 (6层级联):

lib-mall-api (9个kt文件修改)
    ↓ 触发重建
lib-mall-service (8个kt文件)
    ↓ 触发重建
lib-mall-business (7个kt文件)
    ↓ 触发重建  
lib-mall-database (5个kt文件)
    ↓ 触发重建
lib-mall-core (12个kt文件)
    ↓ 触发重建
lib-mall (3个kt文件)
    ↓ 可能触发重建
composeApp (如果有依赖)

影响范围: 修改1个API文件 → 触发 44个文件 (整个lib-mall模块) 重建 优化成果: 通过拆分API层操作类,现在可以更细粒度地控制重建范围

编译和部署

0. 清除编译缓存(可选)

# 清除所有构建缓存
./gradlew clean

# 清除 Kotlin 缓存
rm -rf .kotlin

# 完全清除(包括 Gradle 缓存)
./gradlew clean && rm -rf .gradle .kotlin

1. 编译 Kotlin 代码

./gradlew :composeApp:linkDebugSharedOhosArm64

2. 发布到 HarmonyOS 项目

./gradlew :composeApp:publishDebugBinariesToHarmonyApp

3. 在 HarmonyOS 项目中构建

cd harmonyapp
hvigorw assembleHap

项目结构

lib-auth 示例 (认证授权)

lib-auth/
├── build.gradle.kts                          # 顶层构建文件
├── src/commonMain/kotlin/com/example/auth/
│   └── AuthFacade.kt                         # 统一门面API
└── lib-auth-core/
    ├── build.gradle.kts
    ├── src/commonMain/kotlin/com/example/auth/core/
    │   └── AuthTypes.kt                      # 核心类型定义
    └── lib-auth-service/
        ├── build.gradle.kts
        ├── src/commonMain/kotlin/com/example/auth/service/
        │   └── AuthService.kt                # 认证服务
        └── lib-auth-security/
            ├── build.gradle.kts
            ├── src/commonMain/kotlin/com/example/auth/security/
            │   └── SecurityService.kt        # 安全服务
            └── lib-auth-api/
                ├── build.gradle.kts
                └── src/commonMain/kotlin/com/example/auth/api/
                    └── AuthenticationAPI.kt  # API实现

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors