Skip to main content

Angular 架构总览

本章节从整体视角介绍润典技术架构平台在 前端 Angular 端 的定位与设计思路,帮助你在阅读后续章节前,先在脑中建立一张「全景图」。

平台愿景:让前端也有“技术底座”​

在后端,你已经熟悉了:

  • 统一的 组件库与基础服务(缓存、消息、网关、监控等)
  • 清晰的 分层架构 与统一的 ResultVO/Page 协议

前端部分的目标是一致的:

为企业级 Web / 客户端应用提供一套 可复用、可迭代、可治理 的 Angular 架构与基础库,
让每一个新项目都站在同一套技术底座之上快速起步,而不是从零「再搭一遍脚手架」。

具体落地为两块:

  • 一个通用的 Angular 基础库:@rydeen/angular-framework
  • 一套基于该库的应用骨架示例:cross-platform-app(跨平台应用 Demo)

本目录下的文档就是围绕这两者展开的。

核心设计原则​

整个 Angular 端的设计遵循几条简单但很重要的原则:

  • 统一入口,集中治理

    • HTTP 请求统一走 AbstractService,方便加加密、防重复提交、埋点、限流等横切逻辑。
    • 页面统一继承 AbstractAppPage,便于集中处理导航、消息提示、事件订阅等行为。
  • 模块化 + 高内聚

    • 代码严格区分 core / shared / features 三个层次:
      • core:应用级基础设施(数据库、国际化、事件、路由、Url 等)。
      • shared:跨模块复用的组件、抽象基类和类型。
      • features:真正的业务模块(home/menu/users…),内部自成一体。
  • 与后端保持同构思维

    • 使用与 Java 端完全一致的 ResultVO<T>、Page<T> 类型。
    • Service 分层、事件总线、锁工具等均大量借鉴后端架构经验,方便前后端协作与迁移。

文档阅读路线建议​

如果你是第一次接触这个前端架构,建议按以下顺序阅读:

  1. 快速开始:快速开始与集成

    • 如何安装 @rydeen/angular-framework,在自己的 Angular 项目中接入。
    • 一个完整的小示例:从传统 HttpClient 调用迁移到 AbstractService + AbstractAppPage 的写法。
  2. 整体结构与分层思想:模块划分与分层结构

    • 结合 cross-platform-app 实际工程,讲清 core / shared / features 各自的职责和边界。
    • 对比常见 Vue3 项目目录,让你快速建立「老项目 → 新架构」的对应关系。
  3. 核心能力:抽象服务(AbstractService)、页面基类、事件总线与消息、存储与并发锁工具

    • 这几篇分别解释:
      • HTTP 调用如何统一、如何对接 Java 的 ResultVO 协议;
      • 页面为何要继承统一基类,事件/消息如何收敛;
      • 如何用事件总线和锁工具处理复杂场景。
  4. 与传统前端开发的对比:与传统 Angular 开发模式的对比

    • 从「目录结构、状态管理、Service 写法、页面写法」多个维度对照传统项目,帮你判断哪些老习惯可以保留,哪些地方值得逐步迁移。
  5. 最佳实践:UI 与性能最佳实践(可在熟悉骨架后再看)

    • 针对大屏、复杂列表、动画等场景的具体建议。

适用场景与边界​

这套 Angular 架构尤其适合:

  • 中大规模的业务系统:后台、运营平台、门店收银/点餐等。
  • 前后端团队都在使用润典技术栈,希望在 规范、错误处理、日志与监控 上统一口径的项目。

对于非常小的 Demo 或一次性页面,你仍然可以只用 Angular 自带的最简结构;
当项目进入「需要长期演进、多人协作」阶段时,再逐步引入这里的建议,会有更明显收益。

带着这张总览图,再去看后面的每一章,你会更容易把具体细节拼回到整体架构里。