- 博客(112)
- 收藏
- 关注
原创 python 基础语法
可以理解为此前已经被系统或库定义好的变量名称,我们不能再使用# 打印x的类型 使用 f"string"的方式进行格式化输出print(f"x的类型为:{type(x)}")# 或者使用%方式进行拼接print("x的类型为:%s"%type(str))# 或者使用str.format()进行转化print("x的类型为:{}".format(type(x)))
2024-11-29 14:46:36
284
原创 go语言的异常处理机制
errNO int// 定义错误方法如果我们直接打印一个error对象,实际上调用的是error.Error()Go语言异常机制是一种非常重要的特性,它可以帮助我们诊断程序中的错误,并提供一种优雅的方式来处理这些错误。在使用异常时,需要注意不要滥用异常,只在必要的时候抛出异常和捕获异常,提供足够的上下文信息,并且不要忽略任何异常。如果合理使用异常,可以让我们的代码更加健壮、清晰和可读。
2024-07-07 10:38:50
1129
原创 Cookie Session Token 鉴权的区别和原理
令牌。最简单的token组成: uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,以哈希算法压缩成一定长的十六进制字符串)。从本质上讲 JWT 也是一种 token,只不过 JWT 是被大家广泛接受的标准。JWT 即:Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准(RFC 7519)。
2024-07-07 10:37:43
1077
原创 使用Charles mock服务端响应数据
客户端受到接口响应数据的限制,无法继续开发或测试,会极大影响开发测试效率。因此需要使用Charles mock接口数据。
2024-07-07 10:37:03
448
原创 go语言中使用WaitGroup和channel实现处理多线程问题
如果将一个任务分为任意个小任务,并且不关心小任务的执行顺序,并且希望等待全部的小任务执行完成后再去操作后面的逻辑,那我推荐你用sync.WaitGRoup。
2024-07-07 10:36:26
453
原创 计算两种人像之间的相似度
SSIM的计算公式如下:SSIM(x, y) = [l(x, y)*c(x, y)*s(x, y)]^β其中,x和y是两张图像,l(x, y)、c(x, y)和s(x, y)分别衡量了它们在亮度、对比度和结构上的相似性,β是一个调节三个部分相对重要性的参数。一种用于比较两张图像结构相似性的方法。2.使用dlib算法标识68个人脸的特征位,然后根据68个特征点的位置,使用欧式距离算法,计算两张图片同一特征点之间的距离,最终通过不同特征点位赋予不同的比重计算最终的结果(结果越小说明越相似)
2024-07-07 10:31:47
1347
原创 软件测试《用例篇》
的基本思想一致,这类方法在敏捷开发模式下的投入产出比 很高,被广泛应运于测试。这个方法的缺点是难以系统化,并且过度依赖个人能力。错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针 对性地设计测试用例的方法。正交法的目的是为了减少用例数目,用尽量少的用例覆盖输入的两两组合(避免因为判定表中测试用例太多导致无法完成测试)这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。、校验中特殊字符空格的处理。、姓名中的特殊字符?
2024-07-07 10:30:45
727
原创 selenium学习
通过设置隐式等待时间,可以让WebDriver在查找元素或执行操作时等待一定的时间。如果这些方法仍然不能解决问题,那么可能需要对具体的网页和定位情况进行更深入的分析和调试。:尝试使用不同的定位方法来寻找下一页按钮,比如通过ID、CSS选择器、XPath等。:如果其他方法无法定位到下一页按钮,可以尝试使用JavaScript来模拟点击操作。:如果下一页按钮位于iframe中,您需要先切换到该iframe,然后再进行定位。:查看页面源代码,确认下一页按钮的HTML结构和属性,以便更好地定位它。
2023-12-18 20:03:52
1584
1
原创 BeautifulSoup学习
bs解析器从上面的表格可以看出,lxml解析器可以解析HTML和XML文档,并且速度快,容错能力强,所有推荐使用它。
2023-12-12 23:40:59
1094
原创 【redis】redis集群
由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。
2023-06-13 08:49:55
6312
76
原创 【springboot项目开发】文件上传与下载
文件的上传和下载功能,是项目开发过程中比较常见的业务需求,我们在客户端被展现的视觉效果通过如下:在项目前端页面的提示下将本地文件加入到浏览器的具体位置,之后浏览器直接将这个图片回显了
2023-06-07 12:28:46
14024
72
原创 【redis基础】哨兵
简单来说,哨兵就是吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。
2023-06-05 09:29:26
14438
35
原创 【redis】redis主从复制
我们用一句话总结如下:复制(replica)就是主从复制,master以写为主,Slave以读为主。当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。
2023-06-01 10:38:26
12153
92
原创 【redis基础】事务|管道|发布订阅
开启以 MULTI 开始一个事务入队将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面执行由EXEC命令触发事务Pipeline 与原生批量原生批量命令是原子性(如:mset,mget),pipeline是非原子性原生批量命令一次只能执行一种命令,pipeline支持批量执行不同命令原生批命令是服务端实现,而pipeline需要服务端与客户端共同完成Pipeline 与事务对比事务具有原子性,管道不具有原子性。
2023-05-30 10:41:27
10514
40
原创 深入理解hashmap底层实现原理
HashMap是我们用于元素映射使用频率最高的数据结构,它继承自AbstractList类,并且支持一条值为null的Key和无数条value为null的数据,HashMap是线程不安全的6在多线程环境下我们通过使用Collections中的synchronizedMap使其具有线程安全的能力或者直接使ConcurrentHashMap,随着JDK的更新迭代,自jdk1.8以来,HashMap的底层数据结构已经发展为数组+链表+红黑树
2023-05-25 22:23:14
7958
20
原创 redis【stream】:对redis流数据类型的详细介绍
edis在设计之初,就试图在保证自身缓存作用在市场上占优的基础上开发与MQ类似的消息队列,以增强自己在市场中的竞争优势,在redis1.0时,我们使用list就能模拟实现一个简单的消息队列,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)。所以常用来做异步队列使用,将需要延后处理的任务结构体序列化成字符串塞进 Redis 的列表
2023-05-24 17:39:18
7689
8
原创 Java前缀和算法
通俗来讲,前缀和算法就是使用一个新数组来储存原数组中前n-1个元素的和(如果新数组的当前元素的下标为n,计算当前元素的值为原数组中从0到n-1下标数组元素的和
2023-05-24 09:35:23
7056
13
原创 【滑动窗口】滑窗模板,在小小的算法题里滑呀滑呀滑
窗口算法是双指针算法的一种特定化的算法模型,常用于在特定的条件下求最大或者最小的字符串,特定的数组,以及字符序列等相关问题
2023-05-17 23:18:29
4136
20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人