Angular.js前端简单微服务架构设计

1、使用angular脚手架进行多项目工作区搭建*

搭建后的项目到project层,后续项目需自主配置

ng new my-workspace --create-application false 

在这里插入图片描述

2、项目分析与架构分层设计*

为了方便管理,公用组件与公共层进行拆分,剩余分层根据具体业务需求进行拆分,比如:采购层,仓储层,用户中心,具体分层设计根据项目具体业务需求设计,考虑后台设计模式,本文后台假设使用DDD进行服务拆分,前后台工程对应。

#项目创建
ng generate application my-first-app

3、项目分层搭建完成后进行项目配置*

项目配置一定要考虑部署方式,如果采用CI/CD 容器化部署的方式,每个项目需配置Dockerfile文件,编写dockerfile脚本,并且对package.json配置进行修改,方便CI/CD部署,在这儿基于nginx进行镜像打包docker镜像
在这里插入图片描述

3.1 package.json文件配置

配置自定义npm命令,多项目文件,指定project执行项目工程(与angular.json文件中projects下项目结构匹配)以及configuration配置文件选择。
在这里插入图片描述
在这里插入图片描述

3.2 将Dockerfile与指定项目共同打包,配置在angular.json中指定项目下的配置中

不了解angular分层结构,参考https://angular.cn/guide/file-structure

4、开发模式

具体开发模式根据前端组件封装情况决定,若封装统一模板,则可选择采用多投影,或者条件投影的方式做组件插拔。可增加组件复用。前端组件开发要求考虑组件扩展性,可复用组件不做重复开发。

5、项目路由设计

根据业务层拆分后的项目,每个模块放在单独文件夹下并导入路由文件,模块路由单独组合,页面路由采用主子路由的模式配置。每个模块有单独路由配置。
每个模块单独配置路由在这里插入图片描述
表单页面比如存在详情与列表这种情况采用子路由模式配置
在这里插入图片描述
将每个页面配置为一个单独的模块儿就可以为其配置自定义的路由地址
在这里插入图片描述
注:没有根据路由走可能是没有在app.component.html中进行配置

<router-outlet></router-outlet>

6、项目粒度细化

每个页面配置单独的module文件,主次页面绑定在统一module,根据子路由进行页面访问地址配置。将每一个页面理解为一个单独的模块,对页面与页面之间的关联进行拆分,降低耦合!
在这里插入图片描述

7、公共层

采用依赖注入的方式进行接口配置,保证接口易用,独立可配置,调用不同平台接口配置不同服务,在此项目中进行统一整理
使用命令创建服务
       `ng generate service User`![在这里插入图片描述](https://img-blog.csdnimg.cn/46283580aacb4b16a37201b5a0a515b3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzQ0NDY4NTQ2,size_20,color_FFFFFF,t_70,g_se,x_16)

8、项目中每个模块下每个页面配置单独服务

主子页面使用接口,实体进行统一管理,方便代码整理与后续维护,降低开发成本
在这里插入图片描述

9、前端架构设计时需充分考虑

前端架构设计需充分考虑项目后期运行环境,人员技术水平,上手成本不宜太高,考虑现有其他业务,在兼容其他业务架构的情况下进行架构设计,充分考虑业务走向,实际开发环境,避免摊子铺得太大,一般小公司也不会选择采用微服务的形式开发,一站到底式开发另当别论了哈。

10、项目粒度进行合理设计

项目体量小方便后期项目部署扩展,项目架构就已经成功一大步,条件允许,能拆则拆,合理拆分,避免后期因为项目设计不合理导致单体项目体重。

11、架构设计的同时需指定开发规范,避免垃圾代码

前端项目通病,不同页面,同样的功能,例如列表字段不同,但是数据源是相同,这种情况往往会出现两个字段不同共用一个数据源的情况,前端开发人员应考虑是否可对组件进行设计,实现需求,此类重复代码后期统统都是垃圾代码,没有必要的代码只会让项目变得更重。
前端架构设计将公共的内容能封则封,降低对开发人员的要求,降低上手难度与理解难度,业务开发人员只需关注代码开发,而无需关注项目结构

项目中可扩展的东西很多,配置的东西也很多,不一 一说明,具体根据后台架构设计与业务需求,开发需求,进行扩展。
Angular的核心就是组件化,我们需要对整体架构进行思考,怎么样将项目进行合理拆分,加深对组件化的理解,每一个完整的页面就是一个模块,每一个功能就是一个组件。就像搭积木,将他们严丝合缝的搭建起来!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是中级软件设计师需要掌握的详细知识点: 1. 软件设计原则:单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则等。 2. 面向对象设计:面向对象思想、类和对象、继承、多态、封装、抽象类、接口、设计模式等。 3. 数据结构和算法:数组、链表、栈、队列、树、图、排序算法、查找算法等。 4. 数据库设计:关系型数据库、非关系型数据库、SQL语言、数据表设计、数据库索引、数据库事务、数据库备份与恢复等。 5. 网络编程:TCP/IP协议、HTTP协议、网络编程基础、Socket编程、多线程编程、网络安全等。 6. 软件架构设计:系统架构、分层架构、微服务架构、云计算架构、高可用架构、负载均衡等。 7. 前端开发技术:HTML、CSS、JavaScript、jQuery、Vue.jsAngular.js等。 8. 后端开发技术:Java、C#、Python、Node.js、Spring、ASP.NET等。 9. 移动端开发技术:Android、iOS、React Native、Flutter等。 10. 项目管理:软件开发过程、需求分析、项目计划、项目管理工具、团队协作等。 11. 软件测试:测试理论、测试方法、测试工具、测试自动化、测试流程等。 12. 系统运维:系统监控、性能优化、故障排查、系统日志分析、安全管理等。 13. 软件质量保证:代码规范、代码审查、单元测试、集成测试、系统测试、性能测试、安全测试等。 14. 软件开发工具:IDE、版本控制工具、构建工具、测试工具、文档工具等。 15. 软件开发流程:需求分析、设计、编码、测试、部署、维护等。 以上是中级软件设计师需要掌握的详细知识点,需要不断学习和实践才能成为一名优秀的软件设计师。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值