golang

golang

【聘】GO语言开发15-30K

回复

招聘应聘X244277828 回复了问题 • 1 人关注 • 2 个回复 • 115 次浏览 • 13 小时前 • 来自相关话题

方法理解问题:ioutil.NopCloser

有问必答lrita 回复了问题 • 1 人关注 • 1 个回复 • 69 次浏览 • 1 天前 • 来自相关话题

[广州坏猴子科技] 招聘中高级 golang 开发工程师/技术组长(base 广州天河)

招聘应聘bmkcrypto 发表了文章 • 1 个评论 • 169 次浏览 • 2019-03-06 17:32 • 来自相关话题

滴滴招golang开发工程师(长期有效20k-50k)

招聘应聘luw2007 回复了问题 • 7 人关注 • 4 个回复 • 2377 次浏览 • 2019-03-05 09:35 • 来自相关话题

Golang之变量去哪儿?

文章分享Stefno 发表了文章 • 1 个评论 • 156 次浏览 • 2019-03-01 20:18 • 来自相关话题

Go指针复制问题

有问必答qiyin 回复了问题 • 6 人关注 • 7 个回复 • 3518 次浏览 • 2019-03-01 15:12 • 来自相关话题

19/2/11 [北京望京 映客直播APP招聘] Golang工程师 、Golang基础架构开发工程师

招聘应聘sinksmell 回复了问题 • 9 人关注 • 10 个回复 • 975 次浏览 • 2019-02-27 21:42 • 来自相关话题

GoCN每日新闻(2019-02-25)

回复

每日新闻smallfish1 发起了问题 • 1 人关注 • 0 个回复 • 3537 次浏览 • 2019-02-25 09:47 • 来自相关话题

关于go的最热门问题合集

文章分享lintao1999 发表了文章 • 0 个评论 • 465 次浏览 • 2019-02-21 15:48 • 来自相关话题

[上海-浦东软件园][PPLabs 公司][招聘 Web 后端开发工程师][14+月薪]

招聘应聘mashoushan1989 发表了文章 • 2 个评论 • 272 次浏览 • 2019-02-18 14:59 • 来自相关话题

Golang之轻松化解defer的温柔陷阱

文章分享Stefno 发表了文章 • 0 个评论 • 279 次浏览 • 2019-02-15 18:04 • 来自相关话题

reflect方法疑问

有问必答yet 回复了问题 • 2 人关注 • 1 个回复 • 198 次浏览 • 2019-02-12 14:13 • 来自相关话题

[上海-浦东软件园][PPLabs 公司][招聘 Web 后端开发工程师][14+月薪]

招聘应聘mashoushan1989 发表了文章 • 0 个评论 • 205 次浏览 • 2019-02-12 10:47 • 来自相关话题

GoCN每日新闻(2019-02-11)

回复

每日新闻smallfish1 发起了问题 • 1 人关注 • 0 个回复 • 3474 次浏览 • 2019-02-11 11:01 • 来自相关话题

go pprof samples 时间大于 Duration 是为啥?是因为估算的不准么?

有问必答qiyin 回复了问题 • 2 人关注 • 1 个回复 • 266 次浏览 • 2019-02-08 18:03 • 来自相关话题

条新动态, 点击查看
astaxie

astaxie 回答了问题 • 2016-10-10 18:35 • 28 个回复 不感兴趣

大家推荐哪种golang包管理方式?

赞同来自:

我们目前项目中使用的是godep,但是我最近尝试迁移到glide里面来,两个的功能都差不多,但是glide更强大一点,而且是Go1.5 vendor目录支持之后出来的,所以我还是比较推荐用这个。

这里列出来一些目前支持vendor的工具

