抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

制作一个简易的中间件架构

为何需要中间件我们不应该把业务逻辑和非业务逻辑揉在一起。非业务逻辑如打印日志、计时等。因为如果我们需要一个新的日志系统,而我们打印日志的逻辑杂揉在每个handler中,那我们就得修改每个handler,费时费力且不明智。 中间件就是一种剥离非业务逻辑的方法。 原理我们可以使用函数闭包来轻松实现剥离业务逻辑和非业务逻辑。 假设我们的业务就是以各种姿势处理字符串然后打印。如处理成===str==...

Golang内存对齐

Golang内存对齐Cpu要想读取数据,需要通过 地址总线 把地址传输给内存。内存准备好数据输出到 数据总线 ,交给CPU。 每根地址总线能表示一位,8根地址总线就能表示8位二进制数,即256个地址。因为表示不了更大的地址,所以就用不了更大的内存。 每次操作一字节太慢,那就加宽数据总线,要想一次操作一字节就至少需要32位数据总线。8字节就64位。这里每次操作的字节数就是所谓的 机器字长 。...

Golang gui 编程笔记

基本结构 初始化 用户设置 创建主窗口 win := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) 设置窗口属性 win.SetTitle("gtk go") win.SetSizeRequest(400, 320) 创建容器控件(固定布局、任意布局) layout := gtk.NewFixed() 布局添加到窗口...

Golang提高

go工具使用 go <command> [arguments] build, 编译 install,区别与build,install会编译后将输出文件打包成库放在pkg下 fmt,把所有代码标准化/格式化编码风格 test,运行当前包目录下的tests 一般以XXX_test.go位文件名 Test写法 每个test文件必须引入testing test文件下的每一个te...

golang操作 mgov2篇

打开mongo123456789101112import( "gopkg.in/mgo.v2") url:="mongodb://localhost:27017" // 不登录mongo的 url:="mongodb://root:password@localhost:27017/登录的用户名" // 登录mongo的 session,err:=mgo.Dial(url) defer s...

Golang交叉编译

交叉编译所谓交叉编译就是在一个平台生成另一个平台的可执行文件。 通过go tool dist list查看支持情况 步骤: 设置目标平台以win->linux为例set GOOS=linux 设置目标的GPUset GOARCH amd64 go build 实战1.生产可执行文件 12// 指定目标环境CGO_ENABLED&#x...

Golang基础

非零基础笔记,掌握c的基础上记录 GO mod的使用1234go mod initgo mod tidy"当然要设置好代言""https://goproxy.io" 基本1234567891011package mainimport "fmt" //import了就必须使用// 不用写;func main(){ ...