gin 源码阅读(1) - gin 与 net/http 的关系

gin 是目前 Go 里面使用最广泛的框架之一了,弄清楚 gin 框架的原理,有助于我们更好的使用 gin. 这个系列 gin 源码阅读会逐步讲明白 gin 的原理。 gin 概览 想弄清楚 gin, 需要弄明白以下几个问题: request数据是如何流转的 gin框架到底扮演了什么角色 请求从gi ... »

457220157-FTD

利用 uber-go/dig 库管理依赖

利用 uber-go/dig 库管理依赖 github 地址 官方文档 介绍 dig 库是一个为 go 提供依赖注入 (dependency injection) 的工具包,基于 reflection 实现的。 在项目中会涉及到很多对象,它们之间的依赖关系可能是这样的 graph BT; A-->B ... »

Ebiten-纯Golang开发的跨平台游戏引擎

Go语言不是让你玩的啊喂! 昨天跟好基友聊开发的事,他说他等着闲下来的时候就用PYGame写个像那个最近挺火的"文X游X"一样的游戏.(没收广告费啊!) 基友突然嘲笑我:"你家Go是不是只能玩黑底白字啊?" 这能忍吗?为了给广大Golang开发者报仇,我决定去问问度娘. 不编故事了,我们直接进入正题 ... »

go语言游戏服务端开发(三)——服务机制

五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 P2P网络为服务进程间、服务进程与客户端间通信提供了便利,在这个基础上可以搭建服务。 在服务层,通信包可以通过定义协议号来确定该包怎样处理。每个协议号对应一个Processor,Processor定义为一个interface type  ... »

niudanshui

go语言游戏服务端开发(二)——网络通信

五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 一、网络层 网络游戏客户端除了全局登录使用http请求外,一般通过socket长连接与服务端保持连接。go语言的net包提供网络socket长连接相关操作。 对于服务端,一般经历 Listen、Accept两个步骤实现与客户端连接。 f ... »

niudanshui

go语言游戏服务端开发(一)——架构

五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 网络游戏程序分为客户端和服务端。客户端负责图形渲染、交互和一些简单校验处理,服务端负责业务逻辑处理、数据存储。 我们开发一个游戏demo,服务端程序可以是一个单线程的服务进程。它包含网络通信、业务逻辑处理、数据存储。服务端打开网络端口监 ... »

niudanshui

go语言游戏服务端开发(二)——网络通信

一、网络层 网络游戏客户端除了全局登录使用http请求外,一般通过socket长连接与服务端保持连接。go语言的net包提供网络socket长连接相关操作。 对于服务端,一般经历 Listen、Accept两个步骤实现与客户端连接。 func main() { l, err := net.Liste ... »

niudanshui

go实现堆排序、快速排序、桶排序算法

一. 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法。以大堆为例利用堆顶记录的是最大关键字这一特性,每一轮取堆顶元素放入有序区,就类似选择排序每一轮选择一个最大值放入有序区,可以把堆排序看成是选择排序的改进。它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下 ... »

GO语言区块链技术---区块链前导

比特币-简介数字货币银行系统:数字货币,没有现钞,没有银行网点;所有账目公开可查询;货币发行方式分布式的系统:基于P2P网络基于非对称密码学的交易:公钥锁定比特币,私钥解锁区块链作为银行账本 区块链- »

lessons

使用 Go-Ethereum 1.7.2搭建以太坊私有链

目录 [toc] 1、什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球 »

lion.net

Go并发编程--正确使用goroutine

1. 对创建的gorouting负载 1.1 不要创建一个你不知道何时退出的 goroutine 下面的代码有什么问题? 是不是在我们的程序种经常写类似的代码? // Week03/blog/01/01.go package main import ( "log" "net/http" _ "net ... »

WIndows to go安装win10系统到移动硬盘

这个功能我是在傲梅分区助手里发现的。或者说这个功能是把系统在硬盘和分区之间迁移的推广。 傲梅分区助手提供的软件功能非常差,写入windows to go速度特别慢,在Rufus和Windows To »

lingr7

Go语言学习笔记(十三)之结构体struct

19.面对对象1之struct结构体 Go中面向对象是通过struct来实现,struct是用户自定义的类型,首先需要定义struct 1: type User struct { 2: Usernam »

haoqirui

6种白盒测试 - 玲珑go

实例比较6种白盒测试语句覆盖判定覆盖或分支覆盖条件覆盖判定/条件覆盖多重条件覆盖路径覆盖MK2方法:强烈推荐:多重条件覆盖如果程序模块中没有循环,可以考虑路径覆盖例子: public void foo »

linglonggo

go视频提取音频

package main import ( "bytes" "fmt" "log" "os" "os/exec »

brady-wang