闪光桐人の实习日记(2023年2月27日-3月3日)

news2024/9/28 13:29:00

前往闪闪の小窝以获得更好的阅读评论体验

文章目录

  • 2023年3月2日(测试流程)
    • 为什么
    • 是什么
    • 如何进行
  • 2023年3月1日(消息队列MQ)
    • 什么是消息队列
    • 为什么要使用消息队列
    • 消息队列(kafka)的优势
    • 关键信息
    • SpringBoot整合Kafka
  • 2023年2月28日(Git入门)
    • 什么是版本控制
    • Git简介
    • Git安装配置
    • Git设置
    • 基础操作
    • 分支概述
    • 合并
    • 版本重置
    • 标签管理
    • 结合中央仓库的操作
    • IDEA集成Git
    • 开发版本流程
  • 2023年2月27日
    • 何为异常
    • 异常抛出的方式
    • 如何正确捕获异常
    • 自定义异常类
    • 什么是log4j
      • 组成
      • 日志级别

前往闪闪の小窝以获得更好的阅读评论体验

2023年3月2日(测试流程)

为什么

不测试的风险
体验差、质量差、问题多、财产损失、生命安全等

测试重点
性能、易用性、兼容性、功能性、可靠性

是什么

1983年IEEE定义,人工操作或软件自动运行的方式来检验是否满足需求或弄清预期结果与实际结果之间的差别

目的

  • 检验产品是否符合用户需求
  • 发现程序代码错误
  • 发现程序业务逻辑错误
  • 提高用户的体验

软件调试与测试

软件调试:开发时发现错误后消除错误的过程
软件测试:主要目的是寻找缺陷(不包括修复),调试必须由开发人员自己完成,测试不一定

常见问题

  • 业务逻辑错误:比如新增保存失败
  • 展示数据未同步:比如数据展示不正确
  • 兼容性问题:比如WEB兼容、网络兼容
  • 性能问题:比如页面加载慢、内存泄漏
  • 安全问题:比如安全漏洞、服务器安全

测试阶段
例图

冒烟测试
开发提测后,测试部门进行冒烟测试,验证系统重要核心业务功能通过后,进入详细系统测试阶段

回归测试

修改bug,新增功能
提交bug验证
……

各阶段定义

  • 单元测试,软件最小单元测试,开发小组白盒测试,测试单元是否符合设计
  • 集成测试,单元测试系统测试开发小组黑白测试验证设计和需求
  • 系统测试,粒度最大,测试小组黑盒测试测试是否符合需求规格说明书
  • 验收测试,与系统测试相似,测试对象不同

如何进行

软件测试流程
例图

2023年3月1日(消息队列MQ)

什么是消息队列

消息+队列

消息的流向

消息生产者系统 =消息=> 消息队列 =消息=> 消息消费者系统

主流消息队列功能对比

对比

为什么要使用消息队列

平时不用消息队列的时候,消息是无序的

痛点

  • 消息交互频繁
  • 单线程处理消息
  • 多目标维护累
  • 等待返回结果

消息队列(kafka)的优势

  1. 有序无序
    例图1

  2. 数据处理快慢
    例图2

  3. 依赖关系区别
    例图3

  4. 无需等待
    例图4

  5. 耦合度低
    例图5

优势

  1. 利用队列处理的模式,能解决需要数据有序处理的场景
  2. 利用流式处理实现单线程处理相同数据时计算复杂导致处理过慢
  3. 利用异步处理的形式解决对后续程序的依赖以及等待响应的痛苦

特点

  • 易扩展
  • 可靠性,持久性强
  • 容错性高,支持高并发

适用场景

  • 多目标
    当一条消息要被多个地方使用或多个地方生成时

  • 队列形式
    当消息处理的过程需要队列的先进先出时

  • 不需要结果
    当消息只需要通知对方,不需要对方的返回结果时

不适用场景

  • 实时性要求高,需要即使响应结果时
  • 需要确定后续程序数据处理正常时
  • 一致性要求高,需要确保多套程序运行结果一致
  • 系统结构简单,无需增加消息队列增加系统复杂度

如何保证消息不丢失

  1. 生产端通过带有回调的send方法来处理调用失败的
  2. KAFKA配置acks = all确保写入分区副本完成确认提交
  3. 消费端通过配置手动提交偏移量,确保偏移量正确提交

关键信息

主题
主题是⼀个逻辑的概念,进行数据分类

消息
消费,是通信的基本单位,每个生产者可以向一个主题发布一些消息

