自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老孙正经胡说

老孙正经胡说

  • 博客(71)
  • 收藏
  • 关注

原创 ChatGPT初学者最佳实践

其实使用ChatGPT没有什么密码可言,最重要的是对需求的描述,如果你平时能对自己的目标比较清晰,能够准确描述自己的需求,则ChatGPT会让你如鱼得水,而反之,如果你只是将ChatGPT理解成普通的问答机器人,那么你可能会觉得这个工具对你的帮助并不大。这些技巧是对初次使用ChatGPT用户的一些建议,我相信随着使用的熟练,你能在更多的实践中总结出更多的技巧来提高工作效率。我们不必神话ChatGPT可能产生的颠覆性,对于普通人来说,将工具为我所用,不被时代的洪流淘汰才是硬道理。本文由博客一文多发平台。

2023-05-17 19:16:03 768 1

原创 云原生灾备产品HyperBDR自动化测试实践

本文从云原生灾备产品HyperBDR测试遇到的痛点触发进行详细分析,根据自身需求,总结出自动化测试需求,利用Terraform和Python开发出符合自身需求的自动化测试工具集。

2023-02-07 08:00:00 241

原创 8.5 Go语言中数据库操作

Go语言操作数据的两种方法。

2023-02-06 22:00:00 706

原创 7.4 Go语言中并发运行数量

自 Go 1.5 开始,Go的GOMAXPROCS 默认值已经设置为CPU的核数,这允许我们的Golang程序充分使用机器的每一个 CPU, 最大程度的提高我们程序的并发性能。Golang的调度器采用M-P-G。更多详细的原理部分,请查阅参考文档,在一些特定场景下(例如容器),可能会遇到与并发量有关的问题,需要合理的对参数进行设定。通过设置GOMAXPROCS环境变量可以控制P的数量。来看下程序中通过runtime获取该变量。

2023-01-31 08:00:00 48

原创 7.3 Go语言中通过WaitGroup控制并发

Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,更加直观。如果不想在函数中传递WaitGroup,也可以采用以下这种方式,通过并发匿名函数的方式,在主函数逻辑中对并发进行精准控制。WaitGroup传入给函数时,需要以指针方式传递,否则会造成Deadlock。我们将之前的示例加以改造,引入sync.WaitGroup来实现并发控制。

2023-01-30 08:00:00 59

原创 8.1 Go语言中文件操作

os包提供了处理文件的API接口,遵循Unix标准,平台无关,所有操作系统都可以使用。错误处理上是Go语言独有的,失败时,返回的是错误类型而非系统错误编号,对于调试很有帮助。和其他语言类似,读取文件主要使用Open, Read等函数,文件处理最底层是基于原始字节的,在这个抽象之上,可以进一步构建更方便的接口。我们尝试使用一个文件拷贝的样例,来学习写入的方式,这里除了刚才使用的os包,还是用了io包,最终将显示一共拷贝了多少字节。改代码执行后将生成一个为空的sample.txt文件。

2023-01-29 17:06:00 298

原创 7.2 什么是Go语言中的管道Channel

为了解决与Groutines间的通讯问题,Go中提供给了管道Channel。Channel有点像是Linux系统的双向通讯管道,既可以发送消息,也可以接受消息。管道需要明确处理的数据类型,也就是在声明管道时必须还要声明类型。})

2023-01-29 08:00:00 155

原创 7.1 Go语言中什么是Goroutines

程序运行后,虽然mian函数和ready函数中都print了开始执行的语句,但是很明显,在Goroutine内的函数并没有执行完成。所以我们为了更精准的控制Goroutine的并发,需要使用Channel进行控制。我们再通过这个例子看一下,这个例子中,main函数需要等待2秒,而Goroutine内执行的函数则需要等待5秒。上面的示例中,我们在主函数刻意的等待了3秒,如果没有这3秒会发生什么呢?与普通函数类似,我们调用Goroutines时只需要在函数前加上go关键字。

2023-01-28 08:00:00 25

原创 从Notion迁移至语雀的图片问题

从2013年创业开始,一直在寻求一款团队内部的知识共享平台,从早期自建Mediawiki、Remine再到后来的Teakki,几经辗转,最后终于将全部的知识共享移动到语雀上,目前语雀的功能几乎满足了团队协作中的全部需求,从最基本的基于Markdown文档共享、编辑、历史版本,再到PlantUML时序图绘制能力,再到画板,完美覆盖了原有全部知识体系软件的功能。第六,此时你应该可以在浏览器中看到完整的文档,你需要做的需要全选后复制,直接粘贴到你语雀的文档后,图片就会正常的显示了。

2022-11-28 10:19:43 499

原创 6.4 Go语言中的空接口

空接口即interface{},也就是其中并没有对任务方法进行描述,既然没有约束,那么任务对象都满足空接口,简言之,空接口就是通配符。

2022-11-26 09:49:55 35

原创 6.4 Go语言中的空接口

空接口即interface{},也就是其中并没有对任务方法进行描述,既然没有约束,那么任务对象都满足空接口,简言之,空接口就是通配符。

2022-11-26 09:47:20 46

原创 6.3 利用Go语言接口进行Mock单元测试

首先我们先定义一个接口,定义接口的目的是能让我们的Mock结构体生效。

2022-11-25 08:33:05 108

原创 6.2 如何理解Go语言中的接口

深入理解Go语言接口与传统语言中类的区别。

2022-11-24 20:22:16 208

