• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






张伯雨

学习使人快乐
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页

2017年8月31日

Go的context的问题
摘要: Go的context的问题2017-05-29最近被由context引发的一个bug坑得不轻,所以反思一下Go的context的问题。context是隐式的约束,没有检测如果我们写一个函数,比如:func f(a int, b []byte) { } 我们知道它需要哪些参数,编译器是会帮我做检查的,当我调用f(3, "sdfsdf") 它就会报错。可是如果是context,就变成了一种隐式的约束,... 阅读全文
posted @ 2017-08-31 09:44 张伯雨 阅读(523) 评论(0) 推荐(0)
 
Golang 知识点总结
摘要: 各种类型复制的时候的花费本节标题也可以叫做“各种类型的值的大小” (the sizes of values of all kinds of types),底层可被不同的值共享的数据的大小未被计算。下面的表格中一个 word在32bit操作系统中代表4个字节,在64bit操作系统中代表8个字节,内容基于官方的Go 1.7的编译器。TypeCost Of Value Copying (Value Si... 阅读全文
posted @ 2017-08-31 09:43 张伯雨 阅读(1311) 评论(0) 推荐(0)
 
golang接口三个特性
摘要: 类型和接口因为映射建设在类型的基础之上,首先我们对类型进行全新的介绍。go是一个静态性语言,每个变量都有静态的类型,因此每个变量在编译阶段中有明确的变量类型,比如像:int、float32、MyType。。。比如:type MyInt int var i int var j MyInt变量i的类型为int,变量j的类型为MyInt,变量i、j具有确定的类型,虽然i、j的潜在类型是一样的,但是在没有... 阅读全文
posted @ 2017-08-31 09:43 张伯雨 阅读(313) 评论(0) 推荐(0)
 
[]T 还是 []*T, 这是一个问题
摘要: 全面分析Go语言中的类型和类型指针的抉择目录 [−]副本的创建T的副本创建*T的副本创建如何选择 T 和 *T什么时候发生副本创建最常见的casemap、slice和数组for-range循环channel函数参数和返回值Method Receiver不同类型的副本创建bool,数值和指针数组map、slice 和 channel字符串函数参考文档在编程语言深入讨论中,经常被大家提起也是争论最多的... 阅读全文
posted @ 2017-08-31 09:42 张伯雨 阅读(320) 评论(0) 推荐(0)
 
十条有用的GO技术
摘要: 十条有用的 Go 技术 这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指: 某个应用需要适配一个灵活的环境。你不希望每过 3 到 4 个月就不得不将它们全部重构一遍。添加新的特性应当很容易。许多人参与开发该应用,它应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速的修复。我用了很长的时间学到了这些事情。其中的... 阅读全文
posted @ 2017-08-31 09:41 张伯雨 阅读(556) 评论(0) 推荐(0)
 
JSON 的小技巧
摘要: 有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:",string" 就可以支持了,如果不知道golang的这些小技巧,就要大费周章了。参考文章:http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/临时忽略struct字段临时忽略掉Password字段临时添加额外的字段临... 阅读全文
posted @ 2017-08-31 09:40 张伯雨 阅读(364) 评论(0) 推荐(0)
 
Clean http handlers in Go
摘要: IntroductionFor this blog post we are going to take a look at the http.HandlerFunc type and how we can improve it to make more elegant and clean handlers. Following the idioms of Go and staying compat... 阅读全文
posted @ 2017-08-31 09:40 张伯雨 阅读(239) 评论(0) 推荐(0)
 
Goroutine陷阱
摘要: Go在语言层面通过Goroutine与channel来支持并发编程,使并发编程看似变得异常简单,但通过最近一段时间的编码,越来越觉得简单的东西,很容易会被滥用。Java的标准库也让多线程编程变得简单,但想当初在公司定位Java的问题,发现很多的同学由于没有深入了解Java Thread的机制,Thr 阅读全文
posted @ 2017-08-31 09:38 张伯雨 阅读(506) 评论(0) 推荐(0)
 
golang 1.8 优雅关闭
摘要: // main.go package main import ( "fmt" "log" "net/http" "os" "os/signal" "syscall" "time" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Re... 阅读全文
posted @ 2017-08-31 09:36 张伯雨 阅读(758) 评论(0) 推荐(0)
 
Go性能优化小结
摘要: 1 内存优化 1.1 小对象合并成结构体一次分配,减少内存分配次数 做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go runtime底层也采用内存池,但每个span大小为4k,同时维护一个c 阅读全文
posted @ 2017-08-31 09:34 张伯雨 阅读(11716) 评论(1) 推荐(1)
 
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 37 下一页