自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

止语的博客

书到用时方恨少

  • 博客(232)
  • 资源 (8)
  • 收藏
  • 关注

原创 go并发编程

介绍之前,先澄清下并发这个概念,并发指的是多个任务被(一个)cpu 轮流切换执行,在 Go 语言里面主要用 goroutine (协程)来实现并发,类似于其他语言中的线程。

2023-03-19 20:49:18 490 1

原创 Go Test测试教程

go中测试既有类似有pytest中的功能测试,也有benchMark的基准测试,以及单元测试(Unit TestsUT).这里从单元测试UT引入本篇的话题,单元测试的重要性不言而喻,尤其在大型项目中跨团队合作时,无法mr合格的代码,很容易影响整个团队的交付进度和质量。或者会说直接debug,但是当你的代码是几千行的时候,这个时候debug似乎也比较累,那单元测试就能覆盖上述情况。如何写好单元测试呢?测试用例编写是基础。比如如何编写单个测试函数和单个测试方法,如何做基准测试,如何Mock。

2023-03-13 22:14:50 2905

原创 go实现rsa和aes加解密

密码学中两大经典算法,一个是对称加解密,具有代表性的是AES加解密,另一个是非对称加解密,代表性的是RSA加解密。那什么事对称和非对称呢?对称加密算法又称为传统密码算法,加密密钥和解密密钥是相同的。对称加密算法要求通信双方在开始通信前,要首先商定一个用于加密和解密的密钥。算法的安全性就依赖于这个密钥,如果这个密钥被泄露了,就意味着通信不再安全非对称加密算法是现代密码学取得的最大成就之一,也是密码学近20年来能够快速发展和推广应用的主要原因之一。

2023-03-06 21:40:02 878

原创 gRPC简介

messagemessage:protobul定义了一个消息类型是通过关键字message字段指定,消息就是要传输的数据格式的定义,message类似go中的struct,在消息中承载的数据分别对应的是一个字段,每个字段都有一个名字和一种类型。required:消息体中的必填字段,不设置时会导致编码异常,在protobf2中使用,在protobuf3中删除optional:消息体中的可选字段,protobuf3中取消了required和optional等说明关键字,默认都是optional。

2023-02-26 11:04:43 2447

原创 go面向对象思想封装继承多态

go貌似都没有听说过继承,当然这个继承不像c++中通过class类的方式去继承,还是通过struct的方式,所以go严格来说不是面向对象编程的语言,c++和java才是,不过还是可以基于自身的一些的特性实现面向对象的功能,面向对象三大特性:封装、继承、多态。

2023-02-25 11:14:35 707 1

原创 go单元测试

接着上一篇中的go module创建项目calc为例,在simplemath包中,是使用在命令行中使用交互式的方式进行测试,现在可以为这几个函数实现单元测试,go test,这个测试工具来自于 Go 官方的gc工具链。运行go test命令将执行当前目录下的包的测试代码,它会寻找*_test.go文件,并在这些文件中,寻找符合命名的函数和参数(即,接收*testing.T参数的函数,命名为TestXxxXxx可以是任何不以小写字符开头的名字)。这个测试代码不会影响正常的编译过程,只在执行。

2023-02-24 22:40:25 522

原创 go module构建项目

go module是go新的依赖包管理系统,go module 是go语言从1.11版本之后官方推出的版本管理工具,基于vgo演变而来,是一个新型的包管理工具,在go1.11和go1.12该功能还在试验阶段,从go 1.13开始,go module 成为了go语言默认的依赖管理工具,从go1.14开始已经用于生产环境,并且鼓励所有用户从其他依赖包管理系统迁移到go module。

2023-02-24 22:09:05 1375

原创 python Process and ProcessPools

python 进程和进程池

2022-12-04 11:21:16 595

原创 python Threads and ThreadPools

python 进程和进程池

2022-12-03 22:57:23 1097

转载 Python项目工程化开发指南

python项目开发指南

2022-11-02 21:34:42 512

原创 Tornado重定向(三)

tornado

2022-10-23 21:45:37 632 1

原创 Tornado数据响应(二)

tornado

2022-10-23 21:16:31 1467

原创 Tornado初见(一)

Tornado

2022-10-22 22:24:29 432

原创 浅谈Coroutine使用方法

