技术周总结 09.16~09.22 周日(架构 C# 数据库)

news2024/11/15 8:48:51

文章目录

  • 一、09.16 周一
    • 1.1)问题01: 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么?
    • 1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?
      • ATAM 的主要目标
      • ATAM 的核心概念
      • ATAM 的评估流程
        • 1. **阶段 0:准备工作**
        • 2. **阶段 1:介绍与需求确认**
        • 3. **阶段 2:架构驱动的评估**
        • 4. **阶段 3:权衡分析与报告**
      • ATAM 的评估输出
      • ATAM 的优点
      • ATAM 的局限性
      • 总结
  • 二、09.19 周四
    • 2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解
      • 用例之间的关系类型:
      • 题目中“选择专业”与“登录系统”用例之间的关系:
      • 题目中“参加模拟考试”与“批阅答卷”用例之间的关系:
    • 2.2)类之间的关系及示意图
      • 1. **关联(Association)**
      • 2. **聚合(Aggregation)**
      • 3. **组合(Composition)**
      • 4. **依赖(Dependency)**
      • 5. **继承/泛化(Generalization/Inheritance)**
      • 6. **实现(Realization)**
      • 关系的总结与应用
  • 三、09.21 周六
    • 3.1)问题01: resx文件是什么文件,有什么作用?
      • 示例
      • 使用方法
  • 四、06.22 周日
    • 4.1) 问题01: 数据库理论中的关系代数表达式

一、09.16 周一

1.1)问题01: 软件质量属性中"质量属性场景"、“质量属性环境分析”、“质量属性效用树”、"质量属性需求用例分析"分别是什么?

在软件工程中,为了确保软件产品的质量,通常会采用多种技术和方法来描述和评估软件的质量属性。以下是对“质量属性场景”、“质量属性环境分析”、“质量属性效用树”以及“质量属性需求用例分析”的解释:

  1. 质量属性场景 (Quality Attribute Scenarios)

    • 质量属性场景是一种用来描述软件在特定条件下表现的技术。
    • 通常包括三个主要组成部分:刺激(stimulus)、操作(operator)和响应(response)。
    • 刺激是指外部输入或触发事件;操作是系统内部的处理逻辑;响应是系统对外部刺激的输出或反应。
    • 通过构建具体的情景来评估软件在不同条件下的行为,以确保其满足预期的质量要求。
  2. 质量属性环境分析 (Environmental Analysis for Quality Attributes)

    • 这一术语可能并不常见,但它可以理解为对软件运行环境的分析,目的是确定环境因素如何影响软件的质量属性。
    • 分析的内容可能包括硬件平台、操作系统版本、网络条件等,这些都可能对软件的性能、可靠性、安全性等产生影响。
    • 环境分析有助于识别潜在的风险,并提前采取措施进行规避。
  3. 质量属性效用树 (Utility Tree for Quality Attributes)

    • 效用树是一种图形化的表示方法,用来描述软件质量属性及其子属性之间的层次关系。
    • 通过构建一棵树形结构,可以帮助团队理解不同质量属性之间的相互依赖关系,以及这些属性是如何共同影响用户体验的。
    • 树形结构中,顶层节点通常是软件的总体目标,中间层节点代表具体的质量属性(如性能、可用性、安全性等),而底层节点则可能是具体的度量指标或实现细节。
  4. 质量属性需求用例分析 (Use Case Analysis for Quality Attribute Requirements)

    • 用例分析是软件工程中常用的一种需求捕获方法,主要用于描述系统的行为以及它如何与外部参与者(如用户)互动。
    • 在这个上下文中,质量属性需求用例分析是指通过用例来捕捉和分析软件需要满足的质量属性要求。
    • 通过定义涉及质量属性的用例,可以确保系统设计和开发过程中充分考虑这些非功能性需求,并在实施过程中进行验证。

这些技术和方法帮助软件开发团队更好地理解、描述和评估软件的质量属性,从而确保最终产品能够满足用户的需求和期望。

1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?

ATAMArchitecture Tradeoff Analysis Method,架构权衡分析方法)是由**SEI(Software Engineering Institute)**提出的一种用于评估软件架构质量的系统化方法。它通过分析架构设计中的质量属性(如性能、可用性、安全性、可修改性等)来识别潜在的架构风险和权衡点,从而帮助利益相关方更好地理解架构的优缺点,确保架构能够满足系统的需求。

