首页 > 其他分享 >技术体系结构——架构&框架

技术体系结构——架构&框架

时间:2023-11-10 17:24:31浏览次数:37  
标签:架构 框架 开发人员 一个 应用程序 组件 体系结构

一、总体技术体系

单一架构

一个项目,一个工程,导出为一个war包,在一个Tomcat上运行。也叫all in one

img

单一架构,项目主要应用技术框架为:SpringSpringMVCMybatis

分布式架构

一个项目(对应 IDEA 中的一个 project),拆分成很多个模块,每个模块是一个 IDEA 中的一个 module。每一个工程都是运行在自己的 Tomcat 上。模块之间可以互相调用每一个模块内部可以看成是一个单一架构的应用

img

分布式架构,项目主要应用技术框架:SpringBoot (SSM)SpringCloud , 中间件


二、框架概念和理解

框架( Framework )是一个集成了基本结构、规范、设计模式、编程语言和程序库等基础组件的软件系统,它可以用来构建更高级别的应用程序。框架的设计和实现旨在解决特定领域中的常见问题,帮助开发人员更高效、更稳定地实现软件开发目标。

框架的优点包括以下几点:

  1. 提高开发效率:框架提供了许多预先设计好了的组件和工具,能够帮助开发人员快速进行开发。相较于传统手写代码,在框架提供的规范化环境中,开发者可以更快地实现项目的各种要求。
  2. 降低开发成本:框架的提供标准化的编程语言、数据操作等代码片段,避免了重复开发的问题,降低了开发成本,提供深度优化的系统,降低了维护成本,增强了系统的可靠性。
  3. 提高应用程序的稳定性:框架通常经过了很长时间的开发和测试,其中的许多组件、代码片段和设计模式都得到了验证。重复利用这些组件有助于减少bug的出现,从而提高了应用程序的稳定性。
  4. 提供标准化的解决方案:框架通常是针对某个特定领域的,通过提供标准化的解决方案,可以为开发人员提供一种共同的语言和思想基础,有助于更好地沟通和协作。

框架的缺点包括以下几个方面:

  1. 学习成本高:框架通常具有特定的语言和编程范式。对于开发人员而言,需要花费时间学习其背后的架构、模式和逻辑,这对于新手而言可能会耗费较长时间。
  2. 可能存在局限性:虽然框架提高了开发效率并可以帮助开发人员解决常见问题,但是在某些情况下,特定的应用需求可能超出框架的范围,从而导致应用程序无法满足要求。开发人员可能需要更多的控制权和自由度,同时需要在框架和应用程序之间进行权衡取舍。
  3. 版本变更和兼容性问题:框架的版本发布和迭代通常会导致代码库的大规模变更,进而导致应用程序出现兼容性问题和漏洞。当框架变更时,需要考虑框架是否向下兼容,以及如何进行适当的测试、迁移和升级。
  4. 架构风险:框架涉及到很多抽象和概念,如果开发者没有足够的理解和掌握其架构,可能会导致系统出现设计和架构缺陷,从而影响系统的健康性和安全性。

站在文件结构的角度理解框架,可以将框架总结:框架 = jar包+配置文件

img

如果一个技术只有jar包,没有配置文件和解决方案,就不算一个框架。


三、架构和框架

架构是指整个软件系统的设计和结构,而框架则是指为特定问题或领域提供解决方案的组件集合



参考资料:https://www.bilibili.com/video/BV1AP411s7D7?p=14&vd_source=cf21268954e139179e71f046bac01e56

标签:架构,框架,开发人员,一个,应用程序,组件,体系结构
From: https://www.cnblogs.com/Enid/p/17824573.html

相关文章

  • [数据校验/数据质量] 数据校验框架:hibernate-validation
    0前言其一,项目中普遍遇到了此问题,故近两天深入地研究了一下。其二,能够自信地说,仔细看完本篇,就无需再看其他的Java数据校验框架的文章了。1数据校验框架概述1.0数据校验框架的产生背景以Web项目为例,用户需要填写表单信息保存提交。页面输入信息需要进行数据格式校验,并且......
  • c#学习笔记-------------------Quartz.NET任务调度框架
    Quartz.NET任务调度框架 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了Quartz.......
  • Java日志框架概览
     SLF4J提供统一的日志门面API,即图中紫色部分,实现中立的日志记录API桥接功能,蓝色部分,把各种日志框架API(绿色部分)桥接到SLF4JAPI。这样即便你的程序中使用各种日志API记录日志,最终都可桥接到SLF4J门面API。适配功能,红色部分,可实现SLF4JAPI和实际日志框架(灰色部分)绑定。SLF4J只是......
  • 【Qt初入江湖】Qt QSqlTableModel 底层架构、原理详细描述
    鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) QtQSqlTableModel是Qt中用于实现基于数据库表格的模型类,它继承自QAbstractTableModel。QSqlTableModel封装了对......
  • 雷电模拟器改arm架构教程,具体如何实现出来?详细
    模拟器,比如雷电模拟器(LDPlayer),通常是在PC上模拟Android操作系统环境,使得用户可以在PC上运行Android应用。雷电模拟器本身就是设计来模拟ARM架构的,因为大部分Android应用都是为ARM架构编译的。然而,由于大多数PC使用的是x86架构的CPU,模拟器需要通过某种方式来翻译或模拟ARM指令集以......
  • 架构中的“大象”
    西方有句谚语叫做:"anelephantintheroom"。用以指代那些显而易见又容易被忽视的东西。这些东西是什么呢?"anelephant":我们可以解释为那些重要的,困难的或者棘手的。这里我们要讨论的则是架构中的"大象":业务价值。通常我们做架构评估的时候,一般会对关联系统的性能,容错弹性,业......
  • 【Qt初入江湖】Qt QSqlRelationalTableModel 底层架构、原理详细描述
    鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) QtQSqlRelationalTableModel是Qt中用于实现具有关联表格的模型类,它继承自QSqlTableModel。QSqlRelationalTable......
  • 多模态模型框架
    多模态模型框架如果有一个序列一共有四步操作,每一步操作都可以作为一条训练数据。训练数据如下图:Model选型文字和图像编码器分别为CN-clip的Vit-B/16和bertgithub地址:https://github.com/OFA-Sys/Chinese-CLIP操作编码器为:一个线性层升维到512维度工程实现:数据方面:前......
  • 【原创】爆肝23页教程,自研关键字驱动框架
    tep关键字驱动框架教程tep简介tep是TryEasyPytest的首字母缩写,关键字驱动框架,专注于接口自动化测试,单个文件即可完成用例编写。设计理念✔️稳定:基于成熟框架pytest,天生强大✔️规范:RobotFramework风格,井井有条✔️统一:关键字命名与JMeter组件一致,一知万用✔️原生:关键字用法保......
  • Laravel框架log权限的问题
    storage目录权限已经设置成777,每天首次访问都会报以下异常:Thestreamorfile"/var/www/storage/logs/laravel.log"couldnotbeopened:failedtoopenstream:Permissiondenied查看php-fpm.conf的运行用户是www-data;Unixuser/groupofprocesses;Note:Theuseris......