自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 收藏
  • 关注

原创 go并发编程之context

go并发编程之context1.什么是context? context是一种通知手段,例如现在后台有一个监听进程,你要如何在主进程中停止这个监听进程呢?有人会说,select+channel好了嘛,只要主进程往channel里面写数据,后台监听进程读取到channel里面的数据就停止,这其实是一个不错的方法,但是如果后台进程又起了100个后台进程呢?我关闭后台进程的时候,想顺便把后台进程起的子进程一起关掉,select+channel明显就不太行了。 子进程会起子进程,我们很容易就能联想...

2021-03-01 23:54:43 566

原创 github回滚与恢复

1.回滚到某个版本 git reset --hard [你的commit id] git push -f -u origin branch_name2.回滚后想恢复原来到版本 git reflog查看想回滚到版本 git reset --hard [你的commit id] git push -f -u origin branch_name...

2020-10-09 10:49:32 702

原创 linux之四种shell脚本启动方式

1.有那四种? bash xxx.sh./xxx.shsource xxx.sh. xxx.sh2.有什么不同? 1. bash xxx.sh 启动一个bash子进程,运行脚本中的命令 2. ./xxx.sh 以脚本的第一行注释为标准,例如第一行为#!/bin/bash,那么就启动一个bash子进程脚本,如果第一行是#!/bin/python,那么就相当于执行了一个python脚本 3.source xxx.sh / . ...

2020-08-23 22:20:56 2044

原创 编码之ascii,unicode,utf-8

1.为什么需要Ascii? 我们都知道在在计算机的世界中只有0和1,那么我们如何和计算机进行交互呢?所以Ascii码就出来了,他用一个字节去表示一个字符,就是一个byte,我们都知道一个byte是8位,就是00000000到11111111位,ASCII是1960年由美国来定制的,一直用到现在,例如A就是65,a就是97,一个规定了128个字符的编码。2.UNICODE的出现 每一个国家都有自己的语言,例如中国就有10w字,那么ASCII码显然就不够用,一开始有一些国家还利用ASCII没...

2020-07-12 16:34:38 167

原创 C++之gdb基本使用

1.什么是gdb? gdb是一个调试工具,可以使我们在linux环境下调试我们的c++代码2.基本用法1.gdb file_name:开始调试我们的代码2.run:开始调试代码,并运行到第一个断点处,所以我们在开始调试前需要设置断点3.n:运行到下一行代码3.s:若当前代码行为调用一个函数,则进入函数中4.b func_name/num:在某个函数或者某一行打上断点5.break info:把所有的断点信息打出来6.p name:把某个变量的值打出来,若全局变量和局部变.

2020-07-03 15:15:55 4134

转载 vscode远程开发

https://blog.csdn.net/yh0503/article/details/89851899

2020-07-02 22:38:37 1263

原创 selenium进阶之四大操作和三大切换

1.四大操作click:点击send_key:输入文本text:获取文本get_attribute:获取某属性值样例:from selenium import webdriverimport timeif __name__ == '__main__': browser = webdriver.Chrome() # 声明浏览器 url = 'https://www.baidu.com/' browser.get(url) # 打开浏览器预设网址

2020-07-02 19:38:14 446

原创 设计模式之生成器模式

1.什么是生成器模式? 一个对象生成一般通过构造函数,把类的生成过程进行拆分就是生成器模式。2.为什么需要生成器模式? 1.构造函数参数过多,从代码上来看这也是不雅观的,可用生成器模式来避免这种情况。 2.一个类的构造过程过于复杂,每一个对象的实现细节有可能不一样,例如现在我要构造一个基金账户的类,账户类型有分为香港和美国,我们在构造对象的时候还要根据初始化的金额去对用户进行风险评估,因为类型的不同,所以评估的方法也不一样,解决方法是可以定义多个构造函数或者把这个评估方法单独抽取出来...

2020-06-28 12:18:56 1949

原创 测试之selenium快速入门

1.什么是selenium? selenium是一个常用的web测试框架或者爬虫框架,用了它之后,我们就不用点点点了,因为他有一系列的api提供我们使用,例如我们要点页面中的某一个按钮,那么我们只需要获取页面,然后根据id或者name找到对应的按钮,然后执行click操作就可以完成点击这一个动作。2.为什么要用selenium? 点点点虽然容易复现,但做回归测试的时候会出现大量重复的工作,编写自动化测试之后,每次做回归测试我们只需要运行相关的脚本即可。3.基本用法 基础架构图:...

2020-06-22 17:38:20 225

原创 测试之等价类划分