ATAM 的主要目标

  • 识别架构中的风险和权衡:在不同的质量属性之间找到平衡点,比如性能与安全性、可修改性与性能之间的权衡。
  • 提高架构的质量:通过分析架构设计的决策是否支持系统的目标质量属性,改进架构设计,提高其质量。
  • 确保满足需求:验证架构是否能够满足关键的功能性和非功能性需求(质量属性)。

ATAM 的核心概念

  1. 质量属性(Quality Attributes)

    • ATAM 关注的质量属性是系统的非功能性需求,如性能、可用性、安全性、可修改性、可扩展性等。这些属性通常在设计决策中相互影响,需要在它们之间做出权衡。
  2. 架构决策(Architectural Decisions)

    • 架构决策是指在架构设计中做出的关于模块划分、接口定义、技术选型、模式应用等方面的决定。这些决策直接影响系统的质量属性表现。
  3. 权衡分析(Tradeoff Analysis)

    • 不同的质量属性往往相互制约。例如,为了提升性能,可能会牺牲安全性;提高可修改性可能会降低系统的效率。ATAM 通过权衡分析来帮助利益相关方理解这些影响并做出合理的架构选择。

ATAM 的评估流程

ATAM 的评估流程通常分为四个阶段,每个阶段都有特定的活动,评估的参与者包括架构师、开发团队、利益相关方等。

1. 阶段 0:准备工作
  • 组建评估团队,确定评估范围和目标。
  • 收集并准备与架构相关的背景资料。
2. 阶段 1:介绍与需求确认
  • 架构介绍:由架构师介绍系统的架构设计,包括架构风格、设计决策等。
  • 业务需求确认:确定系统的业务需求和关键的质量属性,了解系统需要解决的核心问题。
  • 利益相关方参与:包括客户、项目经理、开发人员等,明确他们对系统质量属性的关注点。
3. 阶段 2:架构驱动的评估
  • 场景驱动分析:根据系统的使用场景,分析架构设计是否能够支持关键的质量属性。场景可以是用例、非功能需求场景或架构变更场景。
  • 质量属性效用树:通过效用树分析不同质量属性的优先级和重要性,明确哪些质量属性对系统最关键。
  • 架构敏感点分析:识别出那些对质量属性有显著影响的架构决策(即敏感点),以及这些决策对不同属性的影响。
  • 架构风险识别:根据敏感点的分析,发现潜在的架构风险,如某些设计决策可能影响性能或扩展性。
4. 阶段 3:权衡分析与报告
  • 权衡分析:识别和讨论不同质量属性之间的权衡,并提出解决方案或改进建议。
  • 总结与报告:编写评估报告,记录发现的风险、建议的改进点和设计权衡,并提供给项目团队和利益相关方。

ATAM 的评估输出

ATAM 的最终结果包括:

  • 关键的质量属性需求:明确系统最重要的质量属性,并通过效用树显示其优先级。
  • 架构风险:识别在当前设计中存在的架构风险。
  • 权衡决策:展示在不同质量属性之间需要做出的权衡,并提供详细的分析。
  • 改进建议:针对风险提出具体的改进建议,优化架构设计。

ATAM 的优点

  • 系统化评估架构质量:ATAM 提供了一种结构化的方式,帮助架构师识别并解决架构中的潜在问题。
  • 支持利益相关方参与:通过让利益相关方参与评估过程,ATAM 能够确保架构决策符合项目的业务需求和技术要求。
  • 识别权衡和风险:ATAM 强调在不同质量属性之间做出合理的权衡,帮助团队在早期发现并解决设计中的潜在问题。

ATAM 的局限性

  • 时间与成本较高:ATAM 评估过程比较复杂,涉及到多个利益相关方,通常需要较长的时间和较高的成本来完成。
  • 依赖架构师的经验:ATAM 的评估结果在很大程度上依赖于架构师的经验和对系统的理解,不同的评估团队可能产生不同的评估结果。

总结

ATAM 是一种用于评估软件架构质量的有效方法,重点在于通过对质量属性的分析和权衡,帮助项目团队识别架构中的潜在风险并提出改进建议。通过系统化的评估过程,ATAM 能够确保架构设计不仅满足功能需求,还能在性能、可用性、可修改性、安全性等非功能需求上表现优异,从而支持系统的长期演进和稳定运行。

二、09.19 周四

2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解

在面向对象系统建模中,用例之间的关系主要有以下几种类型:

用例之间的关系类型:

  1. 包含关系(Include)

    • 一个用例包含了另一个用例的行为。被包含的用例是必要的步骤,必须执行。
    • 表示法:<<include>>
    • 示例:在一个“注册用户”用例中,可能包含“验证用户信息”的用例。
  2. 扩展关系(Extend)

    • 一个用例在特定条件下可能扩展另一个用例的行为。扩展的用例是可选的,只有在某些条件下才会执行。
    • 表示法:<<extend>>
    • 示例:在一个“提交订单”用例中,可能扩展“使用优惠券”的用例。
  3. 泛化关系(Generalization)

    • 用例之间具有继承关系,子用例继承父用例的行为。子用例可以增加或覆盖父用例的部分行为。
    • 表示法:实线三角箭头
    • 示例:一个“支付”用例可以泛化为“信用卡支付”和“网上银行支付”两个具体子用例。

题目中“选择专业”与“登录系统”用例之间的关系:

包含关系(Include)

  • 解释:用户必须先登录系统,才能执行“选择专业”的操作。也就是说,“选择专业”用例依赖于“登录系统”用例的执行。因此,“选择专业”用例包含了“登录系统”用例,这是一个强制性的操作。

  • 描述:在需求建模时,“选择专业”用例包含了用户“登录系统”的操作,这是必需的步骤,用户不可能在未登录的情况下直接选择专业。


题目中“参加模拟考试”与“批阅答卷”用例之间的关系:

扩展关系(Extend)

  • 解释:学生参与“模拟考试”后,教师才能进行“批阅答卷”。但从系统角度看,批阅答卷的行为是独立的,它不是“参加模拟考试”用例的必要步骤,只有在考试结束后,教师需要时才会进行批阅。因此,“批阅答卷”用例扩展了“参加模拟考试”用例。

  • 描述:学生提交答卷后,教师可以选择批阅或不批阅。批阅答卷作为可选的操作,依赖于“参加模拟考试”的完成。

2.2)类之间的关系及示意图

类之间的关系有 关联、聚合、组合、依赖、泛化(继承)、实现6种关系,示意图如下:
类之间的关系
在面向对象系统建模中,类之间的关系是系统设计的关键部分,类之间的关系通常反映对象之间的交互和依赖。主要有以下几种类型:

1. 关联(Association)

  • 描述:关联表示两个类之间存在某种联系,它们可以互相访问。关联可以是单向的或双向的。
  • 表示法:实线连接两个类,通常带有方向箭头(单向)或无箭头(双向)。可以在关联线旁标注角色名称和多重性(如 1:N)。
  • 示例:学生与课程的关系,一个学生可以选修多门课程,课程可以被多个学生选修。

2. 聚合(Aggregation)

  • 描述:聚合是关联的一种特殊形式,表示“整体-部分”的关系。聚合表示部分可以独立于整体存在,生命周期上不依赖于整体。
  • 表示法:带空心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
  • 示例:一辆汽车与轮胎的关系,轮胎是汽车的一部分,但即使汽车不存在,轮胎仍可以单独存在。

3. 组合(Composition)

  • 描述:组合也是“整体-部分”的关系,但它比聚合更强,表示部分完全依赖于整体,不能单独存在。整体的生命周期决定了部分的生命周期。
  • 表示法:带实心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
  • 示例:一本书与章节的关系,如果书不存在,章节也不存在。章节是书的组成部分,无法独立于书存在。

4. 依赖(Dependency)

  • 描述:依赖表示一个类依赖于另一个类,意味着一个类使用到另一个类,通常体现在类的方法中使用另一个类作为参数或局部变量。依赖关系通常是临时的,生命周期上不绑定。
  • 表示法:虚线带箭头的连接线,箭头指向被依赖的类。
  • 示例:方法调用的关系,比如一个打印机驱动类依赖于打印机类,来执行打印操作。

5. 继承/泛化(Generalization/Inheritance)

  • 描述:继承表示子类继承父类的属性和方法,子类是父类的特殊化。继承是“is-a”关系,表示某个类是另一个类的子类或派生类。
  • 表示法:实线三角箭头,箭头指向父类。
  • 示例:学生类继承了“人类”,学生是人类的子类,继承了人类的共性属性。

6. 实现(Realization)

  • 描述:实现表示一个类实现了接口中的方法。接口是定义类行为的抽象,而实现类提供了具体的实现。
  • 表示法:虚线三角箭头,箭头指向接口类。
  • 示例:假设有一个“可打印”接口,类“文档”实现了该接口的具体打印方法。