* [manul... 显示全部 »
我们目前项目中使用的是godep,但是我最近尝试迁移到glide里面来,两个的功能都差不多,但是glide更强大一点,而且是Go1.5 vendor目录支持之后出来的,所以我还是比较推荐用这个。

这里列出来一些目前支持vendor的工具

* [manul](https://github.com/kovetskiy/manul) - Vendor packages using git submodules.
* [Godep](https://github.com/tools/godep)
* [Govendor](https://github.com/kardianos/govendor)
* [godm](https://github.com/hectorj/godm)
* [vexp](https://github.com/kr/vexp)
* [gv](https://github.com/forestgiant/gv)
* [gvt](https://github.com/FiloSottile/gvt) - Recursively retrieve and vendor packages.
* [govend](https://github.com/govend/govend)
* [Glide](https://github.com/Masterminds/glide) - Manage packages like composer, npm, bundler, or other languages.
* [Vendetta](https://github.com/dpw/vendetta)
* [trash](https://github.com/rancher/trash)
* [gsv](https://github.com/toxeus/gsv)
* [gom](https://github.com/mattn/gom)
name5566

name5566 回答了问题 • 2016-10-12 11:36 • 12 个回复 不感兴趣

golang有没有好的开源游戏框架

赞同来自:

> 使用 Leaf 已知的上线项目:
> * 2014 年,某手游(棋牌)项目上线
> * 2016 年,某 H5 手游项目上线
> * 2016 年,某卡牌手游项目上线
> 正在研发项目 N 个,已知情况 N >= 4

... 显示全部 »
> 使用 Leaf 已知的上线项目:
> * 2014 年,某手游(棋牌)项目上线
> * 2016 年,某 H5 手游项目上线
> * 2016 年,某卡牌手游项目上线
> 正在研发项目 N 个,已知情况 N >= 4

来自:https://github.com/name5566/leaf/wiki
leoliu

leoliu 回答了问题 • 2016-10-12 13:44 • 35 个回复 不感兴趣

求一些golang的教程,书籍也可以

赞同来自:

《The Golang Programming Language》
《Golang 学习笔记》
《The Golang Programming Language》
《Golang 学习笔记》
yougg

yougg 回答了问题 • 2016-10-14 10:01 • 84 个回复 不感兴趣

大家说说看都用啥写Go

赞同来自:

# IDEA大法好
# 天灭vscode 退软保平安
# 人在做,天在看 中文乱码留祸患
# 界面卡顿天地灭 赶紧卸载保平安
# 诚心诚念IDEA好 JetBrains大法平安保
# 众生皆为IDEA来 现世险恶忘前缘
# 开源为你说真相 教你脱险莫拒绝
# ... 显示全部 »
# IDEA大法好
# 天灭vscode 退软保平安
# 人在做,天在看 中文乱码留祸患
# 界面卡顿天地灭 赶紧卸载保平安
# 诚心诚念IDEA好 JetBrains大法平安保
# 众生皆为IDEA来 现世险恶忘前缘
# 开源为你说真相 教你脱险莫拒绝
# 早日不做软粉,早日获得新生
# 上网搜索“九评纳德拉”
# 有 真 相
sryan

sryan 回答了问题 • 2016-10-13 11:44 • 9 个回复 不感兴趣

golang 如何动态创建struct

赞同来自:

静态语言貌似不能直接实现
可以自己实现个map[string]func(string)interface{}
将要动态生成的结构体的函数注册上去
通过string来调用相应的函数来获取对应的结构体
静态语言貌似不能直接实现
可以自己实现个map[string]func(string)interface{}
将要动态生成的结构体的函数注册上去
通过string来调用相应的函数来获取对应的结构体
astaxie

astaxie 回答了问题 • 2016-10-13 22:04 • 14 个回复 不感兴趣

想用golang写个分布式的监控,大神给点建议

赞同来自:

这个问题很有意思,很多场景设计都会来考虑拉和推两种方案,我分别对拉和推两种的优缺点对比以下,你自己权衡一下,欢迎大家继续补充

## 拉的方案(不写agent)
优点:
- 不需要agent,不需要再部署新的程序

缺点:
- 网络中断的情况下,就无法监控机器... 显示全部 »
这个问题很有意思,很多场景设计都会来考虑拉和推两种方案,我分别对拉和推两种的优缺点对比以下,你自己权衡一下,欢迎大家继续补充

## 拉的方案(不写agent)
优点:
- 不需要agent,不需要再部署新的程序

缺点:
- 网络中断的情况下,就无法监控机器的信息

## 推的方案(agent)
优点:
- 本地运行,在和中控机失去网络连接的时候还是可以继续保存监控数据

缺点:
- 需要部署agent,如果机器多得话将来升级也是比较麻烦

拉取和推送其实大家可以考虑,微博的follow逻辑,直播流里面也有同样的问题,很多场景都会遇到

至于说第二种方案走什么协议,这种程序我建议走tcp协议,HTTP的话相对重了一点。
jinzhu

jinzhu 回答了问题 • 2016-10-19 15:38 • 14 个回复 不感兴趣

2016 年 10 月,当前好用的 ORM 是哪个?

赞同来自:

作为作者,推荐 GORM ;)
作为作者,推荐 GORM ;)
sheepbao

sheepbao 回答了问题 • 2016-10-30 20:16 • 18 个回复 不感兴趣

字符串连接哪一种方式最高效

赞同来自:

```go
package main

import (
"bytes"
"fmt"
"strings"
"time"
)

var way map[int]string
... 显示全部 »
```go
package main

import (
"bytes"
"fmt"
"strings"
"time"
)

var way map[int]string

func benchmarkStringFunction(n int, index int) (d time.Duration) {
v := "ni shuo wo shi bu shi tai wu liao le a?"
var s string
var buf bytes.Buffer

t0 := time.Now()
for i := 0; i < n; i++ {
switch index {
case 0: // fmt.Sprintf
s = fmt.Sprintf("%s[%s]", s, v)
case 1: // string +
s = s + "[" + v + "]"
case 2: // strings.Join
s = strings.Join([]string{s, "[", v, "]"}, "")
case 3: // stable bytes.Buffer
buf.WriteString("[")
buf.WriteString(v)
buf.WriteString("]")
}

}
d = time.Since(t0)
if index == 3 {
s = buf.String()
}
fmt.Printf("string len: %d\t", len(s))
fmt.Printf("time of [%s]=\t %v\n", way[index], d)
return d
}

func main() {
way = make(map[int]string, 5)
way[0] = "fmt.Sprintf"
way[1] = "+"
way[2] = "strings.Join"
way[3] = "bytes.Buffer"

k := 4
d := [5]time.Duration{}
for i := 0; i < k; i++ {
d[i] = benchmarkStringFunction(10000, i)
}
}

```
结果:
```
string len: 410000 time of [fmt.Sprintf]= 426.001476ms
string len: 410000 time of [+]= 307.044147ms
string len: 410000 time of [strings.Join]= 738.44362ms
string len: 410000 time of [bytes.Buffer]= 742.248µs
```
* strings.Join 最慢
* fmt.Sprintf 和 string + 差不多
* bytes.Buffer又比上者快约500倍
ecofast

ecofast 回答了问题 • 2018-02-25 14:00 • 8 个回复 不感兴趣

发现一个非常不错的性能优化的视频

赞同来自:

要点简单小结:

1) Don't use Go, use Assembly --> NO.
2) Don't use Go, use C/C++ --> NO. Go 1.4 的编译速度非常快,后因编译器开始自举,编译速度下降不少,但一直在改... 显示全部 »
要点简单小结:

1) Don't use Go, use Assembly --> NO.
2) Don't use Go, use C/C++ --> NO. Go 1.4 的编译速度非常快,后因编译器开始自举,编译速度下降不少,但一直在改进
3) CGO --> 应审慎地通过 CGO 来使用经由 C/C++ 高度优化过的代码库(如加解密算法),且每次 CGO 调用约有 150ns 的额外开销
4) Go 的编译器优化水准一直在提升,通常来说,新版本的 Go 能生成更优化的机器码
5) 在 Go 中作 Benchmark 非常容易,能用它来很方便地分析 CPU 及内存分配等性能热点
6) pprof 是很实用的性能剖析工具
7) Go 的 GC 实现一直在改进,而且改进明显
8) 不应在循环里作频繁的内存分配等工作 --> 耗时且加重 GC 负担,可善用 bytes.Buffer 和 sync.Pool 等设施
9) 避免内存碎片 --> 逃逸分析对性能的影响
10) 锁本身并不慢,慢的是竞争 --> sync/atomic 在某些场合是好东西
11) hashmap 查找虽快(O(1) 的时间复杂度),但元素数量对查找速度有明显影响 --> map 的初始容量、粒度问题
九命猫

九命猫 回答了问题 • 2016-10-31 10:52 • 5 个回复 不感兴趣

go中如何连接两个slice

赞同来自:

```go
append([]int{1, 2}, []int{3, 4}...)
```
```go
append([]int{1, 2}, []int{3, 4}...)
```
astaxie

astaxie 回答了问题 • 2016-11-13 13:29 • 4 个回复 不感兴趣

golang vendor路径问题

赞同来自:

刚和 @viktor1992 看了一下源码,看到这个vendor的函数

```
// vendoredImportPath returns the expansion of path when it appears in parent.
// If pare... 显示全部 »
刚和 @viktor1992 看了一下源码,看到这个vendor的函数

```
// vendoredImportPath returns the expansion of path when it appears in parent.
// If parent is x/y/z, then path might expand to x/y/z/vendor/path, x/y/vendor/path,
// x/vendor/path, vendor/path, or else stay path if none of those exist.
// vendoredImportPath returns the expanded path or, if no expansion is found, the original.
func vendoredImportPath(parent *Package, path string) (found string) {
if parent == nil || parent.Root == "" {
return path
}
```

这个里面有一个概念parent,我们可以看到Go官方关于vendor的文档设计的时候都有这个,也就是说你的源码要有一个包存起来,我们看一下这个实验里面的代码。

首先`a.go`放在了gopath低目录,也就是他的parent是nil,所以这个返回了`wer`,而这个包又不在gopath下面,所以第一个报错了。

第二个你创建了test目录,那么他的parent就是test,那么就会去找test/vendor/path和vendor/path下面找,所以vendor不管你放在test下面还是gopath下面都是可以找到的。
傅小黑

傅小黑 回答了问题 • 2017-06-06 17:18 • 7 个回复 不感兴趣

Go指针复制问题

赞同来自:

```go
for k, r := range *rr {
fmt.Printf("%dth r, id: %d, cpu: %f, mem: %f\n", k, r.ID, r.CPU, r.MEM)
rs = append(rs, ... 显示全部 »
```go
for k, r := range *rr {
fmt.Printf("%dth r, id: %d, cpu: %f, mem: %f\n", k, r.ID, r.CPU, r.MEM)
rs = append(rs, &r)
}
```

这里的 r 一直是同一个地址的值的,for 循环的每次是覆盖旧的 r,你要用 *rr[k]
voidint

voidint 回答了问题 • 2017-07-25 09:20 • 7 个回复 不感兴趣

有必要设置多个gopath吗?

赞同来自:

我会设置起码2个`GOPATH`。因为`go get`会把代码拉倒第一个`GOPATH`的缘故,我会把第一个`GOPATH`用于存放第三方库,之后的`GOPATH`才是自己的项目,这样会更清晰。
我会设置起码2个`GOPATH`。因为`go get`会把代码拉倒第一个`GOPATH`的缘故,我会把第一个`GOPATH`用于存放第三方库,之后的`GOPATH`才是自己的项目,这样会更清晰。
EasyHacking

EasyHacking 回答了问题 • 2018-02-26 21:54 • 40 个回复 不感兴趣

Go 零基础编程入门教程

赞同来自:

课程持续更新中,欢迎大家持续关注我们课程。
欢迎对课程提建议,也欢迎加Q群一起学习交流:694650181
课程持续更新中,欢迎大家持续关注我们课程。
欢迎对课程提建议,也欢迎加Q群一起学习交流:694650181
chenqinghe

chenqinghe 回答了问题 • 2018-07-31 08:42 • 6 个回复 不感兴趣

忽略 Close() 的 error 是不是安全的呢?

赞同来自:

如果不想忽略可以这样:

```go
func hi()(err error){
f,err:= os.Create("a.txt")
if err!=nil {
return err
}
defer func(){
if ... 显示全部 »
如果不想忽略可以这样:

```go
func hi()(err error){
f,err:= os.Create("a.txt")
if err!=nil {
return err
}
defer func(){
if e:= f.Close();e!=nil {
err = e
}
}()
return nil
}
```

关于规范招聘信息发帖说明

招聘应聘JianShu 回复了问题 • 8 人关注 • 4 个回复 • 3923 次浏览 • 2018-05-30 14:51 • 来自相关话题

Go 零基础编程入门教程

文章分享xicheng 回复了问题 • 91 人关注 • 40 个回复 • 25344 次浏览 • 2018-12-04 09:44 • 来自相关话题

大家是如何处理 golang web 应用静态资源的?

技术讨论astaxie 回复了问题 • 5 人关注 • 1 个回复 • 3953 次浏览 • 2016-10-14 13:08 • 来自相关话题

Python 程序员的 Golang 学习指南(II): 开发环境搭建

文章分享Cloudinsight 发表了文章 • 0 个评论 • 13329 次浏览 • 2016-10-12 15:44 • 来自相关话题

Python 程序员的 Golang 学习指南(I): Go 之初体验

文章分享Cloudinsight 发表了文章 • 3 个评论 • 3866 次浏览 • 2016-10-12 15:27 • 来自相关话题

求一些golang的教程,书籍也可以

有问必答EDDYCJY 回复了问题 • 63 人关注 • 35 个回复 • 11960 次浏览 • 2018-12-24 10:53 • 来自相关话题

golang有没有好的开源游戏框架

技术讨论cye 回复了问题 • 30 人关注 • 12 个回复 • 23858 次浏览 • 2017-08-16 17:23 • 来自相关话题

为什么Go里面大多数的接口返回的是int类型

有问必答negronihe 回复了问题 • 4 人关注 • 3 个回复 • 4507 次浏览 • 2016-10-16 13:06 • 来自相关话题

大家推荐哪种golang包管理方式?

有问必答asdfsx 回复了问题 • 37 人关注 • 28 个回复 • 30682 次浏览 • 2018-03-05 18:50 • 来自相关话题

【聘】GO语言开发15-30K

回复

招聘应聘X244277828 回复了问题 • 1 人关注 • 2 个回复 • 115 次浏览 • 13 小时前 • 来自相关话题

方法理解问题:ioutil.NopCloser

回复

有问必答lrita 回复了问题 • 1 人关注 • 1 个回复 • 69 次浏览 • 1 天前 • 来自相关话题

滴滴招golang开发工程师(长期有效20k-50k)

回复

招聘应聘luw2007 回复了问题 • 7 人关注 • 4 个回复 • 2377 次浏览 • 2019-03-05 09:35 • 来自相关话题

Go指针复制问题

回复

有问必答qiyin 回复了问题 • 6 人关注 • 7 个回复 • 3518 次浏览 • 2019-03-01 15:12 • 来自相关话题

19/2/11 [北京望京 映客直播APP招聘] Golang工程师 、Golang基础架构开发工程师

回复

招聘应聘sinksmell 回复了问题 • 9 人关注 • 10 个回复 • 975 次浏览 • 2019-02-27 21:42 • 来自相关话题

GoCN每日新闻(2019-02-25)

回复

每日新闻smallfish1 发起了问题 • 1 人关注 • 0 个回复 • 3537 次浏览 • 2019-02-25 09:47 • 来自相关话题

reflect方法疑问

回复

有问必答yet 回复了问题 • 2 人关注 • 1 个回复 • 198 次浏览 • 2019-02-12 14:13 • 来自相关话题

GoCN每日新闻(2019-02-11)

回复

每日新闻smallfish1 发起了问题 • 1 人关注 • 0 个回复 • 3474 次浏览 • 2019-02-11 11:01 • 来自相关话题

go pprof samples 时间大于 Duration 是为啥?是因为估算的不准么?

回复

有问必答qiyin 回复了问题 • 2 人关注 • 1 个回复 • 266 次浏览 • 2019-02-08 18:03 • 来自相关话题

为什么gRPC客户端不提供连接池?

回复

技术讨论gositaka 回复了问题 • 8 人关注 • 5 个回复 • 11760 次浏览 • 2019-02-04 17:12 • 来自相关话题

制作了两个关于docker的视频

回复

技术讨论jicg 发起了问题 • 2 人关注 • 0 个回复 • 227 次浏览 • 2019-01-25 10:04 • 来自相关话题

GoCN每日新闻(2019-01-15)

回复

每日新闻smallfish1 发起了问题 • 1 人关注 • 0 个回复 • 3367 次浏览 • 2019-01-15 10:49 • 来自相关话题

golang 怎么并发

回复

有问必答itstudying 回复了问题 • 5 人关注 • 3 个回复 • 755 次浏览 • 2019-01-03 13:20 • 来自相关话题

求一些golang的教程,书籍也可以

回复

有问必答EDDYCJY 回复了问题 • 63 人关注 • 35 个回复 • 11960 次浏览 • 2018-12-24 10:53 • 来自相关话题

Go 零基础编程入门教程

回复

文章分享xicheng 回复了问题 • 91 人关注 • 40 个回复 • 25344 次浏览 • 2018-12-04 09:44 • 来自相关话题

[广州坏猴子科技] 招聘中高级 golang 开发工程师/技术组长(base 广州天河)

招聘应聘bmkcrypto 发表了文章 • 1 个评论 • 169 次浏览 • 2019-03-06 17:32 • 来自相关话题

Golang之变量去哪儿?

文章分享Stefno 发表了文章 • 1 个评论 • 156 次浏览 • 2019-03-01 20:18 • 来自相关话题

关于go的最热门问题合集

文章分享lintao1999 发表了文章 • 0 个评论 • 465 次浏览 • 2019-02-21 15:48 • 来自相关话题

[上海-浦东软件园][PPLabs 公司][招聘 Web 后端开发工程师][14+月薪]

招聘应聘mashoushan1989 发表了文章 • 2 个评论 • 272 次浏览 • 2019-02-18 14:59 • 来自相关话题

Golang之轻松化解defer的温柔陷阱

文章分享Stefno 发表了文章 • 0 个评论 • 279 次浏览 • 2019-02-15 18:04 • 来自相关话题

[上海-浦东软件园][PPLabs 公司][招聘 Web 后端开发工程师][14+月薪]

招聘应聘mashoushan1989 发表了文章 • 0 个评论 • 205 次浏览 • 2019-02-12 10:47 • 来自相关话题

Go语言开发调试系列博文3篇

文章分享nevermosby 发表了文章 • 1 个评论 • 339 次浏览 • 2019-01-31 12:35 • 来自相关话题

[上海-浦东软件园][PPLabs 公司][招聘 Web 后端开发工程师][14+月薪]

招聘应聘mashoushan1989 发表了文章 • 2 个评论 • 316 次浏览 • 2019-01-29 15:01 • 来自相关话题

Go优雅重启Web server示例-讲解版

文章分享cookedsteak 发表了文章 • 0 个评论 • 418 次浏览 • 2019-01-22 23:44 • 来自相关话题

[上海][PPLabs][分布式加密云存储项目][招聘golang工程师/web后端工程师]

招聘应聘mashoushan1989 发表了文章 • 1 个评论 • 210 次浏览 • 2019-01-16 11:39 • 来自相关话题

【广州坏猴子科技】招聘初级c++/golang开发工程师

招聘应聘bmkcrypto 发表了文章 • 5 个评论 • 282 次浏览 • 2019-01-08 16:34 • 来自相关话题

Go 语言 Excel 文档类库 excelize 发布 1.4.1 版本

每日新闻xuri 发表了文章 • 5 个评论 • 391 次浏览 • 2019-01-03 12:43 • 来自相关话题

一个完整的go 日志组件

开源程序udbjqrmna 发表了文章 • 0 个评论 • 317 次浏览 • 2018-12-29 14:13 • 来自相关话题

【北京】美餐网寻找命中注定的 Geek 小哥哥,欢迎大家翻牌~~

招聘应聘recruiter 发表了文章 • 0 个评论 • 239 次浏览 • 2018-12-25 10:55 • 来自相关话题

用jsonrpc2连接gtk程序和go程序

开源程序rocket049 发表了文章 • 0 个评论 • 183 次浏览 • 2018-12-15 11:13 • 来自相关话题