1.什么是等价类划分? 根据需求,把输入域划分为若干个子集,其中分为有效和无效。 这句话有几个关键字,需求,输入,子集,一般一个业务需求只要和用户进行交互,那么必然会有输入,而如何输入是根据需求来确定的,每一个输入都有若干个形容词去修饰,再根据这些形容词去划分子集,什么是有效的呢,在需求之内,例如我们现在要输入一个用户名,用户名要求长度为三,是汉字,那么彭于晏就是有效的,广东彭于晏就是无效的,所以这句话翻译过来就是根据需求,看有那些输入,这些输入的条件是什么,根据条件去进行划分(...

2020-06-20 20:21:24 896

原创 gitlab权限控制

1.访问权限 private:只有在组内的人员才能看的见 Internal:只有登录的人才能看的见 public:所有能访问这个网址的人都能看的见(意思是如果你的gitlab搭在外网,这就是一个安全隐患问题,如果是内网就没问题)2.行为权限 访问权限在行为权限之前,只有有了访问权限,才有相关的行文权限。Guest - 访客Reporter - 报告者; 可以理解为测试员、产品经理等,一般负责提交issue等Developer - 开发者; ...

2020-06-20 12:34:21 688

原创 分布式之TCC,2PC

1.是什么? TCC和2PC都是分布式事务的一种实现方式,2者不同在于,TCC在业务层实现,而2PC在数据库中实现,例如innodb的XA。2.为什么需要? 如果我们用到了分布式的架构,那么通常就是一个服务一个数据库,我们都知道ACID在一个库中实现并不难,但是如果我们一个事务涉及到了多个数据库,例如下单这一过程,涉及到了账户数据库,库存数据库,怎样解决账户和库存数据库能够同时进行修改或者失败呢,这就是TCC和2PC解决的问题。3.怎么做? 不管是2PC...

2020-06-13 17:14:10 2027

原创 C++之容器删除

如果是顺序容器,如vector,string,deque,删除,插入操作会影响当前还有以后的迭代器,节点容器map,set,list就不会#include<iostream>#include<memory>#include<vector>#include<map>using namespace std;int main(){ map<int,int>mymap; for(int i=1;i!=5;i++)

2020-05-31 01:09:31 730

原创 微服务之客户端发现,服务端发现

A是客户端,B是注册中心,C是服务(有多个服务器)客户端发现:A要请求C,但是A不知道C的IP和端口,A只能通过B拿到C的一个列表,再从里面选定其中一个IP和端口访问服务端发现:A要请求C,但是A不知道C的IP和端口,B帮助A从C拿到一个IP和端口,这就是服务端发现,意味着IP和端口由注册中心来提供(进行映射转发),A并不知道具体的端口和IP。...

2020-05-25 21:07:23 636

原创 linux之平均负载

1.什么是平均负载? 有人说就是cpu的利用率,其实不全对,我们都知道一个进程有3种状态,运行态,就绪态,阻塞态(所以基本功还是有要有的) 运行态可以理解为进程在利用cpu进行某些计算 就绪态可以理解为一个进程因为时间片用完了,在等待cpu 阻塞态可以理解为在等待各种IO,例如等待数据从内存写入硬盘,等待网卡接收网络中的数据等 而CPU利用率只是指向运行态这一部分的进程,而平均负载是包括了这三种状态的程序,所以说平均负载高不一定是cpu利用效率高,...

2020-05-14 15:40:01 280

原创 python之装饰器快速上手

1.什么是装饰器? 装饰器也是一种函数,不过是一种用来修饰函数的函数。2.为什么需要装饰器? 为了写更少的代码,更清晰的逻辑层次,例如我们现在要做一个电商网站,我们要在用户查看订单,购物,付款这三个场景都想要检查用户信息是否正确,而检查信息这一步骤在这三个场景都是做一样的事情,这时候我们就能把这个步骤给抽出来,变成一个装饰器,用的时候直接装饰某个函数就行(本人觉得抽出来做一个函数,然后把他放在想要用的函数里面没什么不同,只是一个在外面,一个在里面而已,装饰器看起来也比较吊把)...

2020-05-12 17:40:04 199

原创 python之内存泄漏该如何处理(没有废话)?

1.明确内存泄漏的几种场景。 1.没有开gc,或者gc设为debug状态,导致交叉引用没有被回收调 2.如果一个数据在逻辑上不应该存在,但是因为代码上没有做相关清除操作,导致他还存在,也是一种泄漏 举个栗子,例如我要记录最近50天的某个基金的日化收益率,定义一个全局的字典global_dict,运行了一个脚本进行计算,没10分钟算一次,但是我没有进行clear操作,每次的计算只是单纯的赋值dict[date] = rate,按理来说dict["五十天前"]的...

2020-05-12 17:15:05 2055

原创 python之objgraph报错Graph viewer (xdot) and image renderer (dot) not found, not doing anything else

1.https://graphviz.gitlab.io/_pages/Download/Download_windows.html下载相关的msi文件并安装2.pip installgraphviz xdot3.把C:\Program Files (x86)\Graphviz2.38\bin 加进环境变量4.重启Pycharm

2020-05-11 20:11:16 1320

原创 python之深拷贝和浅拷贝

1.什么是浅拷贝? 举个栗子,你现在有一个老婆,你和你老婆有三个儿子,你生活在一个可一夫多妻的国家,然后你又找了一个老婆,现在你有2个老婆,3个儿子,你家庭和谐,你两个老婆一起管这三个儿子。2.什么是深拷贝? 举个栗子,你有一个老婆,有三个儿子,然后你又找了一个老婆,然后又生了三个儿子,你现在有2个老婆,6个儿子,你家庭也不和谐,每个老婆都只管自己的儿子。4.浅拷贝在pyt...

2020-05-08 10:10:29 213

原创 python之为什么dict在3.6之后的版本是有序的

1.什么是有序? 这里的有序不是只遍历dict是键值有序,而是遍历顺序就是插入顺序,所以这个有序只是对dict初始化时为空,一个个插入的情况2.如何实现? 3.6之前dict的底层结构就是一个二维数组,而3.6之后改用了二维数组加一维数组来实现,首先如果我们要插入dict[1] = 2,hash(1) = 1,这时候一维数组array1[1] = 0,而二维数组array2[...

2020-05-07 10:27:15 555

原创 Mysql之快照读和当前读

1.当前读: select...lock in share mode (共享读锁)  select...for update  update , delete , insert 当前读会加上锁,即若事务等级在可重复读或者以上的情况下,在同一事务内都是不变的,select会根据条件加共享锁,排他锁,行数,或者行锁+间隙锁等。2.快照读: 简单的select操作(不包括...

2020-05-06 15:21:12 1325

原创 C++ &&和move

代码说:#include <iostream>#include <utility>#include <vector>#include <string>using namespace std;class Object{public: Object(string name) { this->name...

2020-04-30 15:29:24 438

原创 什么是CI/CD

1.CI/CD是什么?CI/CD是一种开发的流程标准,只要开发满足这种标准,就是CI/CD,CI/CD追求的就是3字,自动化。在CI中,除了提交代码到版本控制系统以外,其余步骤都是自动的。在CD中,发布也是自动的,而且应该是有序的,保证上一个环境运行没问题,下一个环境才继续部署。2.为什么需要CI/CD?因为为了软件产品尽快提交给用户,其实是敏捷开发的一种表现,比传统的瀑布...

2020-04-16 22:22:21 601

原创 Docker快速入门之简介

1.什么是Dcoker? docker可以说是一个小型的虚拟环境,我们可以在上面运行我们的代码,有人就会说不是有虚拟机吗,虚拟机是可以,不过消耗资源过多,例如你一个机器上要运行几十个应用很明显是不现实的,那还会有人说那语言层面不是也有隔离吗,例如java不是有jvm吗,通过语言层面虽然资源消耗小,但是隔离性十分之差,一个应用很容易影响另一个应用,而docker取隔离和消耗的衡。...

2020-04-11 18:27:31 141

原创 学习架构之基本概念

1. 前提: 我们学习架构之前,应该对一些基础名词有相关的概念,这样更有利于我们后面的学习。2. 基础名词介绍 系统:系统有多个个体组成,个体有自己独立的功能,然后这些个体通过一定的规则去运行,从而产生新的功能。 子系统:子系统其实就是系统更小的单位,例如微信是一个大的系统,可以分为聊天子系统,支付子系统,朋友圈子系统等 组件和模块:组件...

2020-04-11 02:23:20 362

原创 web开发之实现网页在线录音并进行相关搜索

1.目的 实现页面输入语音,返回后台根据该语音进行相关搜索2.步骤分解 1.前台传输语音到后台,2.语音转化为文字,3.文字根据nlp算法进行分词,4.根据分词进行相关搜索3.每一步实现思路(基于springboot) 1.前台进行在线录音并返回给后台,这里我们可以用位老哥的库: https://blog.csdn.net/weixin...

2020-04-10 15:46:55 702

原创 网络之输入一个网址会发生啥

输入了一个网址,首先会去一个叫做DNS服务器的去找相对的IP,DNS服务器其实有很多个,而且DNS服务器也是有分级的,我们都知道一个域名可以根据 . 来进行分级,例如www.baidu.com中,com是顶级域名,baidu是一个次级域名,www是一个三级域名,其实www.baidu.com中还隐藏了一个根域名,完整的域名应该是www.baidu.com.root,.root...

2020-04-06 21:00:20 518

原创 Mysql之redo log,binlog

1.redo logInnodb专有的log系统,管的是物理日志,简单来说就是磁盘里面那个物理页中具体哪一个位置所做的修改2.binlog我们都知道Mysql分为客户端和服务端,引擎三大部分,binlog属于服务端这一部分,所以它不是某一个引擎特有的,它做的是逻辑记录,就是sql语句。3.为什么需要binlog?因为我们需要数据在必要的时候做回滚,例如今天是2020.4.5...

2020-04-05 15:52:17 122

原创 Mysql调优方向

1.选择合适的DBMS DBMS分为SQL和NoSQL,应用何种数据库应该从实际出发。 例如应用场景是大型的项目,对数据的安全性,稳定性,速度都有很高的要求,那oracle会是比较合适的DB,因为oracle是面向企业级的数据库,里面的功能十分齐全,例如索引在我们平常应用中是一个十分重要的应用,如何设定索引是个技术活,oracle就提供了一个auto indexing的功能...

2020-04-02 12:03:29 136

原创 Mysql之三少一多原则

1. 联合主键尽量小,因为任何查询,二级索引都会用到主键索引,所以主键越大,占用的空间就越大2.表的字段尽量少,字段越少,占用空间越小3.表的数量尽量少,因为如果一个系统所建的表越少,那么系统肯定越简洁,维护代码,数据库也越简单,例如我在开发中遇到这样一个例子,现在一些属性的值是可选的,就是例如投资年限,它只有1,2,3年选,那为了维护方便,这些值就要存在数据库里面,需要用的时候再从数据库...

2020-04-01 15:34:16 413

原创 Go之包,函数,方法

1.首先要了解Go的分级机制 Go是以包的形式来分级的在上面的图中,同一目录下的文件只能是相同的package,package名字可与目录不一样,Go的封装十分简单,若文件名,变量名是大写字母开头的,那这个变量或者函数是在各个包都是可见的,若是小写,那么只能在同一个包是可见的,即文件都是同一个package命名语句的。2.Go导入自定义的包我们可以看出,如果我们想导...

2020-03-27 21:22:17 356

原创 Go之数组,字符串,切片

数组: 1. 数组需要在初始化时定长,大小不可变,长度不同的数组会被认为是不同的类型,不能直接赋值 2. 数组为值传递,即b = a,其实是吧a的值都拷贝一份到b,若只读,应该用指针 3. 数组遍历可用 for k,v := a,k为下标,v为相对的值 4. 初始化,支持索引初始化,如a := [...]int{1,2,3:4...

2020-03-27 14:15:45 311

原创 D. Pair of Topics

The next lecture in a high school requires two topics to be discussed. Theii-th topic is interesting byaiaiunits for the teacher and bybibiunits for the students.The pair of topicsiiandjj(i...

2020-03-26 17:15:31 165

原创 mysql进行order_by操作 如果有相同的值 怎么解决

可以用concat把被排序的值加主键,这样就又唯一,又有序!!!!!!!!!!!

2020-03-24 17:27:35 2337

原创 Mysql初始化 查看密码

https://blog.csdn.net/java_gchsh/article/details/77866276

2020-03-24 16:11:55 3508

原创 centos7 增加swap空间

https://yq.aliyun.com/articles/634493?spm=a2c4e.11153940.0.0.1810a64d8CgPia

2020-03-24 14:38:24 170

原创 Go语言选择器是如何选择的

我们都知道选择器其实就是类型里面的一个个方法,类型之间可以互相内嵌,经过代码证明,选择器会优先选择自身定义的方法,然后如果没有,就会去解析内嵌的类型的方法,例如定义类型t,同时内嵌了t1,t2两个类型,里面都有方法f,这是直接调用t.f,就会产生二义性,因为t1和t2在解析器看来都算是同一层,如果t1不变,f是在t2的内嵌t2.1定义的方法,这时候旧不会有问题,因为t1比t2高一层,但如果f同时定...

2020-03-17 17:12:31 165

原创 Cmake入门

1.单文件 main.cpp文件#include <iostream>using namespace std;int a = 1;int main() { int b = 2; int c = b + a; cout<<c<<endl; return 0;}同一目录下的CMakeFiles文件# ...

2020-03-13 17:13:51 143

原创 Python垃圾回收机制

1.垃圾回收机制:引用为住,标记和分代为辅2.引用:万物皆对象,每个对象都有一个对应的内存管理模块,里面有一个成员标记的就是引用计数,当引用计数为0.就会回收3.标记:因为标记不能解决互相引用的情况,所以有了标记引用,即有一个根节点,若对象和根节点之间存在路径,就有用不被回收,若不存在,即会被回收4.分代:因为标记太过于耗时,要扫描全图,所以有了分代,分代即使把对象分为三个代,年轻,中...

2020-03-05 09:59:18 119

原创 C. Two Arrays

You are given two integersnnandmm. Calculate the number of pairs of arrays(a,b)(a,b)such that:the length of both arrays is equal tomm; each element of each array is an integer between11and...

2020-01-16 09:37:39 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除