关系的总结与应用

  • 关联关系用于描述类之间相对松散的联系,适合表示具有可互相访问行为的类。
  • 聚合组合用于描述整体与部分的关系,聚合表示部分可以独立存在,组合表示部分依赖于整体。
  • 依赖用于表示临时的、弱耦合的依赖关系,通常体现在类的行为中。
  • 继承用于表示类之间的继承关系,子类继承父类的特征。
  • 实现用于类实现接口的情况,通常用于多态性设计。

每种关系都有其适用场景,在面向对象设计中根据需求选择合适的类之间的关系非常重要。

三、09.21 周六

3.1)问题01: resx文件是什么文件,有什么作用?

.resx文件是用于在.NET应用程序中存储资源的XML文件。它的全称是“XML Resource File”。这些文件通常包含字符串、图像、图标和其他类型的数据,可以在应用程序运行时加载和使用。

.resx文件的主要作用包括:

  1. 本地化和全球化:通过将不同语言的资源存储在不同的.resx文件中,可以轻松实现应用程序的多语言支持。根据用户的区域设置,应用程序可以选择加载相应的资源文件。

  2. 资源管理:将资源文件与代码分离,有助于更好地管理和维护。资源文件可以独立于代码进行修改,而不需要重新编译整个应用程序。

  3. 简化开发:开发工具(如Visual Studio)提供了对.resx文件的良好支持,使得开发者可以通过图形界面轻松编辑资源内容。

示例

一个简单的.resx文件可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="HelloWorld" xml:space="preserve">
    <value>Hello, World!</value>
  </data>
  <data name="AppTitle" xml:space="preserve">
    <value>My Application</value>
  </data>
</root>

在这个例子中,HelloWorldAppTitle是资源的键,它们对应的值分别是"Hello, World!""My Application"

使用方法

在C#代码中,可以通过ResourceManager类来访问.resx文件中的资源。例如:

using System;
using System.Resources;

class Program
{
    static void Main()
    {
        ResourceManager rm = new ResourceManager("MyNamespace.MyResource", typeof(Program).Assembly);
        string hello = rm.GetString("HelloWorld");
        string title = rm.GetString("AppTitle");
        Console.WriteLine(hello);
        Console.WriteLine(title);
    }
}

在这个例子中,MyNamespace.MyResource是资源文件的命名空间和名称,GetString方法用于获取字符串类型的资源。

通过使用.resx文件,可以显著提高应用程序的可维护性和扩展性,特别是在需要支持多语言和多区域设置的情况下。

四、06.22 周日

4.1) 问题01: 数据库理论中的关系代数表达式

关系代数是一种形式化的查询语言,用于描述如何从一个或多个关系数据库中检索数据。它由一系列的操作符组成,可以组合起来形成复杂的查询表达式。在关系代数中,基本操作包括选择(Selection)、投影(Projection)、并(Union)、差(Difference)以及笛卡尔积(Cartesian product)。此外,还有几个导出的操作,如交集(Intersection)、连接(Join)、自然连接(Natural Join)、除法(Division)等。

下面是一些基本的关系代数表达式的例子:

  1. 选择(Selection)

    • 表示为 σ<条件>®,其中 R 是关系名。<条件> 可以是基于关系的属性的逻辑表达式。
    • 示例:σ年龄 > 30(员工) 表示选择所有年龄大于30岁的员工。
  2. 投影(Projection)

    • 表示为 π属性列表®,属性列表指定了需要保留的列。
    • 示例:π姓名, 年龄(员工) 表示只保留员工表中的姓名和年龄两列。
  3. 并(Union)

    • 表示为 R ∪ S,其中 R 和 S 都必须具有相同的模式(即相同数量及类型的属性)。
    • 示例:σ部门=‘销售’(员工) ∪ σ部门=‘市场’(员工) 表示选择属于销售部门或市场部门的所有员工。
  4. 差(Difference)

    • 表示为 R - S,结果是 R 中有而 S 中没有的元组。
    • 示例:σ部门=‘销售’(员工) - σ性别=‘女’(员工) 表示选择属于销售部门但不是女性的员工。
  5. 笛卡尔积(Cartesian product)

    • 表示为 R × S,返回两个集合中每个元组的配对。
    • 示例:员工 × 部门 表示列出每一名员工与每一个部门的配对。
  6. 连接(Join)

    • 连接操作结合了选择和笛卡尔积的功能。表示为 R ⋈ S,其中 R 和 S 是关系,并且连接条件用于过滤笛卡尔积的结果。
    • 示例:员工 ⋈ σ员工.部门号 = 部门.部门号(部门) 表示将员工与部门表通过部门号关联起来。
  7. 自然连接(Natural Join)

    • 自然连接仅在两个关系中有相同名称的属性上进行连接。
    • 示例:员工 ⨝ 部门 表示在员工与部门表之间共享的属性上自动执行连接。
  8. 除法(Division)

    • 除法用于找到第一个关系中的元组,这些元组与第二个关系中的每个元组都有匹配项。
    • 示例:供应商 ÷ 零件 表示找到供应所有列出零件的供应商。

