当前位置: 首页 > news >正文

[架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

目录

一、什么是架构

1.1 架构是表面轮廓

1.2 架构是内部骨架

1.3 架构是蓝图,是愿景

1.4 架构是数据流、控制流、管理流、同步流

1.5 数据、控制、同步、管理的比较

二、架构的层级

2.1 企业组织架构

2.2 企业系统架构

2.2 信息系统架构

2.3 软件架构

2.4 应用程序的架构

三、软件架构的风格


一、什么是架构

1.1 架构是表面轮廓

对于架构的理解可以包含多个层面,其中一个表层面的解释是"轮廓"。

在这个层面上,架构可以被看作是一种描述系统或建筑物结构、布局和组成的框架或轮廓。

在软件开发中,系统架构是指系统的整体结构和组织方式,它描述了系统中各个组件、模块和它们之间的关系。系统架构可以用一系列的抽象、视图和模型来表示,从整个系统的高级视角展示系统的轮廓和基本组成,而不涉及具体实现细节。

同样地,在建筑领域,建筑架构指的是建筑物的整体设计和布局,它描述了建筑物的外观、内部空间、结构和功能等。建筑架构可以通过蓝图、立面图、平面图等方式来展示建筑物的轮廓和组成。

总而言之,"架构是轮廓"的解释强调了架构作为系统或建筑物的高级描述,它揭示了系统或建筑物的整体结构、布局和组成,但并不涉及具体实现的细节

1.2 架构是内部骨架

 “架构是内部骨架” 的解释更侧重于架构的内部结构和组织方式。在这个解释中,架构被视为系统或建筑物的内在骨干,它定义了系统或建筑物的基本框架和支撑结构。

在软件开发中,系统架构描述了系统内部组件的组织方式、模块化和交互方式。它可以包括系统的分层结构、模块之间的依赖关系、数据流和通信方式。系统架构的设计可以影响系统的可扩展性、性能、可维护性等方面。

在建筑领域,建筑架构涉及建筑物的结构和内在的组织方式。它包括建筑物的骨架结构、支撑柱和梁、楼层布局等。建筑架构的设计要考虑到建筑物的稳定性、空间利用效率以及人员流动等因素。

因此,从 “架构是内部骨架” 的角度来看,架构被视为系统或建筑物的内在骨干,定义了系统或建筑物的基本框架和支撑结构。它是系统或建筑物内部的组织方式和骨架,影响着整体的功能、性能和稳定性。

1.3 架构是蓝图,是愿景

对于架构的理解,可以把它看作是一个系统或者建筑的蓝图,同时也代表了一个愿景。

在软件开发中,架构是系统设计的蓝图,它提供了一个高层次的方案,描述了系统的组织结构、组件和模块之间的关系,以及系统的行为和特性。它为软件开发团队提供了一个共同的愿景,指导他们如何设计、开发和实现系统

同样地,在建筑领域,架构描述了建筑物的设计理念、空间布局、结构和功能。它不仅仅是一个蓝图,也是建筑师对建筑物的愿景的体现。架构通过创造性的设计和独特的表达方式,将建筑师的愿景转化为实际的建筑作品

因此,“架构是蓝图,是愿景” 强调了架构作为一个描述系统或建筑物的蓝图和计划,同时也代表了设计者或者团队的愿景和创造力。架构蓝图和愿景一起指导着系统或建筑的设计、实现和发展,实现预期的目标和效果。

1.4 架构是干系人交流的载体

架构作为软件系统设计和开发的基础,可以被视为干系人交流的载体。架构不仅仅关注技术实现方案,更重要的是它携带着各方利益相关者之间的沟通和理解。

通过架构,干系人可以共同理解系统的整体设计和组成部分,包括系统的功能、性能、安全、可扩展性等方面。这有助于干系人就需求和优先级进行有效的讨论和决策。架构还为干系人提供了一个共同的语言和视角,使得各方能够更清晰地表达自己的需求和期望,从而促进沟通和协作。

在架构设计过程中,与干系人的交流是至关重要的。架构师需要与业务方、开发团队、测试团队、运维团队等各方进行密切合作,了解他们的需求、约束和优先级,从而设计出符合各方期望的系统架构。通过有效的沟通,能够减少信息不对称、减少误解和冲突,提高开发过程的效率和质量。

此外,架构也可以作为沟通的可视化工具。通过绘制架构图、流程图、时序图等,可以直观地展示系统组件之间的关系和交互,帮助干系人更好地理解和评估系统设计方案。架构图像可视化了复杂的技术细节,使得非技术人员也能够更好地参与和理解系统开发。

因此,架构作为干系人交流的载体,不仅仅是技术工具,更是一种协作和共识的工具,帮助各方在软件开发过程中保持一致性和高效性。

1.5 架构是数据流、控制流、管理流、同步流

“架构是数据流、控制流、管理流” 描述了架构的几个重要方面,这些方面涉及到系统或软件的核心运作机制。

数据流(业务流动):涉及系统中信息或数据的传递方式和路径。在系统架构中,数据流描述了数据从一个模块、组件或子系统到另一个模块、组件或子系统的流动。它关注的是数据的输入、输出和处理过程,帮助设计者理解系统内各个组成部分之间的数据传递和处理关系数据数据处理是业务处理,是系统的核心和内核。

控制流(项目管理、系统内协同):涉及系统中指令、操作或流程的流动方式。在软件架构中,控制流描述了软件的行为逻辑和执行顺序。它包括条件判断、循环、函数调用等程序控制结构,定义了系统的控制逻辑和程序执行路径。

管理流(人力资源管理):涉及系统中的管理和调度机制。在系统架构中,管理流描述了系统中资源、任务或进程的分配和管理方式。它关注的是系统中资源的调度、状态管理和协调,确保系统的有效运行和资源的合理利用。

同步流(系统外协同):是指系统中不同组件之间的同步机制和协作方式。在软件系统中,多个组件或线程可能需要协同工作,以完成特定的任务或实现某种功能。同步流的设计和实现旨在确保各个组件之间的协作和同步,以避免竞态条件和数据不一致问题。

因此,“架构是数据流、控制流、管理流” 强调了架构涉及到系统或软件的数据传递、行为逻辑和管理机制。考虑数据流、控制流和管理流有助于设计者理解和规划系统的核心运作方式,从而实现系统的功能和预期的行为。

1.6 数据、控制、同步、管理的比较

数据、控制、同步、管理是软件系统架构中的四个重要方面,它们在系统设计和运行中起着不同的作用和功能。

  1. 数据:数据是系统中的信息和内容,它是软件系统的核心。数据包括系统所处理的输入、输出、中间结果和持久化存储的数据。数据流描述了数据在系统中的传递和转换过程,关注数据的输入、输出、转换和存储等。

  2. 控制:控制关注系统中的行为逻辑和流程控制。控制流描述了系统中不同模块或组件之间的行为和交互方式。它涵盖了系统中的条件语句、循环、函数调用和事件处理等,以控制系统的执行顺序和流程。

  3. 同步:同步关注系统中不同组件或线程之间的协同和同步机制。同步流描述了系统中各个组件之间的交互和通信方式。它涉及并发和并行处理、线程间的通信、锁机制、消息传递、事件驱动等,以确保正确的协同和同步。

  4. 管理:管理涉及系统中各种资源的管理和分配,例如内存、存储、网络等。管理流描述了系统中资源的管理方式和策略,包括资源的分配、回收、优化和监控等。它涵盖了系统的配置管理、性能管理、安全管理和故障管理等。

        总结起来,数据关注系统中的信息和内容(业务),控制关注系统的行为逻辑(软件工程与项目管理),同步关注组件之间的协同和通信(同步与协同),管理关注资源的管理和分配(资源管理)。在系统设计中,这四个方面是密切相关的,它们共同构成了系统的架构和运行机制,以实现系统的功能、性能、可靠性和可维护性。

架构的本质:就是清晰描述和定义一个系统中上述几个重要的方面。

二、架构的层级

2.1 企业组织架构

企业组织架构是指企业内部的组织形式和层级关系,以及各个部门、职能和角色之间的协作关系。下面是一般的企业组织架构的常见要素:

  1. 高层管理层:包括董事会、首席执行官(CEO)、执行副总裁等。他们负责制定企业的总体战略和决策,并提供指导和监督。

  2. 部门和职能:企业通常根据不同的职能和业务需求划分为多个部门,如财务部门、市场部门、人力资源部门、销售部门等。每个部门负责特定的职能和任务,具有相应的管理层和员工。

  3. 矩阵式结构:某些企业采用矩阵式组织结构,即在部门和职能之外,还以项目为中心进行组织。这样的组织结构可以促进跨部门合作和项目管理。

  4. 岗位和角色:每个部门和职能中都有各种不同的岗位和角色,如部门经理、项目经理、团队领导者、专员等。每个角色对应着不同的职责和职权。

  5. 分公司和地区:对于跨地区或跨国企业,可能会设立多个分公司或地区办事处。这些分支机构通常具有自己的管理团队和员工,但仍属于总体的组织结构。

  6. 横向和纵向通信:企业组织架构必须提供良好的横向和纵向的沟通和协作渠道。横向通信是指不同部门和职能之间的沟通,纵向通信是指上级和下级层级之间的沟通。

企业组织架构的设计要考虑企业的战略目标、业务需求、工作流程和工作效率。它应适应企业的规模和成长需求,并灵活调整以适应变化的市场环境和业务要求。此外,企业组织架构还应促进团队合作、信息共享和跨部门协作,以实现企业的整体成功。

2.2 企业系统架构

企业系统架构(Enterprise System Architecture)是指企业内部的信息系统整体架构,它涵盖了企业内各种应用系统、数据管理、网络架构、安全策略等方面。下面是企业系统架构的一些关键组成部分:

  1. 业务应用系统:包括企业的核心业务系统,如财务管理系统、供应链管理系统、人力资源管理系统等。这些系统支持各种业务流程和功能,帮助企业实现高效的运营。

  2. 数据管理和集成:涵盖企业的数据管理策略、数据仓库、数据传输和数据集成机制。企业系统架构需要确保数据的一致性、可靠性和安全性,同时支持不同系统间的数据共享和交互。

  3. 技术基础设施:包括企业的硬件设备、网络架构、服务器、存储设备等。这些技术基础设施为企业系统提供支撑和支持,确保系统的稳定性、可靠性和可扩展性。

  4. 安全和身份认证:企业系统架构需要考虑安全策略和机制,包括防火墙、访问控制、数据加密等,以保护企业的敏感信息和防止未授权访问。身份认证和访问控制是确保只有合法用户能够访问系统和数据的重要环节。

  5. 业务流程和集成:企业系统架构需要考虑业务流程的设计和优化,以确保不同系统之间的良好集成和协作。这涉及到工作流程管理、业务规则引擎、消息传递、服务总线等技术。

  6. 用户界面和用户体验:企业系统架构需要提供友好和高效的用户界面,以提升用户体验和工作效率。这包括合理的界面设计、交互设计和用户反馈机制。

企业系统架构是为了支持企业的业务需求、提高工作效率和资源优化而设计的。它需要与企业的战略目标和需求相一致,并随着业务的变化进行持续演化和优化。

2.2 信息系统架构

基于您提供的信息,我认为您可能指的是信息系统的基础架构或骨干结构。信息系统脊骨可以理解为系统的核心组件和基础设施,支撑着整个系统的运行和功能。以下是信息系统脊骨的一些关键组成部分:

  1. 网络基础设施:包括计算机网络、服务器、路由器、交换机等,它们构建了系统内部和外部的通信和连接

  2. 数据中心:用于存储和管理系统的数据和信息,包括服务器、存储设备、数据库等。

  3. 操作系统:提供基本的系统管理和运行环境,例如Windows、Linux等。

  4. 数据库管理系统:用于管理和存储系统的数据,包括关系型数据库系统(如MySQL、Oracle)和非关系型数据库系统(如MongoDB、Redis)。

  5. 应用程序和服务:涵盖系统的各种应用程序、服务和服务端组件,如Web应用程序、移动应用程序、API服务等。

  6. 安全和身份验证:涵盖系统的安全体系结构、用户身份验证和访问控制机制,以确保系统的安全性和数据保护。

  7. 监控和管理工具:用于监控系统的运行状态、性能指标和故障处理,以及进行系统管理和配置。

这些组成部分共同构成了信息系统的脊骨,它们相互协作,为系统提供稳定、安全和高效的运行环境。根据具体的系统需求和规模,信息系统的脊骨可能会有所不同。

2.3 软件架构

软件架构(Software Architecture)指的是软件系统在设计和实现时所采用的组织架构,即系统中各个组件(模块或子系统)之间的关系,以及它们如何协同工作来实现系统的功能和目标。

具体来说,软件架构包括系统的结构组织、模块划分、接口定义、通信协议、数据流程、处理逻辑、性能优化、安全性等方面,是软件开发的基础和核心之一。一个好的软件架构应该能够提高系统的可维护性、可扩展性、可重用性以及性能和安全性。

常见的软件架构模式包括:

  1. 分层架构(Layered Architecture):系统的逻辑被划分为不同的层次,每一层次负责不同的功能或处理任务。层与层之间的数据交互通过接口进行,支持更好的模块化和可维护性。

  2. MVC架构(Model-View-Controller Architecture):将系统的结构分成模型层、视图层和控制层三个部分,分别负责数据处理、用户界面和系统控制。该模式支持更好的模块化和可重用性,同时能够提高用户体验和应用性能。

  3. 微服务架构(Microservices Architecture):系统被划分为多个小而独立的服务单元,每个服务单元负责特定的业务功能和数据处理。不同服务单元之间使用轻量级的协议和API进行通信,从而达到更好的可伸缩性和容错性。

其他常见的软件架构模式包括:事件驱动架构(Event-Driven Architecture)、服务导向架构(Service-Oriented Architecture)等。

一个好的软件架构应该能够满足系统设计和实现的要求,并能够适应不同的应用场景和需求。

2.4 应用程序的架构

应用程序的架构是指应用程序的整体结构和组织方式,决定了应用程序的开发、部署和维护方式。常见的应用程序架构包括以下几种:

  1. 单层架构(Monolithic Architecture):应用程序以单一的、统一的程序结构存在,所有的功能模块都集中在一起。这种架构简单直接,适用于小型应用程序,但随着应用程序变得复杂,单层架构会变得不易维护和扩展。

  2. 分层架构(Layered Architecture):应用程序通过分层来组织和划分功能。常见的分层包括表示层、业务逻辑层和数据访问层。分层架构降低了模块间的耦合度,提高了代码的可维护性和可扩展性。

  3. 客户端-服务器架构(Client-Server Architecture):应用程序将系统功能分离到客户端和服务器端。客户端负责提供用户界面,服务器端负责业务逻辑和数据处理。这种架构允许分布式部署,并支持不同类型的客户端。

  4. 基于事件的架构(Event-Driven Architecture):应用程序的处理是基于事件的。系统中的各个组件通过事件进行通信和协同工作。通过事件驱动,可以实现解耦和异步处理,提高系统的扩展性和响应性。

  5. 微服务架构(Microservices Architecture):应用程序被拆分为一组小型、独立的服务。每个服务负责特定的业务功能,可以独立部署和扩展。微服务架构提供了更好的可伸缩性、灵活性和容错性。

  6. 无服务器架构(Serverless Architecture):应用程序的功能由云服务提供商管理和扩展,开发者无需关注底层的服务器和基础设施。这种架构节省了开发和维护的成本,同时可以根据需求自动伸缩。

选择合适的应用程序架构应根据具体的应用需求、性能要求和团队能力等因素进行评估和决策。不同的架构有不同的优缺点,根据实际情况进行选择和折衷是关键。

三、软件架构的风格

常见的软件架构风格指的是在软件系统设计中常用的、具有一定特点和特征的架构模式。

下面列举了一些常见的软件架构风格:

  1. 分层架构(Layered Architecture):将系统划分为逻辑层次结构,每一层次专注于不同的功能。通常包括表示层、业务逻辑层和数据访问层,层次之间通过接口进行通信。这种架构风格具有清晰的分离关注点和模块化的优势。

  2. 客户端-服务器架构(Client-Server Architecture)CS:系统将功能分为客户端和服务器端两个部分,客户端负责用户界面和交互,服务器端处理业务逻辑和数据存储。这种架构风格可以支持分布式部署和协作,适用于多用户和远程访问的情况。

  3. 浏览器-服务器架构(Browser-Server Architecture)BS

    浏览器-服务器架构(Browser-Server Architecture)是一种常见的软件架构,用于支持 Web 应用程序的开发和运行。该架构将系统划分为两个主要的组件:浏览器(Browser)和服务器(Server)。

    浏览器是用户端的组件,负责提供用户界面和与用户的交互。浏览器通过发送请求到服务器来获取所需的数据和资源,并根据服务器返回的响应进行相应的处理。浏览器还负责解析和渲染 HTML、CSS 和 JavaScript,以呈现 Web 页面和处理用户的操作。

    服务器是应用程序的后端组件,负责处理客户端请求并进行相应的逻辑处理。服务器接收浏览器发送的请求,执行相应的业务逻辑,访问数据存储(如数据库)并生成响应结果,然后将响应发送回浏览器。

    浏览器和服务器之间通过网络进行通信,传输 HTTP 请求和响应。常见的 HTTP 方法包括 GET、POST、PUT、DELETE 等,用于在浏览器和服务器之间传递数据和执行操作。

  4. 主从架构(Master-Slave Architecture):多个从属节点(Slave)通过一个主节点(Master)进行协调和管理。主节点负责分配任务和处理结果,从节点执行任务并将结果发送给主节点。这种架构风格可以提高系统的性能和可伸缩性。

  5. 发布-订阅架构Publish-Subscribe Architecture):基于事件的架构风格,组件之间通过发布和订阅消息进行通信。发布者将消息发布到特定的主题(Topic),而订阅者订阅感兴趣的主题并接收相应的消息。这种架构风格可以实现松散耦合和异步通信。

  6. 微服务架构(Microservices Architecture):将系统拆分为一组小型、自治的服务单元,每个服务单元负责特定的业务功能。服务之间通过轻量级的通信机制协同工作,每个服务都可以独立部署和扩展。这种架构风格提倡松散耦合和高度可维护性。

  7. 领域驱动设计(Domain-Driven Design):将软件系统分解为多个有界上下文(Bounded Context),每个上下文都有自己的领域模型,并通过明确的界限进行交互。这种架构风格关注于业务领域的建模和划分,有助于理解和设计复杂的业务系统。