分区

  • 主题->分区->消息
  • 避免大文件
  • 数据不会重复

偏移量

  • offset是指某一个分区的偏移量
  • topic、partition、offset这三个唯一确定一条消息

生产者
生产者Producer将消息发布到指定的主题Topic中,同时Producer也能决定将此条消息归属于哪个分区Partition

消费者
消费者Consumer通过订阅topic消费其发布的消息,也可以指定分区Partition消费

消费组
每个消费者Consumer属于一个消费主Consumer Group

  • 一个消费组可以有多个消费主题
  • 一个消费主题可以被多个消费组消费
  • 每个消费组中的每个消费主题只会被一个消费者来消费

SpringBoot整合Kafka

教程1
教程2

2023年2月28日(Git入门)

什么是版本控制

版本管理的特点:

  • 记录每次修改描述
  • 历史文档备份
  • 可恢复到之前的版本

流程:

  • 按天创建文件夹
  • 在文件夹里编写文档
  • 记录每次修改的日志文件
  • changelog文件

本地版本控制系统
RCS

集中化版本控制系统
SVN等

本地的无法满足集中协作的需求,因而有了集中化版本控制系统

优点

  • 集中管理的服务器
  • 协同工作
    缺点
  • 必须与服务端交互
  • 单点故障风险

分布式版本控制系统
Git,Bazzer

特点

  • 完整的镜像
  • 独立工作

Git简介

  • 2005年由大名鼎鼎的Linus创作,用于管理Linux内核开发
  • 免费开源,应用于大部分的开源社区,比如GitHub、GitLab

分布式版本控制系统
几乎所有的操作都可本地执行

强大的分支模型
记录快照而非差异(快照效率高)
所有数据通过计算的校验和保证数据完整性

Git安装配置

Git设置

git config的配置等级
系统(–system)/etc/gitconfig
用户(–global)~/.gitconfig、~/.config/git/config
仓库(–local)~.git/config

下一个级别覆盖上一级别的配置

查看所有配置和所在文件位置
git config --list --show-origin

初始设置
用户和邮箱

git config --global user.name "Your Name"
git config --global user.email "name@example.com"

文本编辑器

git config --global core.editor "code --wait"

基础操作

初始化本地仓库

git init

添加文件到暂存区

git add <path>

提交修改

git commit [-a] -m "msg"

加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 UNtracked !什么是UNtracked ?就是没有跟踪,不在git的代码仓里面,你更改了什么是不会提示你更改的,你提交也是不会提交到远程仓库的。

分支提交日志

git log

查看仓库状态

git status

移动文件

git mv <src> <dest>

删除文件

git rm <path>

显示文件每行最后修改的版本和作者

git blame <file>

文件状态

文件状态

分支概述

分配完任务的时候,一个分支做这个另外一个分支做别的,最终就是任务都完成了

分支创建/删除

仅创建分支

git branch <new branch>

创建并切换分支

git checkout -b <new branch>

删除分支

git branch -d <branch name>

创建并切换分支

git switch -c <new branch>

分支比较

git diff <branch name>

合并

详细
分支合并-冲突
删去冲突的部分留下需要的版本内容

merge 合并
合并结构

rebase 变基
例图

只对尚未推送或分享给别人的本地修改执行变基操作清理历史

不对已推送至别处的提交执行变基操作

版本重置

三棵树
工作目录(Working Directory)
暂存区(Index)
仓库目录(HEAD)

例图

提交后发现还有其他未添加提交时的后悔药

git commit --amend

标签管理

创建当前分支标签

git tag <tagname>

对提交点打上标签

git tag <tagname> <commitID>

查看标签记录

git tag -l

查看标签详情

git show <tagname>

结合中央仓库的操作

克隆仓库

git clone <remote-url>

获取更新但未合并

git fetch [origin]

拉取更新并合并

git pull [origin]

推送到远程仓库

git push [origin]

IDEA集成Git

开发版本流程

2023年2月27日

何为异常

什么是异常:程序执行过程中的不正常情况。
异常的作用:增强程序的 健壮性。

异常抛出的方式

  • 方法体上写throws Exception
  • 方法内写throw new 自定义的异常类
  • try/catch 语句

如何正确捕获异常

使用try 和 catch关键字即可在Java中捕捉异常代码

例:

   try{
      /*正常运行的代码*/
   }catch(ExceptionName e)
   {
      //Catch代码块
   }

自定义异常类