关系代数表达式可以组合使用上述操作来构建更复杂的查询。例如,要找出所有销售部的男性员工的名字,可以这样写:

π姓名 (σ性别=‘男’ ∧ 部门=‘销售’(员工))

这会先选择所有性别为“男”并且部门为“销售”的员工,然后从中提取他们的名字。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2155587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习(1)sklearn的介绍和六个主要模块、估计器、模型持久化

文章目录 1.sklearn介绍2.sklearn的模块3.监督学习和无监督学习1. 监督学习 (Supervised Learning)例子 2. 无监督学习 (Unsupervised Learning)例子 4.估计器估计器的主要特性和方法包括&#xff1a;估计器的类型&#xff1a;示例&#xff1a;使用 scikit-learn 中的估计器 5.…

用最通俗易懂的语言和例子讲解三维点云

前言&#xff1a; 我整体的学习顺序是看的按B站那“唯一”的三维点云的视频学习的&#xff08;翻了好久几乎没有第二个...&#xff09;对于深度学习部分&#xff0c;由于本人并没有进行学习&#xff0c;所以没有深究。大多数内容都进行了自己的理解并找了很多网络的资源方便理解…

JavaScript可视化示例

JavaScript 可视化是指使用 JavaScript 编程语言来创建和操作图形、图表、动画等视觉元素的过程。以下是一些常见的 JavaScript 可视化库和工具&#xff0c;以及它们的主要特点&#xff1a; 1. D3.js 特点: D3.js&#xff08;Data-Driven Documents&#xff09;是一个非常强大…

MySQL高阶之存储过程

什么是存储过程? 存储过程可称为过程化SQL语言&#xff0c;是在普通SQL语句的基础上增加了编程语言的特点&#xff0c;把数据操作语句(DML)和查询语句(DQL)组织在过程化代码中&#xff0c;通过逻辑判断、循环等操作实现复杂计算的程序语言。 换句话说&#xff0c;存储过程其实…

Linux常用命令 笔记

Linux常用指令 查看命令ls 列出指定路径下的文件和目录cd 切换目录绝对路径相对路径 pwd 查看当前路径的绝对路径touch 创建空文件cat 显示文件内容echo 显示内容 & 写入文件vim 文本编辑器打开文件编辑文件保存退出 mkdir 创建目录rm 删除文件&目录删除文件删除目录 定…

java重点学习-设计模式

十三 设计模式 工厂模式&#xff1a;spring中使用&#xff08;目的是&#xff1a;解耦&#xff09; 1.简单工厂 所有的产品都共有一个工厂&#xff0c;如果新增产品&#xff0c;则需要修改代码&#xff0c;违反开闭原则是一种编程习惯&#xff0c;可以借鉴这种编程思路 2.工厂方…

分布式锁优化之 防死锁 及 过期时间的原子性保证(优化之设置锁的过期时间)

文章目录 1、AlbumInfoApiController --》testLock()2、AlbumInfoServiceImpl --》testLock()3、问题&#xff1a;可能会释放其他服务器的锁。 在Redis中设置一个名为lock的键&#xff0c;值为111&#xff0c;并且只有在该键不存在时才设置&#xff08;即获取锁&#xff09;。同…

为解决bypy大文件上传报错—获取百度云文件直链并使用Aria2上传文件至服务器

问题描述 一方面组内的服务器的带宽比较小&#xff0c;另一方面使用bypy方式进行大文件(大于15G)上传时会报错&#xff08;虽然有时可以成功上传&#xff0c;但是不稳定&#xff09;&#xff1a; 解决方式 总体思路: 获得云盘需要下载文件的直链复制直链到服务器中使用自带…

