golang
文章平均质量分 75
kingeasternsun
向linus致敬!
展开
-
golang cache 源码学习
github源码地址func newCacheWithJanitor(de time.Duration, ci time.Duration, m map[string]*Item) *Cache { c := newCache(de, m) // This trick ensures that the janitor goroutine (which--granted it原创 2017-03-03 14:43:24 · 976 阅读 · 0 评论 -
golang 正则匹配regexp接口实战学习
总览如果不熟悉正则表达式的语法的话,可以执行下面命令:go doc regexp/syntax联系代码package mainimport ( "fmt" "regexp")func expandTest() { pat := `(((abc.)def.)ghi)` reg := regexp.MustCompile(pat) fmt.Println(reg原创 2017-10-12 08:55:09 · 8443 阅读 · 0 评论 -
golang 1.7之后高级测试方法之子测试,子基准测试(subtest sub-benchmarks)
介绍在go1.7之后,testing包T和B的引入了一个Run方法,用于创建subtests 和 sub-benchmarks. subtests 和 sub-benchmarks可以让开发者更好的处理测试中的失败,更好的控制运行哪个测试用例,控制并行测试操作,测试代码更加简洁和可维护性更强。Table-driven tests 基础首先我们先讨论下Go中常见的测试代码编写方式。一系列相关的测试校验原创 2017-10-12 08:57:47 · 4095 阅读 · 0 评论 -
go-kit 上手之example stringsvc2 添加日志和监控
日志添加instrument对于Histograms和Summary的区别主函数错误总结用logMiddleware和instrumentingMiddleware对svc进行封装label misss errorinconsistent label cardinality查看metrics结果结果分析thread数count接口返回结果的统计接口uppercase 和cou原创 2017-10-20 13:07:30 · 3082 阅读 · 1 评论 -
golang bolt库操作手册
打开数据库TransactionsRead-write transactionsRead-Only transactionsBatch read-write transactions手动控制transaction使用 buckets使用keyvaluebucket自动递增整数迭代便利keysprefix scans范围搜索ForEach嵌套 buckets今天介绍的库bo原创 2017-11-24 13:52:10 · 7847 阅读 · 0 评论 -
Rust和golang之结构体
Rust创建元祖结构体类单元结构体方法写入方法关联函数golang结构体声明匿名结构体嵌套匿名域方法空结构体Rust创建Rust 定义结构体也是以struct关键字开头#[derive(Debug)]struct Rectangle { length:u32, width:u32, user:String,}上面我们定义了结构体Rectangle,原创 2017-12-22 14:02:25 · 1570 阅读 · 0 评论 -
Rust和golang之字符串
Rust赋值取子串golang赋值取子串拼接UTF-8原创 2017-12-22 11:23:00 · 2907 阅读 · 0 评论 -
基于golang从头开始构建基于docker的微服务实战笔记
参考博文part 1 利用gRPC protobuf定义服务part 2 - Docker and go-microGo-micropart 3 - docker-compose and datastoresPart 4 - Authentication with JWTJWTUser-serviceconsignment-cliconsignment-server原创 2018-01-17 15:11:57 · 8695 阅读 · 0 评论 -
uber zap logger使用指南
zap logger项目地址 go.uber.org/zapNewDevelopment和NewProduction区别zap.NewDevelopment() 包含代码中文件信息2018-01-18T15:40:05.991+0800 INFO tool/zaplog.go:83 to sugar failed to fetch URLurlhttp://example.c原创 2018-03-08 09:08:31 · 13144 阅读 · 0 评论 -
你可能不知道的关于golang 的10件事情
匿名结构体命令行 go doc在同一个channel上进行读写操作利用close来向其他goroutine广播利用nil通道的特性后记原创 2017-07-06 15:05:17 · 1383 阅读 · 0 评论 -
gorilla/sessions 学习笔记
简单样例多session的处理复杂结构数据key的更换原创 2017-03-29 09:53:35 · 4022 阅读 · 0 评论 -
《Manning.Go.Web.Programming.2016.7》之gob
具体参见 https://golang.org/pkg/encoding/gob/#Decoder.DecodeValue基本用法结构体中的成员要时可导出的,也就是说首字母时大写。编码的时候gob.NewEncoder定义一个编码器,然后使用.Encode方法对数据进行编码,传入Encode的参数为结构体的值或地址。解码的时候,gob.NewDecoder得到解码器,然后调用.Decode对数据进行原创 2017-03-18 15:33:49 · 962 阅读 · 0 评论 -
《Manning.Go.Web.Programming.2016.7.pdf》之form
HTML forms and GoPOST请求发送的键值对数据的格式是由HMTL form的content type指定的。在html中通过enctype指定如下:<form action="/process" method="post" enctype="application/x-www-form-urlencoded"><input type="text" name="first_name原创 2017-03-20 14:36:24 · 631 阅读 · 0 评论 -
《Packt.Mastering.Go.Web.Services.2015.4.pdf》之Handling our API versions
利用gorillamux区分数据类型利用jas特性路径中添加id获取请求的值利用gorilla/mux区分数据类型"github.com/gorilla/mux"func handleVersion(w http.ResponseWriter, req *http.Request) { fmt.Fprintf(w, "hi, this is an http verison")原创 2017-03-27 14:13:23 · 657 阅读 · 0 评论 -
《Manning.Go.Web.Programming.2016.7》笔记之文件服务器FileServer和cookie
CookieFileServer原创 2017-03-15 10:11:34 · 569 阅读 · 0 评论 -
《Go in Action 2015.11.pdf》之Go’s type system
InterfaceType embedding原创 2017-03-25 14:33:25 · 876 阅读 · 0 评论 -
golang通道中传递slice数据的入坑经验
背景错误代码原因分析修改方案1修改方案2原创 2017-06-05 09:51:13 · 3901 阅读 · 1 评论 -
《Go in Action 2015.11.pdf》之Conncurrency patterns
channelsignalgolang原创 2017-03-30 10:41:07 · 716 阅读 · 0 评论 -
《Go in Action 2015.11.pdf》之6.4.1 Atomic functions
利用atomic递增ChannelsUnbuffered channels原创 2017-03-29 18:13:18 · 607 阅读 · 0 评论 -
go-kit 上手之example stringsvc3 通过代理实现分布式处理
使用的包main运行结果代理中间件stringsvc3没有完全按照官网中stringsvc3的写法,而是在stringsvc2的基础上增加了proxy.go 主要就是给uppercase增加了代理中间件,主要步骤分三步: 1)向特定地址代理服务器发送请求的client的编码和解码函数。 2)生成向特定地址代理服务器发送请求的client。 3)用client配合load原创 2017-10-30 08:52:16 · 3514 阅读 · 0 评论