public class MyException extends RuntimeException {
	
	private Integer code;

	public Integer getCode() {
		return code;
	}

	public void setCode(Integer code) {
		this.code = code;
	}
	
	public MyException(Integer code, String message) {
		super(message);
		this.code = code;
	}
	
	public MyException(StateEnums enums) {
		super(enums.getMessage());
		this.code = enums.getCode();
	}
	
	public MyException(StateEnums enums, String message) {
		super(message);
		this.code = enums.getCode();
	}

}

什么是log4j

组成

Log4J 主要由 Loggers (日志记录器)、Appenders(输出端)和 Layout(日志格式化器)组成。其中 Loggers 控制日志的输出级别与日志是否输出;Appenders 指定日志的输出方式(输出到控制台、文件等);Layout 控制日志信息的输出格式。

日志级别

Log4J 在 org.apache.log4j.Level 类中定义了OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL七种日志级别:

  • OFF 最高日志级别,关闭左右日志
  • FATAL 将会导致应用程序退出的错误
  • ERROR 发生错误事件,但仍不影响系统的继续运行
  • WARN 警告,即潜在的错误情形
  • INFO 一般和在粗粒度级别上,强调应用程序的运行全程
  • DEBUG 一般用于细粒度级别上,对调试应用程序非常有帮助
  • ALL 最低等级,打开所有日志记录

注:一般只使用4个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG

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

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

相关文章

LeetCode题目笔记——448. 找到所有数组中消失的数字

文章目录题目描述题目链接题目难度——简单方法一&#xff1a;使用额外空间&#xff0c;字典代码/Python代码/C方法二&#xff1a;进阶&#xff0c;原地修改代码/C代码/C总结题目描述 这好像是一到经典的面试题 给你一个含 n 个整数的数组 nums &#xff0c;其中 nums[i] 在区间…

遮挡检测--基于角度的遮挡检测方法

文章目录1基于角度的遮挡检测方法2遮挡检测遍历方法2.1方法1--自适应径向扫描方法2.2方法2--螺旋扫描法参考1基于角度的遮挡检测方法 在基于角度的方法中&#xff0c;通过依次分析DSM中沿径向方向的投影光线的角度来识别遮挡。定义α\alphaα角&#xff1a;DSM三维点与相机中心…

解决Windows虚拟机启动资源占用过多

由于虚拟机中的Windows一般是指定版本的&#xff0c;创建后&#xff0c;其自身仍在不断自动更新&#xff0c;因此这里我们禁用两个服务&#xff0c;以后启动Windows之后就不会占用太多资源了&#xff1a; 禁用setuphost.exe禁用.net runtime optimization 文章目录1. 禁用setu…

分布式定时任务-学习笔记

1 发展历程 1.1 Linux命令-CronJob 只能控制单台机器 1.2 任务调度-Quartz 单任务极致控制 1.3 分布式定时任务 1.3.1 定时任务 系统为了自动完成特定任务&#xff0c;实时、延时、周期性完成任务调度的过程 1.3.2 分布式定时任务 把分散的、可靠性差的定时任务纳入统一的平…

VScode下 ESP32 下载程序

ESP32-S3 下载方式可以通过UART0 下载,USB 下载&#xff0c;JTAG下载,还可以使用WIFI进行远程OTA升级程序。插件底栏按键介绍&#xff1a;①选择串口端口号&#xff0c;如COM3&#xff1b; ②选择芯片型号&#xff1b; ③工程idf设置&#xff0c;相当于menuconfig&#xff1b; …

Redis缓存雪崩、缓存击穿、缓存穿透

用户的数据一般都是存储于数据库&#xff0c;数据库的数据是落在磁盘上的&#xff0c;磁盘的读写速度可以说是计算机里最慢的硬件了。 当用户的请求&#xff0c;都访问数据库的话&#xff0c;请求数量一上来&#xff0c;数据库很容易就奔溃的了&#xff0c;所以为了避免用户直…

【Java】Spring Boot 日志文件

文章目录SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志4. 日志级别4.1 日志级别有什么用&#xff1f;4.2 日志级别的分类与使用5. 日志持久化6. 更简单的日志输出--lombok6.1 添加 lombok 依赖6.2 输出日…

操作系统真相还原——第6章内存管理系统

第八章 内存管理系统 makefile 编译整个项目&#xff0c;如果改变局部关系&#xff0c;只靠人工难以维护文件间的依赖关系&#xff0c;所以通过make程序进行处理 makefile文件是make程序的搭档&#xff1a;发现某个文件更新后&#xff0c;只编译该文件和受该文件影响的相关文…

