自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Golang探索reflect提速的方法

golang的reflect提速,通过cache、unsafe包、uintptr_key实现探索。

2023-06-24 23:16:08 253

原创 正则表达式替换html文本中的src内容

这个正则表达式可以匹配出html标签中的许多内容,这里记录一下,以后肯定会再次遇到类似的需求。最近需要在修改数据库中大量html文本中的src内容,涉及到的标签有。等,手动修改太过麻烦。于是想要使用正则表达式来做。(为什么有\这个符号?-- 因为修改的html文本存在数据库中。这样就可以实现html文本中src资源内容的更改了。只要控制代码将正则表达式匹配出来的内容替换就可以。将所有记录的src地址。

2022-10-06 18:30:57 1133 1

原创 gRPC运行过程与流量控制机制

总结一下,上面讲解了gRPC中三种流量控制(注意当前版本是v1.49.0),分别为BDP、connection level 、 sream level 流量控制。按照层次关系,先从整体的BDP介绍了原理与结构,然后顺着思路,从“唯一的TCP连接”引入了connection level流量控制,最后讲解最细粒度的stream level流量控制,并且,通过gRPC的源代码步骤,从连接建立到交互完成,我们过了一遍关键的源码,在源码中看流量控制机制的过程。

2022-10-05 18:00:36 1647

原创 Helm模板常用语法介绍与简单应用场景

Helm模板常用语法介绍与简单应用场景什么是Helm_help.tpl子模版应用场景预定义对象关于变量关键字及应用函数流程与控制Helm就是一个kubernetes的对象文件管理工具,有的介绍说Helm类似于python的Pip,是包管理工具。我们可以从使用的角度看看Helm的功能,进而明白它是什么工具。一般我们在部署kubernetes的时候,会定义Deployment、Service、ConfigMap等对象,使用的命令,但是,如果你想重新发布,修改,甚至支持多租户(多个环境),修改起来很麻烦。

2022-09-07 23:49:48 3862

原创 gRPC基础解读与源代码过程分析

文章主要从源代码的过程分析了gRPC中:- 服务端的创建与连接过程- 客户端连接与交互过程- 连接的建立、请求的传递、请求处理等过程在源代码中的体现另外,为了便于理解,前置讲解了RPC与gRPC的区别,gRPC服务的开发流程,并进一步阐述了使用HTTP2带来的益处。

2022-09-05 22:16:16 1498

原创 Docker底层文件系统UnionFS实践

容器文件系统的组织方式,决定了容器镜像的组织形式,允许通过”增量“的方式修改镜像里打包的文件(可以用git的提交来理解这个”增量“)。

2022-08-06 01:48:45 459

原创 [Golang]从简单Web服务步步抽象到初级Web框架 (Ⅴ)

这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。三种服务优雅关停与CSP协程池。

2022-06-22 22:30:01 203

原创 [Golang]从简单Web服务步步抽象到初级Web框架 (Ⅳ)

这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。抽象出树接口,预留了扩展方法。接下来,我们可以增加静态文件资源服务。首先http库是已经支持了相关的文件操作。......

2022-06-14 15:37:39 124

原创 [Golang]从简单Web服务步步抽象到初级Web框架 (Ⅲ)

这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ)服务的抽象[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅱ)重构中间件上篇文章定义了中间件结构,然后完成责任链调用。这一篇文章是修改路由方式,增加树结构匹配路由。(参考了Gin强大的路由功能)......

2022-06-08 17:11:53 133

原创 [Golang]从简单Web服务步步抽象到初级Web框架 (Ⅱ)

这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ)服务的抽象这篇文章继续往下,将代码进一步优化与抽象

2022-06-02 00:48:15 158

原创 [Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ)

文章目录[Golang] 简单Web服务到初级Web框架(Ⅰ)要做什么最简单的HTTP服务原生HTTP库实现注册功能存在哪些问题?解决问题针对响应码与序列化数据的请求封装为Context将服务抽象为Server修改后代码下一篇的内容(Ⅱ)[Golang] 简单Web服务到初级Web框架(Ⅰ)要做什么故名思意,就是使用go语言从最简单开始,通过原生 net/http库 ,一步步抽象,修改结构,借鉴了Gin框架的部分实现,最后展现出一个初级的Web框架。需要基础:Go语言语法基础net/http