Python coroutine

2022-10-21 20:45:14 3083

转载 Linux cGroup详细介绍

Linux cGroup系列

2022-09-01 21:00:58 501

转载 Python通过logging.config.fileConfig()配置日志

Python通过logging.config.fileConfig()配置日志

2022-08-19 18:45:42 1797

原创 python 数据结构之字典

python 常见的数据结构之一就是字典,关于遍历,插入,删除。常见的比如使用items(),update,pop等。索引的时候使用keys()。过去的用法大都是使用[‘key’]或者get的形式去访问,因为get对于不存在的key可以返回None,但是如果一个字典不存在一个key使用[‘key’]则会提示key错误的问题.因此如果要使用传统的方法去范围字典,建议使用dict.get(‘key’)的形式那如果能使用对象.属性的方式去访问,便可以大大简化访问的繁文缛节了。下面介绍一下字典操作和访问的一个库

2022-07-02 09:45:14 283

原创 pytest使用(6)-pytest执行规则

修改Pytest执行规则

2022-06-17 06:52:15 360

原创 pytest使用(5)-测试报告优化

pytest

2022-06-12 15:38:16 1434

原创 python封装SDK

python生成sdk时,可以打包成.egg(windows下)也可以打包成.whl(linux或者windows下),然后执行pip3 install ***.whl就可以像往常的安装包一样使用了。这里先介绍下打包成.egg包作为打包的入门。1 打包为适用于windows的.egg包1.1 安装python-setuptools对于已经运行过python project的,不需要另外安装。pip list先查阅。1.2 新建项目之类新建一个python工程,volcstack-sdk,新建RE

2022-05-28 22:06:51 4521

原创 pytest使用(4)-多线程多进程

受到Python GIL解释器的问题影响,Python不能像java一样实现多线程的运行,但是利用一些IO技术依然可以实现类“多线程”并发请求。pytest中,可以利用包pytest-xdist多进程和pytest-parallel 的多进程+多线程事项并发请求。安装pip install pytest-xdist pip install pytest-parallel应用场景介绍:比如测试云计算中的虚拟机,常常需要caseA创建一台ECS,等待其达到running状态,执行一些操作actio

2022-05-26 21:51:48 2751

原创 pytest使用(3)-conftest

接着上一节的fixture,这一节继续介绍conftest.我们知道在python中要想实现数据的共享,可以定义一个“全局变量”,在另一个文件中使用的时候通过先导入,再使用的方式来访问。pytest中定义个conftest.py来实现数据,参数,方法、函数的共享。conftest.py 的文件名称是固定的, pytest 会自动识别该文件,我们可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 文件,一般我们都是在工程根目录下设置的 conftest 文件,

2022-05-25 21:23:27 9693

转载 pytest使用(2)-fixture

由于fixture重要&&功能强大,因此本章节再着重介绍一下

2022-05-22 20:51:08 731

原创 pytest使用(1)-基础