为什么95%的Java程序员人,都是用不好Synchronized?

Synchronized锁优化 jdk1.6对锁的实现引入了大量的优化&#xff0c;如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销。 锁主要存在四中状态&#xff0c;依次是&#xff1a;无锁-> 偏向锁 -> 轻量级锁 -> 重量级锁&#xff0c;他们…

upload-labs通关详细教程

文章目录文件上传要点1、前端验证绕过做题步骤源码分析2、Content-Type方式绕过做题步骤源码分析3、黑名单绕过做题步骤源码分析4、.htaccess文件绕过简介做题步骤源码分析5、后缀大小写绕过简介做题步骤源码分析6、文件后缀&#xff08;空&#xff09;绕过简介做题步骤源码分析…

CAN工具-VSpy(ValueCAN) - Panel面板(续)

继续上次的Panel面板介绍&#xff01;&#xff01;&#xff01;7. LED 控件LED控件可以用作指示器。在Graphical Panels中选中该控件&#xff0c;在界面右侧侧拉框的Properties中可设置LED控件的通用属性。LED控制属性LED On Color&#xff1a;双击打开标准的Windows颜色选择器…

Vue 3.0 学习笔记之基础知识

系列文章目录 提示&#xff1a;阅读本章之前&#xff0c;请先阅读目录 文章目录系列文章目录前言Vue 3.0 创建与Vue2.0对比的变化关闭语法检查setup 组合式函数compositions前言 Vue 3.0 创建 与Vue2.0对比的变化 关闭语法检查 lintOnSave: false setup 组合式函数compositions…

Git 初体验 (处理 .ssh 文件的相关问题)

目录前沿环境入门教程出现的问题问题 1 &#xff1a;C 盘用户文件中找不到 .ssh 文件问题 2 : 在 clone 远程仓库文件时报错问题3 : 第一次从 Gitee clone 项目时会弹出一个 Git 窗口,要你输入用户和密码获取 credential (可以信任的证明)自我实践总结引用前沿 很早前安装了 G…

二叉树——删除二叉搜索树中的节点

删除二叉搜索树中的节点 链接 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除节点可…

2022_SPL_CMINet

Cross-Stage Multi-Scale Interaction Network for RGB-D Salient Object Detection 用于rgb-d显着目标检测的跨阶段多尺度交互网络 目录 文章目录 前言 一、引言 二、提出的方法 A.概述 感觉有点乱&#xff0c;没看太懂&#xff0c;没关系&#xff0c;我们接着往下看 …

Postman 实现 UI 自动化测试

看到这篇文章的标题&#xff0c;是不是有小伙伴会感到惊讶呢&#xff1f; Postman 不是做接口测试的吗&#xff1f;为什么还能做 UI 自动化测试呢&#xff1f; 其实&#xff0c;只要你了解 Selenium 的运行原理&#xff0c;就可以理解为什么 Postman 也能实现 UI 自动化测试了…

EPICS motor模块

一、概要 1&#xff09; 在EPICS motor模块中的是什么并且它为了什么&#xff1f; 2&#xff09; 支持的电机控制器和模型 3&#xff09;电机记录特性 4&#xff09;配置示例 5&#xff09;反馈 6&#xff09; 重试 7&#xff09; 回程差矫正 8&#xff09;发行 二、术…

Linux上的校验和验证

校验和&#xff08;checksum&#xff09;程序用来从文件中生成相对较小的唯一密钥。我们可以重新计算该密钥&#xff0c;用以检查文件是否发生改变。修改文件可能是有意为之&#xff08;添加新用户会改变密码文件&#xff09;&#xff0c;也可能是无意而为&#xff08;从CD-ROM…

Java:Java仍然处于领先地位?

没有多少编程语言能够自吹自擂并持续流行20多年&#xff0c;但Java就是其中之一。Java应用程序不仅局限于web和移动开发&#xff0c;而且给大数据和人工智能留下了深刻的印象。不用多说&#xff0c;让我们讨论一下Java流行的几个原因!!1.实用性根据JamesGosling的说法&#xff…

QT+OpenGL 面剔除和帧缓冲

QTOpenGL 面剔除和帧缓冲 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 面剔除 OpenGL能够检查所有面向&#xff08;Front Facing&#xff09;观察者的面&#xff0c;并且渲染他们&#xff0c;而丢…