高级软件工程-复习
高级软件工程复习
坐标国科大,下面是老师说的考试重点。
- Ruby编程语言的一些特征需要了解
- 要能读得懂Ruby程序
- Git的基本命令操作知道
- Rails的MVC工作机理需要清楚,Model, Controller, View各司什么职责明白
- BDD的User Story需要会写,SMART要求能理解
- TDD的Rspec读得懂,会补充
- 重点:最常用的几种设计模式知道、理解、会用;SOLID原则是什么?什么情况下是违背的。
SOA(Service Oriented Architecture)面向服务架构:所有组件都设计为服务、且服务可以组合的软件架构。
**特点:**一个服务直接访问另外一个服务的数据时可能出现不稳定。
软件质量(Quality Assurance)
软件质量保障(QA):确保软件开发的质量,改进优化过程,提高效率。
一般通过测试来保证软件质量
这个题的24,怎么选
提高开发者生产力:简洁性、合成、重用和工具
4种技术
- 通过表达的简洁化:语法更短更易读、抽象级别提高(高级程序设计语言、自动内存管理、动态脚本语言:计算反射和元编程)
- 程序合成(Program Synthesis):生成代码以适应情境和删除条件测试
- 重用 (Reuse):重用旧代码vs.编写新代码
- 重用技术(按历史顺序排列)
- 过程和函数-procedure, function
- 标准化库(重用单一任务)-standard library
- 面向对象编程-Object Oriented Porgramming: 重用和管理任务集合
- 设计模式-Design Pattern: 实现可以不同, 但重用的是通用策略
- 重用技术(按历史顺序排列)
- 自动化和工具 (Automation & Tools)
DRY-Don’t Repeat Yourself
在一个系统中,每一知识必须有一个单一的、明确的、权威的表示。
P&D软件过程模型
P&D: 计划与文档
- 编码前,项目经理制定计划
- 撰写计划各阶段的详细文档
- 根据计划来度量进展
- 项目的变更必须反映在文档中,并可能反映在计划中
瀑布模型 | 螺旋模型 | Rational统一软件开发过程,RUP |
---|---|---|
![]() | ![]() | ![]() |
缺点:当客户看到开发出来的产品时,通常想要对软件产品进行改变,这时就会遇到麻烦。 | ![]() | ![]() |
— | ![]() | ![]() |
P&D需要大量的文件和计划,并依赖于经验丰富的经理。
Aglie敏捷开发
个体与交互 vs过程 & 工具
工作软件vs全面文档化
客户协作vs合同谈判
响应变更vs遵从计划
敏捷强调测试驱动开发(TDD)来减少错误,记录用户故事来验证客户需求,用速度来度量进展。
设计模式:捕捉/刻画重复出现问题的常见结构化解决方法。
Client/Server: 架构级设计模式,Web是C/S架构,面向请求/应答方式。
Ruby/Rails框架中,Rails复杂管理防止篡改cookie
三层架构:表示层-逻辑(应用)层-持久层
MVC(Model-View-Controller)
提倡痩视图和控制器、不要在视图中添加功能代码。
在MVC中,用户可以进行的每个交互都是由控制器中的动作来处理的
Ruby语言中的方法(method)处理这种交互。
Git
使用版本控制系统
命令 | 说明 |
---|---|
checkout | 从库中拷贝一个版本的代码 |
commit | 将代码写回仓库 |
Git基础
命令 | 说明 |
---|---|
git init | 创建仓库 |
git config | 配置仓库 |
git clone <url> | 获取一个仓库 |
![]() | 将变更录入仓库 |
git log | 查看变更历史 |
git push ,git pull | 与远程仓库同步 |
git branch <branch_name> ,git checkout <branch_name> | 创建分支 |
git merge ,git rebase (branch 1) 在branch2上执行 | 合并分支 |
git rest --hard <commit_id> | 回退 |
git revert <commit_id> | 撤销 |
Git配置
Cit配置 | 配置用户信息 | 配置文本编辑器 | 查看配置信息 |
---|---|---|---|
git config --global / -- local | git config --global user.name "John Doe" | git config --global core.editor emacs | git config --list |
— | git config --global user.email johndoe@example.com | — | — |
Rails
Rails是使用Ruby语言建立的流行编程框架。
Ruby:现代动态脚本编程语言。
面向对象
,函数式
,自动内存管理
,动态类型
,mix-in
,闭包用于重用、元编程、程序合成
Rails遵守:(依赖于Ruby的语言特性:自省和元编程
,闭包
,模块(混合)
)
- 约定优于配置:命名遵守某些约定、不需要配置文件
- DRY:提取公共功能的开发原则:“在一个系统中,每一知识必须有一个单一的、明确的、权威的表示。”
CRUD: create, read, update, delete
Ruby->Database
从ActiveRecord::Base
子类化。–将模型连接到数据库+CRUD
ActiveRecord
上create
方法是new
方法与save
方法的组合。
save!
操作失败会抛出异常。
Rails解决方案: 开发、测试和生产环境都有自己的数据库。
**迁移:**用脚本描述更改,可以跨数据库类型进行安全快速移植。
# 创建迁移
rails generate migration CreateMovies# 将迁移应用于开发环境
rake db:migrate# 完成代码测试后,将迁移应用于生产环境,应用迁移还包括在数据库中记录哪些迁移脚本已经用过了
heroku rake db:migrate# 新模型,创建模型文件
app/models/model.rb# 更新测试数据库schema
rake db:test:prepare# 最终部署
heroku rake db:migrate
Ruby->Routes
Ruby->Views
创建表单—
BDD(行为驱动设计)
BDD:在开发之前和开发期间询问有关应用行为的问题,以减少误解。
需求以用户故事的方法记录。
创建用户故事
SMART故事
SMART | 说明 |
---|---|
Specific | 明确:每个场景可测试 |
Measurable | 可度量:已知合理输入,预期结果存在 |
Achievable | 可达成(理想情况:一个迭代下完成) |
Relevant | 相关性(5个为什么)![]() |
Timeboxed | 时间框(知道何时放弃) |
Cucumber测试
通过Cucumber,用户故事成为验收测试和集成测试用例
# 运行一个功能特征测试
cucumber filename# 运行所有测试
rake cucumber
绿:通过的步骤
黄:还未实现的
红:失败的–然后步骤是蓝色的
目标:使所有步骤通过
显式/隐式、命令式/声明式场景
显式需求:验收测试的一部分
隐式需求:显式需求的逻辑结果、集成测试
- 将电影列表
- 电影按时间顺序还是字母顺序排列?
**命令式场景:**初始用户故事,有许多步骤,指定逻辑顺序,直达所需结果。
如果很多用户故事是命令式,那就不DRY
**声明式场景:**描述状态而不是序列。(更少的步骤)
声明式步骤:描述应用程序应该处于的状态
命令式步骤:将当前状态改变表示为期望状态的步骤序列
TDD(测试驱动开发)
在代码本身之前,先为代码编写单元和功能测试
Rspec测试被称为specs或者例子
respec filename
# 运行测试
单元测试-FIRST原则
FIRST | 说明 |
---|---|
Fast(快) | 快速运行测试子集、因为将一直运行它们 |
Independent(独立) | 没有测试依赖于其他测试、远程可以以任何顺序运行任何子集 |
Repeatable(可重复) | 运行N次,得到相同的结果(以帮助隔离bug并启动自动化) |
Self-checking(自检查) | 测试可以自动检测是否通过 |
Timely(及时) | 与被测试的代码同时编写(使用TDD需要先编写测试) |
TDD周期:红-绿-重构
以“始终拥有工作代码”为目标。考虑代码应该完成的一件事(功能)
红:在失败的测试中记录/步骤这种想法
绿:编写尽可能简单的代码使测试通过
重构:与其他测试一起来提炼共性、改进代码。
继续完成代码应该做的下一件事。
接缝(Seam)
接缝:可以唉不改变源代码的情况下改变应用程序行为的位置。
对测试有用:将某些代码的行为与其所依赖的其他代码隔离开来。
每个seam仅为测试中地某些特定行为提供足够地支撑。
Seam概念 | 说明 |
---|---|
存根(stub) | 类似should_receive ,但没有期望;add_return 可选地控制返回值. |
模拟(mock) | “特技替身”对象,常用于行为验证(让某方法被调用)、字其上为单个方法创建存根. |
RSpec
装置/工厂
从何获取真实对象?
装置(Fixture) | 工厂(Factory) | |
---|---|---|
说明 | 静态地将一些已知数据预加载到数据库表中 | 只创建每次测试所需要的内容动态创建 |
需求 | 每次测试之前,db需要擦除和重新载入 | 根据测试需要,设置helper 来快速创建带有默认属性的对象 |
赞成的原因 | 真正的静态数据(e.g.永远不变的配置线性),恒容易在一个地方看到所有测试数据 | 保持测试的独立性:不受它们不关心对象的影响 |
反对的原因 | 可能会引入对装置数据的依赖 | 复杂的关系可能很难建立(但可能表明代码耦合过紧) |
测试覆盖、单元测试、集成测试
覆盖度量
覆盖度量 | 说明 |
---|---|
S0 | 方法覆盖 |
S1 | 调用覆盖 |
C0 | 语句覆盖 |
C1 | 分支覆盖 |
C1+ | 判定覆盖:条件中的美国个子表达式 |
C2 | 路径覆盖(苦难,价值如何有很大分歧) |
测试与调试
变异测试:在代码中引入故意的错误、是否会有一些测试失败?
模糊测试:1万只猴子向你的代码扔随机输入:1.发现了MS~20% bug,崩溃了~25%的Unix应用工具2.以应用程序不应该被使用的方式来测试它
DU-覆盖率:每一对<define x/use x>
执行了吗?
黑盒测试/集成测试:不依赖于对应用程序结构的理解
白盒测试
代码坏味-SOFA
通过捕获哪些白哦是代码坏味的症状。
- Short:短的
- One:只做一件事
- Few:不多的参数
- Abstraction:一致的抽象级别
定量:ABC复杂度
Assignment,Brach,Condition赋值+分支+条件,检查ABC复杂度
Agile敏捷开发
P&D
需求抽取:抽取非功能/功能需求
面谈、合作创建场景(快乐/悲伤路径流)、创建用例(UML描述)
需求文档(软件需求规范记录需求)
需求检查:有效性、一致性、完整性、可行性
PD维护
PD中设计模式
将软件需求规范(SRS)分解为问题(任务):
- 对每个任务寻找匹配的设计模式、然后是子问题的某事
- 设计评审将有所帮助
P&D中测试方法
将软件需求规范(SRS)划分为编程单元、开发人员编写单元代码+执行编程测试。
**独立的质量保证(QA)**团队进行更改级别的测试:模块、集成、系统、验收测试。
QA集成选项
自顶向下 | 自底向上 | 三明治集成 |
---|---|---|
从依赖关系图的顶部开始 | 从依赖关系图的底部开始 | 两全其美? |
高级功能(UI)很快就能开始工作 | 没有stub,吧所有的集成在一个模块中 | 通过自底向上集成一些单元来减少stub构造 |
构建许多存根Stub让应用程序“工作” | 不能看到应用程序工作,知道所有的代码和集成完成 | 通过自顶向下集成一些单元,让UI可操作 |
QA团队测试
QA团队进行系统测试:
- 完成的应用程序可以运行
- 测试非功能需求+功能需求
何时系统测试?–看机构的政策
- 测试覆盖级别(C0类似)
- 所有测试要输入好的/坏的数据
最后一步是:用户/客户验收测试(UAT)–确认&验证
性能
可以是验收测试的一部分。PD周期忽略了性能。
版本管理:
SaaS
SaaS:Software as a Service
SaaS通过运行在客户端设备上的瘦程序(浏览器、APP),访问Internet上以服务形式提供的软件(包括数据)。
优点:
- 无需安装、不用担心硬件与OS差异
- 无需担心数据丢失(数据远程存储)
- 便于团队共享和分享数据
- 如果数据很大/频繁更改,在中心站点保存一份副本更简单
- 软件单一拷贝、单一部署硬件/软件环境
SaaS对基础设施的需求:
- 通讯::允许客户与服务互动
- 可扩展性:需求波动满足新服务快速引入、增加用户
- 可靠性:服务和通信7*24h可用
SaaS类的设计模式
GoF:结构化、创建型、行为型
模式不是单独的类或者库,也不是完整的设计(更像是设计的蓝图)
**元模式:**把变与不变的东西分开。
- 针对接口百年城而不是针对实现编程。
- 比起继承,更倾向组合和委托:委托是接口共享、继承是关于实现代码共享。
SOILD面向对象编程原则
动机:将变更的代价最小化。
SOLID原则 | 说明 |
---|---|
单一职责(Single Responsibility, SRP) | 一个类应该有且只有一个改变的理由、每一项职责可能是变化的轴心、对一个轴的更改不应该影响其他轴。 |
开闭(Open/Close, OCP) | 类应该对功能扩展开发、对源代码修改关闭。–抽象工厂模式(提炼构造) |
里氏替换(Liskov substitution) | 子类型可以i替代基类型。 |
依赖注入(injection of dependencied, DIP) | 需求:a依赖于b,但b的接口和实现可以改变,即使功能稳定; 解决方案:“注入”a和b所依赖的抽象接口 |
迪米特(Demeter,DP) | 只和朋友交谈而不是陌生人。1.用委托替换直接方法调用,2.将遍历与计算分离(Visitor模式),3.在不了解实现细节的情况下只关注重要事件 (Observer模式) |
观察者模式Observer
实体Observer想hi到何时某些事情发生在实体Subject上。
非功能需求
服务水平目标(SLO,service level oeject)
考试回忆版
哈哈终于考完了,我为期1个多月的考试周终于宣告结束了。
考之前,一直在想,老师会不会根据给的题库然后做一些变动。但实际情况是:完全没有.
让我们说:谢谢老师!
此外,虽然老师给了部分的重点,但是还是和我自己复习的有一些出入,比如,我以为概念应该会考SOLID或者BDD/TDD,像单元测试的SMART,TDD周期的红-绿-重构这些。但其实都没考,反倒是后面出了一个SaaS的概念,但是考前就看了两眼,觉得不会考…
再一个有出入的就是,我以为会考点读Ruby程序给输出的题,毕竟简单,但也完全没有()
所以大家复习的时候,建议还是复习的全面一点,基本上给的题库要全部过一遍,然后根据老师给出重点,再过一遍重要的。因为如果万一没有命中的话,至少之前做过一遍,还是会有印象,至少不会是0分(?)
当然,要是有时间能够全面复习,那就太好辣!
很高兴你能看到这里~
获取考试试题,请到个人博客中找。就不放CSDN了~
Schwertlilien.blog<--------
相关文章:
高级软件工程-复习
高级软件工程复习 坐标国科大,下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚,Model, Controller, View各司什么职责明白BDD的User Story需要会写,SMART要求能…...
Java常用设计模式
单例模式 单例模式就是: 在程序运行期间, 某些类有且最多只有一个实例对象 饿汉模式(静态常量) 饥饿模式又称为饿汉模式, 指的是JVM在加载类的时候就完成类对象的创建 //饿汉式(静态常量) public class Singleton1 {//构造器私有化,外部不能newprivate Singleto…...
29.Java 集合线程安全(ArrayList 类线程安全问题处理方案、HashSet 、HashMap 类线程安全问题处理方案)
一、ArrayList 类线程安全问题 1、概述 ArrayList 类存在线程安全问题 2、异常演示 ListNoSafeTest.java,演示 ArrayList 类线程安全问题 package com.my.listsafe;import java.util.ArrayList; import java.util.UUID;public class ListNoSafeTest {public st…...
解锁企业数字化转型新力量:OpenCoze(开源扣子)
在当今数字化浪潮席卷之下,企业对于高效管理和协同运作的需求愈发迫切,而开源技术正逐渐成为众多企业破局的关键利器。今天,想给大家介绍一款极具潜力的开源项目 ——OpenCoze,中文名称 “开源扣子”。 一、OpenCoze 是什么&…...
Docker 使用Dockerfile创建镜像
创建并且生成镜像 在当前目录下创建一个名为Dockerfile文件 vi Dockerfile填入下面配置 # 使用 CentOS 作为基础镜像 FROM centos:7# 设置工作目录 WORKDIR /app# 复制项目文件到容器中 COPY bin/ /app/bin/ COPY config/ /app/config/ COPY lib/ /app/lib/ COPY plugin/ /a…...
linux网络 | https前置知识 | 数据加密与解密、数据摘要
前言:本节内容讲述https的相关内容。 https博主会着重讲解https如何让一个请求和一个响应能够安全的进行交互。 https博主将用两篇文章进行讲解。本篇是两篇中第一篇。会把http的安全问题引出来, 然后说一下https的基本解决方法。 下面废话不多说, 开始我…...
01 Oracle自学环境搭建(Windows系统)
1 Oracle12C安装 1.1 下载 官网地址:https://www.oracle.com/ 进入官网→Resource→Customer Downloads 如果没有登录,会提示登录后后才能下载 选择适合自己的版本(我电脑是Windows系统 64位) 选择需要的安装包进行下载 双击下载…...
负载均衡原理及算法
什么是负载均衡? 负载均衡 指的是将用户请求分摊到不同的服务器上处理,以提高系统整体的并发处理能力以及可靠性。负载均衡服务可以有由专门的软件或者硬件来完成,一般情况下,硬件的性能更好,软件的价格更便宜&#x…...
STM32第5章、IWDG
一、简介 IWDG:全称是Independent watchdog,即独立看门狗。本质上是一个能产生系统复位信号的计数器。 特性: 是一个递减计数器。 时钟信号由独立的RC振荡器提供,可在待机和停止模式下运行。 看门狗被激活后,当递减计…...
[python3]Uvicorn库
Uvicorn 是一个用于运行 ASGI(Asynchronous Server Gateway Interface)应用程序的轻量级服务器。ASGI 是 Python Web 应用程序接口的一种扩展,它不仅支持传统的同步 Web 请求处理,还支持异步请求处理、WebSockets 以及 HTTP/2。 h…...
openEuler 22.04使用yum源最快速度部署k8s 1.20集群
本文目的 openEuler的官方源里有kubernetes 1.20,使用yum源安装是最快部署一个k8s集群的办法 硬件环境 主机名系统架构ipmasteropenEuler release 22.03 (LTS-SP2)arm192.168.3.11edgeopenEuler release 22.03 (LTS-SP2)arm192.168.3.12deviceopenEuler release 22.…...
【深度学习】数据预处理
为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。 在Python中常用的数据分析工具中,我们通常使用pandas软件包。 像庞大的Python生态系统中的许多其他扩展包一样,pan…...
Oracle:ORA-00904: “10“: 标识符无效报错详解
1.报错Oracle语句如下 SELECT YK_CKGY.ID,YK_CKGY.DJH,YK_CKGY.BLRQ,YK_CKGY.ZBRQ,YK_CKGY.SHRQ,YK_CKGY.YT,YK_CKGY.ZDR,YK_CKGY.SHR,YK_CKGY.BZ,YK_CKGY.JZRQ,YK_CKGY.ZT,YK_CKGY.CKLX,(case YK_CKGY.CKLXwhen 09 then药房调借when 02 then科室退药when 03 then损耗出库when…...
CentOS 7 下 Nginx 的详细安装与配置
1、安装方式 1.1、通过编译方式安装 下载Nginx1.16.1的安装包 https://nginx.org/download/nginx-1.16.1.tar.gz 下载后上传至/home目录下。 1.2、通过yum方式安装 这种方式安装更简单。 2、通过编译源码包安装Nginx 2.1、安装必要依赖 sudo yum -y install gcc gcc-c sudo…...
Vue.js:现代前端开发的灵活框架
大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...
VideoPlayer插件的功能和用法
文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节3. 示例代码4. 内容总结我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用的功能,不过Flutter官方…...
GPT-SoVITS学习01
1.什么是TTS TTS(Text-To-Speech)这是一种文字转语音的语音合成。类似的还有SVC(歌声转换)、SVS(歌声合成)等。 2.配置要求 GPT-SoVITS对电脑配置有较高的要求。 训练:对于Windows电脑&#…...
C语言程序环境和预处理详解
本章重点: 程序的翻译环境 程序的执行环境 详解:C语言程序的编译链接 预定义符号介绍 预处理指令 #define 宏和函数的对比 预处理操作符#和##的介绍 命令定义 预处理指令 #include 预处理指令 #undef 条件编译 程序的翻译环境和执行环…...
DBeaver执行本地的sql语句文件避免直接在客户端运行卡顿
直接在客户端运行 SQL 语句和通过加载本地文件执行 SQL 语句可能会出现不同的性能表现,原因可能包括以下几点: 客户端资源使用: 当你在客户端界面直接输入和执行 SQL 语句时,客户端可能会消耗资源来维护用户界面、语法高亮、自动完…...
【Linux】5.Linux常见指令以及权限理解(3)
文章目录 3. Linux指令如何把自己的公网IP配置到XShell里面日志3.9 时间相关的指令3.10 Cal指令3.11 find指令:(灰常重要)3.12 grep指令3.13 zip/unzip指令:3.14 tar指令(重要):打包/解包&#…...
QT鼠标、键盘事件
一、鼠标 鼠标点击 mousePressEvent 鼠标释放 mouseReleaseEvent 鼠标移动 mouseMoveEvent 鼠标双击 mouseDoubleClickEvent 鼠标滚轮 QWheelEvent 二、键盘 键盘按下 keyPressEvent 键盘松开keyReleaseEvent 一、鼠标 #include <QMouseEvent> 鼠标点击 mouse…...
LabVIEW启动时Access Violation 0xC0000005错误
问题描述 在启动LabVIEW时,可能出现程序崩溃并提示以下错误:Error 0xC0000005 (Access Violation) Access Violation错误通常是由于权限不足、文件冲突或驱动问题引起的。以下是解决此问题的全面优化方案: 解决步骤 1. 以管理员身份运行…...
WPF中组件之间传递参数的方法研究
在 WPF (Windows Presentation Foundation) 中,组件(或称为控件)之间传递参数的方法有很多种。不同的传递方式适用于不同的应用场景,具体选择取决于应用需求、性能、可维护性等因素。以下是几种常见的传递参数的方法,并…...
本地大模型工具哪家强?对比Ollama、LocalLLM、LM Studio
前言 对于AIGC的初学者, 你一定想尝试在本地搭建一个私有的开源大模型,比如常见的chatglm、llama或者qwen。在实践过程你会发现,每个模型单独配置环境,下载模型文件,还要确保它们互不干扰。这不仅耗时耗力,…...
dify 常见问题总结 2025 持续更新
任何 Dify 问题评论区留言。 问题总结 Q:模型在回答时出现异常情况该如何处理? A: 可以通过记录异常情况并分析其原因来进行处理。通常可以调整提示词、重新训练模型或增加异常处理机制来改进模型的表现。 关键词:提示词、模型、…...
贪心算法笔记
贪心算法笔记 大概内容 贪心就是对于一个问题有很多个步骤,我们在每一个步骤中都选取最优的那一个,最后得出答案。就是在一些函数中可行,但是有些比如二次函数,因为它的转折点不一定最优,就是不可行的。那么如何判断贪心呢?有这么几种 看时间复杂度,一般的就是 O ( n…...
切比雪夫插值
切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。 1. 切比雪夫节点 切比雪夫插值的核心是使用切比雪夫节点作为插值点。切比雪夫节点是切…...
西电-神经网络基础与应用-复习笔记
此为24年秋研究生课程复习笔记 导论 神经网络的研究方法分为 连接主义,生理学派,模拟神经计算。高度的并行、分布性,很强的鲁棒和容错性。便于实现人脑的感知功能(音频图像的识别和处理)。符号主义,心理学派,基于符号…...
【面试题】简单聊一下什么是云原生、什么是k8s、容器,容器与虚机相比优势
云原生(Cloud Native) 定义:云原生是一种构建和运行应用程序的方法,旨在充分利用云计算的优势。它涵盖了一系列技术和理念,包括容器化、微服务架构、自动化部署与管理等。特点:云原生应用程序被设计为可弹性…...
Vue 3 Diff 算法过程及基本实现方式
Vue 3 的 Diff 算法 Vue 3 使用的是一种高效的 DOM Diff 算法,主要用于在虚拟 DOM 树发生变化时,计算最小的操作以更新真实 DOM。相比 Vue 2,Vue 3 的 Diff 算法做了很多优化。 Diff 算法的背景与目的 虚拟 DOM 树的对比:在 Vue…...
EasyCVR视频汇聚平台如何配置webrtc播放地址?
EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持多协议接入,能将接入到视频流转码为多格式进行分发,包括RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、W…...
PowerApps助力PowerBI实现数据写回
原文发布日期: 2019-08-01 06:03:50 0000 注:本文旨在介绍Power BI如何利用PowerApps实现用户在前端对数据源进行增删查改,关于此,你也可以在Google上找到更详细但较零散的资料 正文 在SSAS多维数据集中,开发者可以给数据开启&q…...
数据结构:DisjointSet
Disjoint Sets意思是一系列没有重复元素的集合。一种常见的实现叫做,Disjoint-set Forest可以以接近常数的时间复杂度查询元素所属集合,用来确定两个元素是否同属一个集合等,是效率最高的常见数据结构之一。 Wiki链接:https://en…...
React 元素渲染
React 元素渲染 React 是一个用于构建用户界面的 JavaScript 库,它允许开发人员创建大型应用程序,这些应用程序可以随着时间的推移而高效地更新和渲染。React 的核心概念之一是元素渲染,它描述了如何将 JavaScript 对象转换为 DOM࿰…...
【Leetcode 每日一题】3270. 求出数字答案
问题背景 给你三个 正 整数 n u m 1 num_1 num1, n u m 2 num_2 num2 和 n u m 3 num_3 num3。 数字 n u m 1 num_1 num1, n u m 2 num_2 num2 和 n u m 3 num_3 num3 的数字答案 k e y key key 是一个四位数,定义如下&…...
eNSP之家----ACL实验入门实例详解(Access Control List访问控制列表)(重要重要重要的事说三遍)
ACL实验(Access Control List访问控制列表)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机。 准备工作 在eNSP里面部署设备&a…...
【git】-2 分支管理
目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 【git】-初始gi…...
硬件设计-齐纳管
目录 摘要 详情 齐纳管的工作电流、 摘要 齐纳管(Zener Diode)是一种特殊的二极管,它能够在特定的反向电压下保持电流稳定。正常情况下,二极管只允许正向电流通过,而阻止反向电流流过。而齐纳管在一定的反向电压下可…...
Github出现复杂问题 无法合并 分支冲突太多 如何复原
目录 问题再现 解决思路 当然我所指的是在 main 分支开一个新的分支 删除本地文件夹 重新克隆 开一个新分支 切换分支 下载远程分支 文件覆盖 合并到主分支 问题再现 太复杂了 无法更改 编译器现状 全部崩溃了 无法更改 即使创建一个新的分支也无济于…...
《分布式光纤传感:架设于桥梁监测领域的 “智慧光网” 》
桥梁作为交通基础设施的重要组成部分,其结构健康状况直接关系到交通运输的安全和畅通。随着桥梁建设规模的不断扩大和服役年限的增长,桥梁结构的安全隐患日益凸显,传统的监测方法已难以满足对桥梁结构健康实时、全面、准确监测的需求。分布式…...
java_抽象类最佳实践-模板设计模式
基本介绍 模板设计模式可解决的问题 最佳实践 Template类 package com.hspedu.abstract_; abstract public class Template { //抽象类-模板设计模式public abstract void job();//抽象方法public void calculateTime() {//实现方法,调用 job 方法//得到开始的时间…...
linux网络 | http结尾、理解长连接短链接与cookie
前言:本节是http章节的最后一部分,主要解释一些小概念。讲解到了HTTP的方法,表单, 重定向等等。 现在废话不多说, 开始我们的学习吧。 ps:本节内容都是概念, 知道就行, 友友们放心观…...
dtdug汇编指令练习
r 通用寄存器 m 代表内存 imm 代表立即数 r8 代表8位通用寄存器 m8 代表8位内存 imm8 代表8位立即数 mov指令练习 MOV 的语法: mov 目标操作数,源操作数 作用:拷贝源操作数到目标操作数 1、源操作数可以是立即数、通用寄存器、段寄存器、或者内存单元. 2、目标操作数…...
Windows自动化Python pyautogui RPA操作
依赖包 import time import pyautogui import pyperclip import os import psutil from pywinauto.application import Application睡眠: pyautogui.sleep(1)鼠标事件: pyautogui.moveTo(100, 100, duration0.25) pyautogui.click(100, 100, duration0.…...
Ollama私有化部署大语言模型LLM
目录 一、Ollama介绍 二、安装Ollama 1、标准安装 2、国内加速 三、升级Ollama版本 四、使用Ollama 1、启动ollama服务 systemctl start ollama.service ollama serve 2、使用ollama命令 ollama run 运行模型 ollama ps 查看正在运行的模型 ollama list 查看(本地)…...
ubuntu/kali安装c-jwt-cracker
1.下载安装包 可以去GitHub下载解压,我这直接在kali克隆下来了。(网络不好可能克隆不下来) git clone https://github.com/brendan-rius/c-jwt-cracker.git 2.如果下载的压缩包就需要进行解压,克隆的直接进入目录就好了。 unzi…...
MySql按年月日自动创建分区存储过程
-- 创建存储过程【通过数据库和表名】建立【partition_number】get分区,分区间隔为【gaps】 -- datasource 数据库名称 -- table_name 数据库表名 -- partition_number 新建分区的数量 -- partition_type 分区类型(0-按天分区,1-按月分区&…...
Spring配置文件中:密码明文改为密文处理方式(通用方法)
目录 一、背景 二、思路 A) 普通方式 B) 适合bootstrap.properties方式 三、示例 A) 普通方式(连接Redis集群) A) 普通方式(连接RocketMQ) B) 适合bootstrap.properties方式 四、总结 一、背景 SpringBoot和Sprin…...
树的模拟实现
一.链式前向星 所谓链式前向星,就是用链表的方式实现树。其中的链表是用数组模拟实现的链表。 首先我们需要创建一个足够大的数组h,作为所有结点的哨兵位。创建两个足够大的数组e和ne,一个作为数据域,一个作为指针域。创建一个变…...
计算机图形学【直线和圆的生成算法】
在计算机图形学中,光栅化是将几何图元转换成一个光栅图像(像素或点)在屏幕上输出的过程。光栅化可实现图形变为二维图像,其目的是将连续的几何图形转换为离散的像素点。光栅化算法的基本原理包括两个主要步骤:首先&…...