python有很多不错的测试框架,比如RobotFramework,Unitest,这里要介绍一下pytest。可以参考,pytest文档因为文档介绍比较多,这里使用简单的几篇帖子引导快速入门并灵活使用。1 安装和执行通过安装和一个简单的实例先入为主,体验一下如何使用。pip3 install pytest安装之后在在\python37\lib\site-packages目录下安装对应的pytest包,使用的时候直接引入import pytest即可。2 用例"""文件名:test_001.

2022-05-21 22:34:48 2137

原创 python polling轮询函数

很多时候使用python写自动化比如查询get或者post请求的时候,都是使用如下的语法import requestsimport timedef get200Status(url): startTime = time.time() while True: resp = requests.get('http://tools.2345.com/frame/black/mobile/18428385555') if resp.status_code ==

2022-05-12 21:59:43 4878 2

原创 python 协程 async/await

1、前言1.1 计算密集型、IO密集型python因为自身的GIL的问题导致并发不能像java和C一样,但并不是说Python不能实现并发。常见的有两种:**- 计算密集型IO密集型**计算密集型计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的

2022-04-23 22:40:45 7618

原创 Jemeter组件介绍(四)

1常用组件概述除了前文介绍的测试计划(Test Plan),线程组(Thread Group),另外还有些其他常用的主要组件:控制器(Controller)监听器(Listeners)计时器(Timers)配置元素(Configurations Elements)预处理器元素(Pre-Processor Elements)后处理器元素(Post-Processor Elements)每个组件及jmeter模块的关系如下2控制器控制器可以分为两个组成部分:取样器逻辑控制器2

2022-04-05 21:52:56 556

原创 Jemeter代理录制脚本(三)

对于web请求,可以通过录制脚本来简化编写Jmeter脚本编写。Jmeter中脚本录制方法有两种:Jmeter代理录制脚本badBody录制—基本不用注意使用Jmeter代理录制性能测试脚本,录制后的脚本也是需要调试的,并不是说使用了代理录制的脚本就一定能用。所谓代理,可以理解为客户访问服务器的中间商,类似某个客户想购买房,使用中介进行购买,这个中介就是代理。HTTP代理服务器的用法一般为:设置浏览器代理启动代理服务器操作浏览器自动录制脚本其访问流程如下所示1创建http代理服务

2022-04-05 21:06:08 488

原创 Jemeter对HTTP接口压测(二)

这里简单的介绍下使用jmeter进行http接口的压测方法1、创建线程组添加一线程组(即用户组:一个线程模拟一个用户行为,如果要模拟多个用户,则通过设置多线程来实现)2、创建HTTP请求因为是对http接口进行压测,所以需要在线程组下添加HTTP请求3、配置请求参数主要设置服务器名称或IP,端口号,连接、响应时间,所采用的协议,请求类型,内容编码,路径,最后设置请求内容。这里请求百度首页为例,修改请求名称。端口、路径、内容编码这里可以不用填写。在http请求添加响应断言这里仅做示例

2022-04-01 22:02:28 1184

原创 性能测试指标(一)

介绍性能测试的教程和文章比较多,总结性能测试的指标为多、快、好、省。多:并发数量快:延时,响应时间好:长时间运行省:资源使用率1.响应时间响应时间为各个时间段往返时间之和。包括:用户客户端呈现时间,请求/响应数据网络传输时间,应用处理服务器处理时间,数据库系统处理时间。如果是Web系统,接受的时间为2/5/8原则。2.并发用户数所谓的用户数有三种类型,分别是:所谓的并发也有两种类型,严格并发和广义并发:严格并发:所有用户在同一时间做同一件时间,如同一时间点击同一个button

2022-04-01 16:10:22 1212

原创 linux之awk命令解读

之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。简单来说awk就是把文件逐行读入,(**空格**,**制表符**)为默认分隔符将每行切片,切开的部分再进行各种分析处理awk命令格式如下:awk [选项参数] 'script' var=value file(s)awk [选项参数] -f scriptfile va..

2022-03-31 22:01:03 160

转载 linux中systemctl详细理解及常用命令

一、systemctl理解Linux 服务管理两种方式service和systemctlsystemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl1. systemctl命令兼容了service即systemctl也会去/etc/init.d目录下,查看,执行相关程序systemctl redis startsystemctl redis stop# 开机自启动

2022-03-24 11:35:39 1982

原创 Django之模型层和ORM

在之前的文章中已经介绍过数据库的操作使用,但是不够系统,今天就模型层和ORM做一个系统的介绍。所谓模型层就是主要负责和数据库之间进行数据交互的一个模块Django连接mysql数据库,安装mysqlclient[版本mysqlclient 1.3.13以上],如果是ubantu要确定是否安装python3-dev,default-libmysqlclient-dev,系统级别必须有这两个包,可以通过如下命令查看sudo apt list --installed|grep -E 'libmysq...

2021-09-22 22:34:20 171

原创 Django值应用和分布式路由

以豆瓣为例,界面上展示了很多栏目,比如电影,音乐等等,每个类型下面有自己的一些内容?我们试想一下,这些内容是否会使用一个views.py处理所有呢?这样版本管理起来太复杂了,此时就有了Django应用的概念,应用是Django项目中一个独立的业务模块,可以包含自己的路由,视图,模板,模型1.分布式路由引入了应用的概念后,每一个应用就有自己的MTV,我们具体来看看如何使用应用。创建应用:#创建应用djang-admin startapp music#注册应用,在settings.py中的...

2021-09-21 16:21:12 152

原创 Django之静态文件

在介绍分布式路由之前,先介绍下静态问价,比如图片,音视频文件,这些都属于静态文件。以百度首页为例:大部分都是静态文件,以图片为例,浏览器加载img标签,解读里面的src属性,对src里面的地址发http请求,当浏览器接收到响应的时候,进行渲染并展示。那在djnango发送静态文件,如何使用呢?在settings.py中,配置静态文件的访问路径[默认是配置了的]STATIC_URL = '/static/'访问静态文件时,通过/static/xxx或者http://127.0.0.0:8000/s

2021-09-21 14:16:37 489

原创 Django之请求和响应

所谓请求和响应就是一种对话式或者说应答式的交互过程。请求是值用户使用浏览器通过http协议发送给服务段的数据,响应是值服务端接收到请求后做响应的处理回复给浏览器的数据。常用的方法就是GET,POST,HEAD,DELETE,TRACE等。1.请求和响应概述 Django中的请求实际就是视图函数view中的第一个参数,就是固定为request,其为HttpRquest对象,Django接收到http请求后,会根据请求数据创建HttpRequest对象,该对象涵盖了很多包括属性,其涵盖了请求...

2021-09-20 23:21:57 1139

原创 Django之url和视图函数

URL-统一资源定位符(Uniform Resource Locator)用来表示互联网某个资源的地址,类比理解为windows下某个文件的路径。URL的一般语法格式为(注:[]代表其中的内容可省略) proptcol://hostname[:port]/path/[?query][#fragment] http://tts.tmooc.cn/video/showVideo?menuId=657421&version=AID999#subject这里的web端口为80,p...

2021-09-19 22:41:13 455

原创 Django模板继承

继承这个概念在很多语言中都有,主要是子类从父类继承一些属性和函数,当然子类也可以重写父类函数的一些功能等等。在Django也有类似功能,这里的继承是指子类继承了父类的“界面布局”1.概述 Django中模板层就是Modle层,其模式为MTV(Model-Template-View) M 模型层 负责与数据库交互T 模板层 负责呈现内容到浏览器V 视图层 是核心,负责接收请求,获取数据,返回结果创建模板文件夹,一般在<项目名称>/templates创建普通文件...

2021-09-12 19:12:36 634

原创 go数据结构

go语言中提供了包括数组,结构体,映射,切片等数据结构,当然指针也可以作为一种数据类型来学习和沉淀。Ken Thompson(肯·汤普森)和Rob Pike(罗布·派克)创建go语言时,吸取了目前现有主流语言的一些特点,因为Ken Thompson是C语言的主要创造者之一,因此可能从其角度理解,指针和结构体是很好的一种数据类型,因此go语言中也有该数据结构。 虽然这里是介绍go的主要数据结构,但是先普及一点Go诞生的小知识:计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明...

2021-09-05 21:31:01 2078

转载 go数据类型转

Go语言中数据类型转换不像C中,不同类型的变量之间赋值时必须使用显式转换,也就是Golang中数据类型不能自动转换。基本语法:表达式T(var)将var值转换成T类型T:就是数据类型,比如int32,int64var:就是需要转换的变量var i int = 42var f float64= float64(i)Go中,数据类型可以从低精度转换为高精度,也可以从高精度转换为低精度被转换的是变量存储的数据值,而变量本身的数据类型并没有发生变化在转换中,比如将int64 转换成int8【

2021-08-28 17:42:05 402

mysite3.zip

mysite3.zip

2021-09-21

python圣经

python圣经,练手好项目,Python 圣经:构建11个项目并从初学者到专业人员

2018-07-22

glew,opengl

2016-12-21

glew,win32

2016-12-21

OpenGL三维显示

实现三维显示,通过鼠标控制实现旋转等操作

2016-12-19

winio并口设置

新增的winio不仅可以适用于32位系统,同事也适用于64位系统,解决了64位没有数字证书的问题

2016-01-06

Visual C++数字图像处理

基于Visual C++的数字图像处理(谢凤英、赵丹培),源代码中按照图像处理类型的不同建立不同的类

2015-10-30

mfc绘制坐标系

通过mfc绘制坐标系,利用mfc中界面的可视化与人机交流,方便使用者

2015-08-29

空空如也

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

TA关注的人

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