GraphQL 最初于 2012 年在 Facebook 开发,作为针对动力不足的移动设备的更好的数据获取解决方案,GraphQL 于 2015 年开源。作为一种为灵活性而设计的 API 技术,GraphQL 是 API 的开发人员和消费者以及他们背后的组织的强大推动者。Gra...
作为一个长期从事Java开发的人员,我痴迷于null检查和处理null值。在golang中,故事有些不同。在这篇文章中,我将尝试描述在golang中如何使用nil和零值。 非空和空类型 在go中类型可以是空或非空。 非空类型永远不能为nil,并且永远不会使您导致 nil-pa...
在中,eof是指文件结尾错误,是go语言中最重要的错误变量,存在于io包中,用于表示输入流的结尾。因为每个文件都有一个结尾,所以“io.eof”很多时候并不能算是一个错误,它更重要的是表示一个输入流结束了。 本教程操作环境:windows7系统、GO 1.18版本、Dell G...
realize是一个go工具,专注于加快和改善开发人员的工作流程,自动化用户的工作流程,集成第三方的其他工具,定义自定义cli命令,并在每次更改时重新加载项目,而不必停止编写代码;执行“go get github.com/tockins/realize”命令即可安装realize...
本篇文章带大家聊聊中的限流漏桶和令牌桶库,介绍令牌桶和漏桶的实现原理以及在实际项目中简单应用。 为什么需要限流中间件? 在大数据量高并发访问时,经常会出现服务或接口面对大量的请求而导致数据库崩溃的情况,甚至引发连锁反映导致整个系统崩溃。或者有人恶意攻击网站,大量的无用请求出现会...
本篇文章带大家初步了解中的goroutine和channel,希望对大家有所帮助! Go 语言的 CSP 并发模型的实现包含两个主要组成部分:一个是 Goroutine,另一个是 channel。本文将会介绍它们的基本用法和注意事项。 Goroutine Goroutine 是...
区别:1、一个线程可以多个协程,一个进程也可以单独拥有多个协程;2、线程是同步机制,而协程则是异步;3、协程能保留上一次调用时的状态,线程不行;4、线程是抢占式,协程是非抢占式的;5、线程是被分割的cpu资源,协程是组织好的代码流程,协程需要线程来承载运行。 本教程操作环境:w...
gob是golang包自带的一个数据结构序列化的编码/解码工具,编码使用encoder,解码使用decoder。gob使用io.writer 接口,通过newencoder()函数创建encoder对象通过调用encode()方法实现编码操作;使用io.reader接口,通过ne...
的好处:1、可直接编译成机器码,不依赖其他库;2、静态类型语言,但是有动态语言的感觉,写起来的效率很高;3、语言层面支持并发;4、内置runtime,支持垃圾回收;5、简单易学;6、内置了大量的库,特别是网络库非常强大;7、内置强大的工具;8、跨平台编译;9、内嵌c支持,可利用现...
“go test”是测试命令,作用是对编写的程序进行测试;这种测试是以代码包为单位的。“go test”命令会自动读取源码目录下面名为“*_test.go”的内含若干测试函数的源码文件,测试函数一般是以“test”为名称前缀并有一个类型为“testing.t”的参数声明的函数。 ...

我的博客

人生若只如初见,何事秋风悲画扇。