以上是常见的软件架构风格,每种风格都有自己的优势和适用场景。在实际应用中,可以根据系统要求、可用技术和团队能力选择合适的架构风格。同时,也可以根据需要采用多种架构风格的组合,以满足系统复杂性和可扩展性的要求。

四、软件架构发展史

软件架构是随着计算机科学和软件开发的发展而演化的,可以追溯到早期的计算机系统。

软件架构的发展史,就是软件规模、复杂度不断增加的历史!!!

  • 独立一体化的程序
  • 单一程序分化成多个相互耦合的模块
  • 单一程序分化成多个独立的对象模块
  • 客户端程序从服务器端程序中分化
  • 服务器进一步分化:一个服务分化成多个低耦合的服务
  • 服务器进一步分化:一个服务分化成多个独立部署的微服务

以下是软件架构的主要发展阶段:

  1. 早期阶段 - 一体化阶段在计算机科学的早期,软件架构概念还不够明确。这个阶段的软件系统通常是单一程序或小型系统,主要关注单一功能的实现。例如,1960年代的批处理系统和操作系统。

  2. 结构化-模块化阶段 - 分化阶段从20世纪60年代中期开始,软件架构逐渐关注模块化和分离关注点的原则。软件系统被划分为多个模块,每个模块负责特定的功能。这种架构形式更容易理解和维护。例如,模块化编程语言如Pascal和C的出现。

  3. 面向对象阶段 - 分化封装阶段20世纪70年代末到80年代初,面向对象编程的兴起对软件架构产生了重大影响。面向对象的思想将软件系统描述为一组对象,每个对象封装了其状态和行为。通过封装、继承和多态等概念,实现了代码的重用和灵活性。这种架构模式被广泛应用于许多语言和开发方法,如C++和Java。

  4. 客户端-服务器架构(CS或BS:单一服务、多个请求端) - 服务化启蒙纪90年代,随着互联网的发展,客户端-服务器架构成为主流。这种架构模式将软件系统划分为客户端和服务器两个部分,客户端处理用户界面和交互,服务器处理业务逻辑和数据存储。这种架构模式支持分布式部署和协作,广泛应用于 Web 应用程序和服务端应用程序。

  5. 服务导向架构(SOA)(多个松散耦合的服务):21世纪初,服务导向架构提出,强调将软件系统划分为一组松散耦合的服务单元。这些服务单元通过标准化的协议进行通信,实现了模块化、可复用和可扩展的架构。SOA 可以通过多个组织和平台之间的服务交互,形成跨组织的业务流程。

  6. 微服务架构 - 世界的偏平化的趋势(多个独立部署的服务):在近年来,微服务架构崛起并成为主流。微服务架构将系统拆分为一组小型、自治的服务单元,每个单元负责特定的业务功能每个服务可以独立部署(这是微服务的关键),通过轻量级的通信协议以松散耦合的方式协同工作。这种架构风格能够支持快速开发、灵活扩展和持续交付。