Selenium with Python学习笔记整理(网课+网站持续更新)

本篇是根据学习网站和网课结合自己做的学习笔记&#xff0c;后续会一边学习一边补齐和整理笔记 官方学习网站在这获取&#xff1a; https://selenium-python.readthedocs.io/getting-started.html#simple-usage WEB UI自动化环境配置 (推荐靠谱的博客文章来进行环境配置,具…

OpenCV运动分析和目标跟踪(3)计算图像序列的加权平均值函数accumulateWeighted()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 更新一个运行平均值。 该函数计算输入图像 src 和累积器 dst 的加权和&#xff0c;使得 dst 成为帧序列的运行平均值&#xff1a; dst ( x , y…

CANopen通讯协议笔记

CANopen通讯协议笔记 CANopen 通信对象编号CANopen整体框架网络管理&#xff08;NMT&#xff09;主要任务上线报文心跳报文过程数据对象&#xff08;PDO&#xff09;SDO服务数据对象对象字典概述 CANopen 通信对象编号 CANopen报文传输采用 CAN 标准帧格式。 这里的CAN-ID也叫…

ARM(Day 2)

一、作业 &#xff08;1&#xff09;汇编代码 .text.globl _start_start:mov r0, #0x5mov r1, #0x10比较r0,r1 是否相等 相等执行stop 不相等执行下一步比较&#xff08; r0 > r1 ?&#xff09;cmp r0, r1 比较实际在做减法 (YES NO )subhi r0, r0, r1 r0 > r1 …

浅谈Spring Cloud:OpenFeign

RestTemplate 方式调用存在的问题&#xff1a; String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class); 这是通过URL地址来访问的。但是&#xff1a; 代码可读性差&#xff0c;编程体验不统一参数复…

NCNN 源码(1)-模型加载-数据预处理-模型推理

参考 ncnn 第一个版本的代码。 0 整体流程 demo&#xff1a;squeezenet ncnn 自带的一个经典 demo&#xff1a;squeezenet 的代码: // 网络加载 ncnn::Net squeezenet; squeezenet.load_param("squeezenet_v1.1.param"); squeezenet.load_model("squeezenet_…

对象关系映射ORM

目录 ORM【重要】 1、 什么是ORM 2、 实体类 3、 ORM改造登录案例 ORM【重要】 1、 什么是ORM 目前使用JDBC完成了CRUD,但是现在是进行CRUD,增删改方法要设计很多参数,查询的方法需要设计集合才能返回. 在实际开发中,我们需要将零散的数据封装到对象处理. ORM (Object Rela…

在曲线图上最值和极值点位置进行适当标注

1、首先生成一组0-100的随机数&#xff0c;组内共有100个数据&#xff1b; yyrandi([0,100],[1,100]); 2、求这组数据的功率谱密度&#xff0c;并绘图&#xff1b; msize(yy,2); xdft fft(yy); % 计算功率谱密度 psd (1/m) * abs(xdft).^2; x1:m; loglog(x,psd,Linewid…

恶意windows程序

Lab07-01.exe分析&#xff08;DOS攻击&#xff09; 1.当计算机重启后&#xff0c;这个程序如何确保它继续运行(达到持久化驻留)? 创建Malservice服务实现持久化 先分析sub_401040桉函数 尝试获取名为HGL345互斥量句柄&#xff0c;如果不存在则直接结束流程&#xff1b;如果存…

【设计模式】万字详解:深入掌握五大基础行为模式

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 【设计模式】&#xf…

主语部分、谓语部分、限定动词 (谓语动词) 和非限定动词 (非谓语动词)

主语部分、谓语部分、限定动词 {谓语动词} 和非限定动词 {非谓语动词} 1. 主语部分 (subject)1.1. Forms of the subject 2. 谓语部分 (predicate)2.1. Cambridge Dictionary2.2. Longman Dictionary of Contemporary English2.3. 谓语部分和谓语动词2.4. Traditional grammar …

240922-Ollama使用Embedding实现RAG

A. 最终效果 B. 文本分块代码 #%% from PyPDF2 import PdfReader from langchain.text_splitter import CharacterTextSplitterpdf_path 2023-LiuGuokai-Meas.pdf pdf_reader PdfReader(pdf_path) text "" for page in pdf_reader.pages:text page.extract_text…