原创 6.1 Go语言中接口使用样例

正如前文提到,Go语言并没有类的定义,接口可以说Go语言最接近于类的实现方式,但是更轻量。对于接口的学习,如果从原理层面理解学习起来比较慢,所以建议先从代码使用维度进行理解,最终回归到原理层面加深理解。

2022-11-23 20:00:00 228

原创 5.5 Go语言中的类型转换

本文介绍Go语言常用的类型转换方式。

2022-07-29 08:00:00 68

原创 5.4 Go语言中自定义类型与结构体(Struct)

Go语言是面向对象语言吗?本节将介绍Go语言中自定义类型与结构体的使用方法。

2022-07-28 08:00:00 110

原创 5.3 Go语言中构造函数与复合声明(Constructors and composite literals)

本节将重点介绍构造函数和复合声明的使用方法

2022-07-27 08:00:00 144

原创 5.2 Go语言中的内存分配

本节主要对Go语言中内存主动分配的方法进行讲解和比较。

2022-07-25 21:42:30 118

原创 5.1 Go语言中的指针

从本节开始讲进入Go语言的进阶课程。Go语言中仍然有指针,但是没有指针运算,所以不同于C语言指针,更像是引用。Go语言调用函数时,是传递的值,所以为了提高效率,仍然保留指针。

2022-07-25 21:41:17 254

原创 4.6 使用第三方Go Modules

本节讲通过Go语言中Gin框架的使用介绍如何在Go项目中引用第三方包来加速项目开发。

2022-07-22 08:00:00 293

原创 4.5 使用Go Modules自定义模块

如何使用Go Modules定义模块,摆脱路径的约束。

2022-07-21 08:00:00 484

原创 4.4 Go语言中的单元测试

单元测试是为了帮助开发人员检测逻辑是否正确的重要手段,本节主要介绍Go语言中如何实现单元测试。

2022-07-20 08:00:00 162

原创 4.3 Go语言包(Packages)文档

代码内文档是代码完成的重要组成部分,本节主要介绍Go语言中如何写文档。

2022-07-19 08:00:00 82

原创 4.2 Go语言中包(Packages)的命名

本节介绍Go语言包的命名并继续使用示例讲述包名与目录的关系。

2022-07-18 08:00:00 1203

原创 4.1 Go语言中包(Packages)基础知识

本章开始介绍Go语言的包和模块的使用方法。

2022-07-17 20:00:00 198

原创 3.8 Go语言中函数可变参数(Variadic Parameter)

我们经常在Go中看到这种方式,首先三个点的英文是Ellipsis,翻译成中文叫做“省略”,可能各位看到这个词就比较好理解三个点的作用了。在不同的位置上有不同的作用,比如在上述数组的定义中,省略了数组长度的声明,而是根据数组初始化值来决定。在Go语言中,也有类似的实现方式,只不过Go中只能实现类似*args的数组方式,而无法实现**kwargs的方式。在Python中,在函数参数不确定数量的情况下,可以使用如下方式动态在函数内获取参数,args实质上是一个list,而kwargs是一个dict。...

2022-07-16 20:00:00 235

原创 3.7 Go语言中的异常处理(Panic和recovering)

本节主要讲解Go语言中的异常处理,Go语言中并没有try...catch机制,需要通过panic()和recover()机制实现。

2022-07-13 08:00:00 363

原创 3.6 Go语言函数的延迟调用(Deferred Code)

本篇重点介绍Go语言中函数的延迟调用,可以帮助开发人员优化代码结构,并进行一场处理。

2022-07-12 08:00:00 93

原创 3.5 Go语言中将函数作为值使用

Go语言中可以将函数作为值使用,可以帮助开发人员构建出回调函数。

2022-07-11 20:31:19 93

原创 3.4 Go语言中变量作用域(Scope)

Go语言中变量的作用域。

2022-07-11 20:29:51 85

原创 3.3 Go语言中的main函数和init函数

本节主要讲述Go语言中的main函数和init函数

2022-07-07 08:00:00 231

原创 3.2 Go语言中的匿名函数

本节主要讲述Go语言中匿名函数的使用方法

2022-07-06 08:00:00 96

原创 3.1 Go语言中的函数与方法

本节开始讲介绍Go语言函数的使用方法,本节主要讲述基本使用方法。

2022-07-05 08:00:00 209

原创 2.10 Go语言中的注释、关键字、内置函数和操作符

本节主要讲解Go语言基础知识中的注释、关键字、内置函数和操作符的知识,适当记忆就可以,如果忘了回来查查就好。

2022-07-04 12:00:00 74

原创 2.9 Go语言中的Switch

本节主要讲述Go语言控制结构中switch的使用方法。

2022-06-30 06:59:30 446

原创 2.8 Go语言中的for循环, break和continue

本节讲述Go语言中的控制结构for使用方法。

2022-06-30 06:58:28 130

原创 2.7 Go语言中的if-else

本节开始讲解Go语言中的控制结构,首先是if else

2022-06-30 06:57:09 61

原创 2.6 Go语言中的Map

Go语言中的哈希Map的使用方法

2022-06-25 08:57:30 40

原创 2.5 Go语言中的切片(Slice)

本节讲解Go语言切片(Slice)的使用方法

2022-06-25 08:56:18 283

原创 2.4 Go语言中的数组(Array)

Go语言中数组的使用方法

2022-06-23 21:56:09 104

空空如也

空空如也

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

TA关注的人

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