快速排序 快速排序思路 快速排序通过分支法的思想,从一个数组中选取一个基准元素pivot,把这个数组中小于pivot的移动到左边,把大于pivot的移动到右边。然后再分别对左右两边数组进行快速排序。 双边循环法 思路 设…
分类:Go
go 学习笔记之万万没想到宠物店竟然催生出面向接口编程?
到底是要猫还是要狗 在上篇文章中,我们编撰了一则简短的小故事用于讲解了什么是面向对象的继承特性以及 Go 语言是如何实现这种继承语义的,这一节我们将继续探讨新的场景,希望能顺便讲解面向对象的接口概念. 为了照顾到没有看过…
Go 回答之如何阅读 Go 源码
我的知乎回答,问题是关于如何阅读 Go 源码。地址。胡扯了些自己的想法。 Go 的源码在安装包的 src/ 目录下。怎么看它的源码呢?直接看吧!没人教的情况下,只能自己撸了。当然,这种内容一般也不会有人教。 怎么撸? G…
压测工具如何选择? ab、locust、Jmeter、go压测工具【单台机器100w连接压测实战】
本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter、go实现的压测工具、云压测),对比这些压测工具,教大家如何选择一款适合自己的压测工具,本文还有两个压测实…
[系列] - go-gin-api 规划目录和参数验证(二)
概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧。 规划目录结构 ├─ g…
Bytom Dapp 开发笔记(三):Dapp Demo前端源码分析
本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案。 储蓄分红合约简述 为了方便理解,这里简单说说储蓄分红合约的…
Go语言HTTP服务最佳实践(译)
自从go语言r59版本(一个1.0之前的版本)以来,我一直在写Go程序,并且在过去七年里一直在Go中构建HTTP API和服务. 多年来,我编写服务的方式发生了变化,所以我想分享今天如何编写服务 – 以防模式…
单元测试在 golang 中的实践
单元测试是什么? 首先需要明确的就是,单元是什么?是一个函数?一个接口?还是一个模块? 这个可能每个人心中都用不同的定义。我比较赞同观点是:单元是指一段逻辑。 因此,单元测试就是对一段代码逻辑的正确性进行校验进行测试 单…
Golang 下载文件
这里使用net/http下载文件,可以设置Content-Type(具体参考)告诉客户端返回的内容类型实际上是什么,实现不同方式的文件的下载。 示例 package main import ( "fmt" "io/iou…
Go 编程: 快速生成自签名证书与双向认证(mTLS)
原文链接: https://www.gitdig.com/genera… 自签名证书双向认证大量用于各类网络集群项目中,例如 Kubernetes. 要实现服务间的证书双向验证,当然前提是要了解证书双向验证原…
[系列] - 使用 go modules 包管理工具(一)
概述 我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的。 为什么是开箱即用,它会集成哪些功能? 以上功能点,都是常用的,后期可能还会增加。 废话不多说,咱们开始吧。 创建一个项目,咱们首先…
Go语言的协程池 ,优化实现自动扩容
Go语言的协程池 , 节省内存 , 减少GC压力 项目地址:https://github.com/letsfire/factory.git 安装 go get github.com/letsfire/factory 用法…