随着技术的不断发展和业务需求的变化,软件架构将继续演化和改进。例如,大数据架构、无服务架构、容器化和云原生架构等都是当前的热门趋势和发展方向。

相关文章:

[架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

目录 一、什么是架构 1.1 架构是表面轮廓 1.2 架构是内部骨架 1.3 架构是蓝图,是愿景 1.4 架构是数据流、控制流、管理流、同步流 1.5 数据、控制、同步、管理的比较 二、架构的层级 2.1 企业组织架构 2.2 企业系统架构 2.2 信息系统架构 2.3 软件架构 …...

【接口技术】定时计数器习题

1:8253芯片有______个端口地址。 【可选】 2 3 4 6 解答:4 2:8253芯片有______种工作方式。 【可选】 3 4 5 6 解答:6 3: 8253芯片内部有完全独立的______。 【可选】 6个16位计数通道 3个16位计数通道 6个8位计…...

DC电源模块的的散热结构合理布局

BOSHIDA DC电源模块的的散热结构合理布局 DC电源模块在工业控制、通讯、汽车电子等领域广泛应用。然而,随着功率密度不断提高,DC电源模块产生的热量也越来越大,散热问题变得越来越突出。为了保障电路的稳定性和可靠性,必须采取合…...

Fedora Linux 38下安装音频与视频的解码器和播放器

Fedora Linux 38 操作系统安装好后,默认是没有音频与视频的解码器的,音频与视频的播放体验非常差劲。但是第三方的软件源中有解码器和播放器的软件,需要我们自己手动安装。、 连接互联网,打开Shell命令行: 1. sudo d…...

边缘计算:云计算的延伸

云计算已经存在多年,并已被证明对大大小小的企业都有好处;然而,直到最近边缘计算才变得如此重要。它是指发生在网络边缘的一种数据处理,更接近数据的来源地。 这将有助于提高效率并减少延迟以及设备和云之间的数据传输成本。边缘…...

【经验分享】在Kylin桌面版操作系统中配置openGauss的ODBC数据源

引言 openGauss是一款开源的关系型数据库管理系统,它提供了强大的功能和性能,可以满足各种企业级应用的需求。与此同时,ODBC(Open Database Connectivity)是一个标准的数据库访问接口,它允许应用程序通过统…...

WSL——ubuntu中anaconda换源(conda、pip)

1、conda 打开Ubuntu,输入下列命令。 conda config --set show_channel_urls yes 在文件管理器地址栏,输入:\\wsl$。打开Ubuntu根路径,其中显示了.condarc文件。 以文本形式打开,并输入要换的源,保存即可。…...

IP地址在网络安全中的关键作用

IP地址(Internet Protocol Address)是互联网世界中的重要标识符,它在网络安全领域发挥着至关重要的作用。这些地址不仅帮助设备在网络上找到彼此,还在多个方面有助于维护网络的完整性、机密性和可用性。本文将探讨IP地址在网络安全…...

Android.mk 中覆盖应用包名

项目场景: 一般来讲应用包名都是配置在 AndroidManifest.xml 中的,但遇到特殊情况,需要修改源码中应用包名 通常都会先去改 AndroidManifest.xml package 但改为后编译发现一顿错误,原因是 java 类中已经指定了 R 文件包名&…...

如何最有效地使用ChatGPT:提问技巧与策略

前言 在如今信息技术高速发展的时代,像ChatGPT这样的大型自然语言处理模型为我们提供了一个强大的工具,以获取各种信息和答案。然而,要充分利用这一工具,您需要掌握一些提问技巧与策略,以确保获得最准确和有用的回答。…...

【JAVA学习笔记】40 - 抽象类、模版设计模式(抽象类的使用)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/abstract_ 一、抽象类的引入 很多时候在创建类的时候有一个父类,比如animal类,他的子类会有各种方法,为了复用需要进行方法的重写&…...

如何通过在线培训考试系统进行远程教育

随着互联网技术的不断发展,远程教育正在成为一种新型的学习方式,它使学生能够在任何地点、任何时间通过在线培训考试系统接受教育。 利用在线培训考试系统进行远程教育具有很大的灵活性。学生可以根据自己的时间和需求自由选择课程,无需受制…...

2021-arXiv-The Power of Scale for Parameter-Efficient Prompt Tuning

2021-arXiv-The Power of Scale for Parameter-Efficient Prompt Tuning Paper: https://arxiv.org/abs/2104.08691 Code: https://github.com/google-research/ text-to-text-transfer-transformer/ blob/main/released_checkpoints.md# lm-adapted-t511lm100k 在这项工作中&…...

计算机视觉与深度学习 | 非线性优化理论:图优化、高斯牛顿法和列文伯格-马夸尔特算法

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 计算机视觉与深度学习 | SLAM国内外研究现状 计算机视觉与深度学习 | 视…...

一文说尽零售数据分析指标体系

零售的本质业务模式是通过在各种渠道上吸引客户来购买我们的商品来实现盈利,其实就是客户-渠道-商品,也就是我们常说的“人、场、货”,除此之外还有供应链、财务等起到重要的辅助作用。因此如果要构建起系统化的零售数据分析指标体系&#xf…...

AT2659一款卫星导航低噪声放大器芯片(LNA)

产品介绍 AT2659 是一款专门针对中国 BDS(北斗卫星导航系统),美国的 GPS,俄罗斯的 GLONASS 和欧盟的 GALILEO 导航系统应用而设计的高增益、低噪声系数射频放大器。 AT2659 具有 23dB 高增益和 0.71dB 的低噪声系数。芯片支持 …...

GoLong的学习之路(二)语法之基本数据类型

书接上回:我在GoLong的学习之路(一)中在常量最后说了iota的作用。今天这里我在介绍一下我学习Go语言中基本数据类型。 文章目录 Go中的基本数据类型整型特殊整型数字字面语法 浮点型复数布尔值字符串字符串转义符多行字符字符串的常用操作&am…...

网关概念及java项目中用使用网关场景

网关(Gateway)是一个在网络系统中起到入口和出口的作用的组件或服务。它位于客户端和服务器之间,负责处理进出网络的流量,实现一些重要的功能,如路由、安全认证、协议转换等。 网关在网络架构中扮演了多种角色&#x…...

网页禁止右键 禁止F12 JavaScript禁止F12 禁止右键菜单 包含 js、Jquery、Vue

网页禁止右键 禁止F12 Jquery禁止F12 禁止右键菜单 包含 Jquery、Vue 网页禁止右键 禁止F12 JavaScript禁止F12 禁止右键菜单 jsJavaScript 中Jquery 中Vue 中 这样设置通常是出于安全性或保护内容的目的,不想让别人看到源代码等信息 网页禁止右键 禁止F12 JavaScr…...

Linux系统编程07

线程 为什么有了进程还需要线程 进程切换的时候会花费很大的代价 (1)上下文切换,CPU寄存器需要切换 (2)虚拟地址和物理地址的映射需要切换 进程间通信麻烦 线程是轻量级的进程 (1)线程是一个正…...

html web前端 登录,短信验证码登录

html web前端 登录,短信验证码登录 1,手机号码格式校验 2,按钮点击60秒倒计时,按钮限制点击 3,验证码/或密码长度校验(被注释,公司发的验证码长度不一致,不一定是6位) 4…...

(免费领源码)php#Thinkphp#MYSQL校园二手交易app 99211-计算机毕业设计项目选题推荐

目 录 摘要 Abstract 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 校园二手物品交易app系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析…...

用Python做数据分析之数据筛选及分类汇总

1、按条件筛选(与,或,非) 为数据筛选,使用与,或,非三个条件配合大于,小于和等于对数据进行筛选,并进行计数和求和。与 excel 中的筛选功能和 countifs 和 sumifs 功能相似…...

RabbitMQ高级篇 笔记

这是一些高级的内容。 RabbitMQ还是运行在网络上的,倘若遇到了网络故障,mq自己挂了,出异常了,都会造成最终状态不一致的问题。这就是可靠性问题。 可靠性:一个消息发送出去之后,至少被消费1次。 要解决这3个…...

javaEE -9(7000字详解TCP/IP协议)

一: IP 地址 IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物…...

在mybatis的xml中使用枚举来做判断条件

1.枚举类 import com.baomidou.mybatisplus.annotation.IEnum; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import com.shinkeer.common.utils.StringUtils;import java.util.HashMap; import java.util.Map;…...

scala集合的partition方法使用

在Scala中,partition 方法用于将集合(例如 List、Array ,Set等)中的元素根据给定的条件分成两个部分,并返回一个元组,其中包含两个新的集合,第一个包含满足条件的元素,另一个包含不满…...

18 Transformer 的动态流程

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 机…...

Android Studio新功能-设备镜像Device mirroring-在电脑侧显示手机实时画面并可控制

下载最新的灰测版本-蜥蜴 成功运行到真机后,点击右侧Running Devices选项卡,再点击号 选中当前设备; 非常丝滑同步,在电脑侧也可以顺畅控制真机 该功能大大方便了我们视线保持在显示器上专注开发,并且便于与UI视觉进行…...

MySQL身份验证绕过漏洞

搭建 vmihub靶场:vulhub靶场搭建与使用_剁椒鱼头没剁椒的博客-CSDN博客 运行漏洞: # 这里要改成自己的 /vulhub-master 存放目录 cd /etc/docker/vulhub-master/mysql/CVE-2012-2122# 关闭防火墙,不然就要放行3306端口 systemctl stop firewalld# 重启 Docker 服务 servic…...