2022-05-17 11:50:05 163

原创 [工具]Vscode远程开发与远程调试

使用本地Vscode远程开发代码与远程调试文章目录使用本地Vscode远程开发代码与远程调试本地Vsode连接远程服务器Remote - SSH操作步骤Linux上适合Go开发的IDE补充本地Vscode调试远端进程(Go语言)需要条件操作步骤补充应用参考资料一直使用vscode写代码,也时常觉得vscode的设计挺符合微软的地位。简洁的界面,良好快捷方式,丰富的扩展是我使用vscode的原因。vscode基于三个产品构建:Chromium 、 Electron 、Monaco-editor。主要

2022-04-26 22:14:57 6903

原创 Goroutine交替执行的相关问题与方法

多个Goroutine交替执行输出文章目录多个Goroutine交替执行输出两个协程交替打印1-100的奇偶数使用channel作为信号传递实现使用runtime让协程竞争CPU使用sync的锁竞争实现N个线程交替打印0-100没有严格的交替顺序的时候有严格交替顺序的时候channel实现线程池参考资料Go语言的协程goroutine在高并发方面具有优势,最简单的可以写一个简单的生产者消费者模型。func mode1() { rand.Seed(time.Now().UnixNano()) wg

2022-04-25 00:48:05 1690

原创 Centos7上使用Kind搭建Kubernetes环境

Centos7上使用Kind搭建Kubernetes环境文章目录Centos7上使用Kind搭建Kubernetes环境安装Kind安装Kind在安装之前我们需要知道

2022-04-06 01:16:50 1424

原创 Git原理与情景化【一】

Git原理与情境化Git前置知识文章目录Git原理与情境化Git前置知识Git的功能介绍提交过程文件存储方式将功能按层次分解来介绍初始化与工作目录初始化 git init配置与别名查看日志git stash工作目录到暂存区git statusgit addgit rm暂存区到本地仓库git commitgit tag本地仓库到远程仓库pull & push [起源地:目的地]git fetch管理git branchgit mergegit rebasegit remotegit diffgit

2022-03-29 21:02:29 506 1

原创 Golang实现经典排序算法【二】— 堆排序、归并排序、快速排序

Golang实现经典排序算法【二】实现堆排序、归并排序、快速排序文章目录Golang实现经典排序算法【二】堆排序归并排序递归版本迭代版本快速排序递归版本迭代版本补充heap在标准包的使用sort包中的快速排序实现堆排序首先构建大顶堆,然后交换堆顶,func main() { s := []int{1, 44, 4, 6, 74, 42, 346, 536, 453, 0, 0, 1, 1, 32, 3} fmt.Println(heapSort(s))}/*堆排序 大顶堆*/func h

2022-02-23 17:34:58 494

原创 Golang实现经典排序算法【一】—冒泡、选择、插入、希尔

使用Golang实现经典排序算法【一】实现冒泡排序、选择排序、插入排序、希尔排序。文章目录使用Golang实现经典排序算法【一】排序的基本概念冒泡排序简单选择排序直接插入排序希尔排序排序的基本概念排序的稳定性:分数名字10甲20乙10丁对上述表格按分数从小到大排序之后,甲还是在丁的上面,原排列位置不变,就说明排序是稳定的;反之,排序之后,丁出现在甲的上面,则说明排序是不稳定的。内排序与外排序内排序:是整个排序过程中,所有记录全部放在内存中;如:插入

2022-02-23 12:57:03 438

原创 使用选项模式设置Go语言函数的默认参数

Go语言使用选项模式设置函数的默认参数文章目录Go语言使用选项模式设置函数的默认参数Python与Go使用默认参数对比使用Python实现使用Go语言实现Go使用选项模式设置默认参数总结Python与Go使用默认参数对比在使用Go语言写函数时,不能像Python一样设置函数的默认参数,但是,不能设置默认参数让我们有时候处理起来特别麻烦,特别时有时候函数的参数想让使用者自己决定的时候,不禁感叹Python的方便。比如,我们实现一个对象——点奶茶:使用Python实现class Tea:

2022-02-16 02:56:38 2497 2

原创 python处理字节流形式的视频

python处理内存中字节流形式的视频在使用python的streamlit库处理上传的文件时碰到一个问题,文件上传后是以字节数组的形式存在内存中,我在后续需要使用cv2库逐帧操作上传的视频,这里就产生一个问题,cv2怎么读取到内存中字节形式的视频?经过多次查找,发现可以使用ffmpeg从内存中将字节流解码,然后再由cv2处理。代码如下:import streamlit as st# streamlit中上传文件的函数@st.cache(allow_output_mutation=True,sh

2022-02-12 15:01:44 3991 2

原创 Centos下使用脚本快速安装GO语言环境

Centos使用shell脚本快速安装go环境并安装spaceVim IDE脚本如下:#!/bin/bashenv_git_install(){ echo "安装依赖中" sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-deve

2022-02-10 18:21:31 817

原创 【研发设计】多人开发模式下的Git工作流介绍

多人开发模式下基于Git的工作流介绍一个大型的项目总是由多人一起开发完成的,多人协作一般需要选取合适的协作方式,比如统一的规范、合适的开发模式等。现在项目一般采用Git管理,可以有效管理代码版本。

2021-12-23 00:24:44 576

原创 《GO语言圣经》:Bit数组实例讲解

《GO语言圣经》第六章方法中Bit数组实例讲解,与课后习题答案。书中介绍了关于方法的语法,在最后给出一个实例——Bit数组实现集合这种数据结构。目的实现集合的数据结构,并能够做集合的运算。集合元素通常是一个非负整数,集合会包含很多元素,并且集合会经常进行并集、交集操作,这种情况下,bit数组会比map表现更加理想。前置知识集合的性质互异性、确定性、无序性GO语言基础知识——方法与函数https://www.runoob.com/go/go-tutorial.html位运算https

2021-09-11 00:09:57 560

原创 [工具] vscode设置插件安装位置并同步到右键打开选项中

win10下 vscode固定插件安装位置,通过右键打开时也为所设的位置在win10下安装vscode时,扩展的默认安装位置为:C:\Users\你的用户名\.vscode\extensions而且这个位置没有办法直接修改。我在网上大概查了一下,有几种方法解决这个问题。固定加载扩展的位置方法一:cmd启动vscode的时候指定扩展的位置code --extensions-dir E:\vscode\extensions方法二:通过快捷方式启动时指定扩展位置 (推荐)安装完vscode

2021-08-25 00:23:29 1023 2

原创 GO语言圣经习题:5.2 函数递归

GO语言圣经:函数递归 习题解析《GO语言圣经》:https://books.studygolang.com/gopl-zh/ch5/ch5-02.html第五章函数.递归习题与解析练习 5.1: 修改findlinks代码中遍历n.FirstChild链表的部分,将循环调用visit,改成递归调用。练习 5.2: 编写函数,记录在HTML树中出现的同名元素的次数。练习 5.3: 编写函数输出所有text结点的内容。注意不要访问练习 5.4: 扩展visit函数,使其能够处理其他类型的结点,如im

2021-08-08 15:21:41 358

原创 GO语言:使用项目目录中自定义的包

GO:使用项目中文件夹里的自定义包刚开始学习GO语言,想要在代码中使用项目文件夹中自定义的包,碰到了一些问题,已经解决了。希望能够帮助碰到同样问题的朋友。问题描述想要在GO中尝试面向对象,在项目中建立多个包,随后通过主函数调用这些包。项目day2的文件结构如下:在main()函数中调用string文件夹与array文件夹中的方法。实验环境:win10 + GO1.16//mod文件 运行go mod init day2module day2go 1.16main.gopacka

2021-08-03 15:27:44 1478

空空如也

空空如也

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

TA关注的人

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