Go语言中文网 为您找到相关结果 1090

Godep的基本使用

关于Godep 发现好多golang项目都使用到godep作为包管理的工具,像比较大型的项目,比如kubernetes这种,都是使用的是godep来进行依赖管理操作的了,看了一下有点像maven的感觉,这里记录一下基本的操作。 首先是安装 由于网络的问题,goget的时候有一个包会找不到,网上有好多替代的解决方案,比如说这个 基本的使用 go save 比如说建立了一个基本的项目,就拿beego的示例项目来说。这里又一点要注意,没有使用版本控制的时候,go save是不成功的,会报类似如下的错误: godep: error while inspecting "/Users/Hessen/goworkspace/src/testBee/bapi": directory "/Users/Hess...阅读全文

学习go语言碰到的问题:main redeclared in this block

E:\goapp 是我的GOPATH目录 分别建立了2个文件: hello.go // hello package main import "fmt" func main() { fmt.Println("Hello World! 你好,世界!") } sandbox.go // sandbox package main import ( "fmt" "time" ) func main() { fmt.Println("Welcome to the playground!") fmt.Println("The time is ", time.Now()) } 在liteide运行BR的时候报错了:main redeclared in this block previous declarat...阅读全文

博文 2015-06-17 23:02:23 lz0426001

GO同包内不同文件方法引用问题

问题:GO语言同包内不同文件方法引用在本地LiteIDE中可运行,但在linux环境下报错: 在main.go中引用c2c_admin_base_info.go中GetcsChatCntTrend方法: 本地运行正常,但部署至linux服务器时,报错: 解决方案:将c2c_admin_base_info.go放到包data下 main.go c2c_admin_base_info.go 层级关系: 注:包和package有关系:main包和main函数比较特殊,是程序的入口,其他的包就要和文件夹名字一样(感谢扫盲的GO大牛...阅读全文

博文 2014-10-16 17:00:00 sea_198821

理解Go 1.5 vendor

理解Go 1.5 vendor 七 31 bigwhite技术志 gb, Go, go1.4, Go1.5, GO15VENDOREXPERIMENT, godep, Golang, golang-dev, Google, GOPATH, GOROOT, internal, Package, RussCox, vendor No Comments Go 1.5中(目前最新版本go1.5beta3)加入了一个experimental feature: vendor/。这个feature不是Go 1.5的正式功能,但却是Go Authors们在解决Go被外界诟病的包依赖管理的道路上的一次重要尝试。目前关于Go vendor机制的资料有限,主要的包括如下几个: 1、Russ Cox在Golang-...阅读全文

博文 2015-08-07 09:14:13 bigwhite

go语言exec包调用shell命令

工程中需要用到ffmpeg,想直接用exec包调用shell命令。本来以为很简单,结果折腾了一下午,最后查到了解决方案。 假如之前执行报错的语句为: cmd := exec.Command("echo", "'helloworld!'") out, err := cmd.Output() 那么改为: c := "echo hello world" cmd := exec.Command("sh", "-c", c) out, err := cmd.Output() 即可! 感谢万能的stack overflow reference: https://stackoverflow.com/questions/20437336/how-to-execute-system-command-in-go...阅读全文

博文 2016-08-18 17:00:03 yypnathan

go里面select-case和time.Ticker的使用注意事项

上周末参加Go技术聚会,京东的美女工程师讲到一个select-case和time.Ticker的使用注意事项(真实的应用场景是:在测试收包的顺序的时候,加了个tick就发现丢包了),觉得很有意思,记录一下。 package main import ( "fmt" "runtime" "time" ) func init() { runtime.GOMAXPROCS(runtime.NumCPU()) } func main() { ch := make(chan int, 1024) go func(ch chan int) { for { val := <-ch fmt.Printf("val:%d\n", val) } }(ch) tick := time.NewTicker(1 * t...阅读全文

Go 1.9 sync.Map揭秘

本文为转载,原文链接 在Go 1.6之前, 内置的map类型是部分goroutine安全的,并发的读没有问题,并发的写可能有问题。自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。 本文带你深入到sync.Map的具体实现中,看看为了增加一个功能,代码是如何变的复杂的,以及作者在实现sync.Map的一些思想。 有并发问题的map 官方的faq已经提到内建的map不是线程(goroutine)安全的。 首先,让我们看一段并发读写的代码,下列程序中一个goroutine一直读,一个goroutine一只写同一个键值,即即使读写的键不相同,而且map也没有"扩容"等操...阅读全文

博文 2017-07-29 17:05:12 Kotexy

等待5年,Go 2.0终于要来了!

蛰伏5年,Go Language 2.0 终于要来了!早在今年8月份,Go团队便提出了2.0版本的设计草案,包括两大主题:错误处理和泛型。而今天,团队开发人员发话了:“是时候采取行动了!”Go 1和Go 2主要的区别在于决策的制定——Go 1的诞生是一个小团队的努力,而Go 2将更受其社区的影响。目前在Go 2的提案中,大约有120个未解决的问题被标记为Go 2的提案,每一个问题都与重要的库或语言更改相关,而这些问题通常不能满足当前Go 1的兼容性。开发人员将这些提案分类为Go2Cleanup、NeedsDecision等,以便后续的执行操作。在Go语言的生态中,拥有数以万计的程序员和代码,因此,所有的决策和改变必须谨慎,以免对稳定的生态造成破裂。因此,Go团队认为,需要实施新的提案评估流程...阅读全文

Go 中 defer 的 5 个坑 - 第一部分

> 通过本节的学习以避免掉入基础的 defer 陷阱中 本文只适合想要进阶学习 Golang 的新手阅读,大牛请绕道。 ## #1 -- defer nil 函数 如果一个延迟函数被赋值为 `nil` , 运行时的 [`panic`](https://golang.org/ref/spec#Handling_panics) 异常会发生在外围函数执行结束后而不是 `defer` 的函数被调用的时候。 例子 ```go func() { var run func() = nil defer run() fmt.Println("runs") } ``` 输出结果 ``` runs ❗️ panic: runtime error: invalid memory address or nil poi...阅读全文

博文 2017-12-26 15:11:12 polaris

golang使用vendor目录来管理依赖包

Vendor目录介绍 随着Go 1.5 release版本的发布,vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方案。在Go 1.6之前,你需要手动的设置环境变量GO15VENDOREXPERIMENT=1才可以使Go找到Vendor目录,然而在Go 1.6之后,这个功能已经不需要配置环境变量就可以实现了。 Note,即使使用vendor,也必须在GOPATH中,在go的工具链中,你逃不掉GOPATH的 那么查找依赖包路径的解决方案如下: 当前包下的vendor目录。 向上级目录查找,直到找到src下的vendor目录。 在GOPATH下面查找依赖包。 在GOROOT目录下查找 一些建议 在使用vendor中,给出如下建议: 一个库工程(不包含main的pac...阅读全文

博文 2017-07-10 14:07:20 tcgx

超赞的GO语言设计模式和成例集锦

来自:http://geek.csdn.net/news/detail/100051 Go语言从面世就受到了业界的普遍关注,曾有文章分析,Go是最有可能改变未来IT技术的十大语言之一。本文作者列举了Go语言的设计模式和成例合集,并且还进行了详细的分类。 创建型模式 抽象工厂模式:提供一个接口用于创建相关对象的家族;Builder模式:使用简单的对象来构建复杂的对象;工厂方法模式:一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中;对象池模式:实例化并维护一组相同类型的对象实例;单例模式:限制类的实例,保证一个类只有一个实例。 结构模式 适配器模式:适配另一个不兼容的接口来一起工作;桥接模式:将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立...阅读全文

博文 2016-09-08 06:00:09 Blues1021

诸神之战创客大赛 致精英创业者的一封信

各位精英创业者: 你是否还在为满腹才华无人交流而苦闷?你是否还在为创业好项目无人知晓而忧虑?金秋九月,阿里云创客+诸神之战创客大赛盛大开启,只为精英的你而来! 阿里云创客+诸神之战创客大赛是由阿里云创客+主办,联合国内知名媒体、知名创投机构、数十家国家级园区共同打造的基于“互联网”的精英团队创业大赛。大赛历时4个月(7-10),将于京津、上海、深圳、哈尔滨、长沙、福州、杭州全国7个分赛区同时比拼,同时各分赛区精英更有机会在10.15杭州云栖大会现场路演,与投资人面对面沟通,一展创业者的风采! 1.直击大赛亮点:  精英竞技:精英打造的项目以及团队同台竞技,碰撞出以往创业大赛中不一样的火花。  风投直达:全球知名创投机构齐聚一堂,只为寻找精英中的精英  区域覆盖:...阅读全文

Go语言设计模式实践:迭代器(Iterator)

关于本系列 决定开个新坑。 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题是在程序设计中客观存在的。不管用什么语言,总是要面对和解决这些问题的,只是解决的思路和途径会有所不同。所以我想就以经典的设计模式作为切入点来展开这个系列,毕竟大家对设计模式都很熟悉了,可以避免无中生有想出一些蹩脚的应用场景。 本系列的具体主题会比较灵活,计划主要包括这些方面的话题: Go语言惯用法。 设计模式的实现。特别是...阅读全文

博文 2014-10-31 03:00:01 newgame

go-sql-driver发生invalid connection(bad connection)解决方法讨论

在使用go-sql-driver过程中,有时候我发现会报invalid connection的错误,这个错误产生的原因设置了空闲连接不为0时,客户端拿到连接有可能是已经被服务端关闭了,此时就会发生invalid connection,网上有些解决方案是把空闲连接数设置0,不知道设置为0跟设置为50之类的性能有什么大的区别吗?跪求大神解答...阅读全文

谈谈并发编程中的协程

高并发编程里多线程(进程)的弊端 其实从著名的 C10K 问题的时候, 就谈到了高并发编程时, 采用多线程(或进程)是一种不可取的解决方案, 核心原因是因为线程(或进程)本质上都是操作系统的资源, 每个线程需要额外占用1M或者2M的内存空间, 所以2G内存,能承受的线程数差不多只能到1k这个量级。 而且线程的调度由操作系统调度, 当线程或者进程数到达一定量级的时候, 据有人试验的结果是并发的线程数到达1k以上后, 操作系统基本上就已经不堪重负,调度不过来了。 事件驱动 已知多线程已经无法解决高并发问题, 所以才有了异步IO,事件驱动等概念来解决高并发编程。 很典型的就是 Node.js ,传说中的事件驱动, 其实就是在底层使用了 libuv 然后通过各种回调函数来注册事件, 当事件触发的时候...阅读全文

博文 2015-02-15 18:28:17 YanyiWu

阿里财报:云计算年度营收133亿,季度营收连续12个季度翻番

摘要: 北京时间5月4日晚间,阿里巴巴集团公布2018财年第四季度和全年财报,该季度内(2018年1月至3月底)阿里云营收43.85亿元,同比增长103%;2018财年(2017年4月至2018年3月底)营收133.9亿元,同比增长101%。 北京时间5月4日晚间,阿里巴巴集团公布2018财年第四季度和全年财报,该季度内(2018年1月至3月底)阿里云营收43.85亿元,同比增长103%;2018财年(2017年4月至2018年3月底)营收133.9亿元,同比增长101%。 过去三年,阿里云每个季度以三位数左右的增速在不断扩大自己的市场领先优势。截止2017年上半年,研究机构IDC通过销售、市场等渠道得到的调研数据显示,阿里云在中国云计算IaaS市场份额为47.6%,几乎为市场所...阅读全文

go语言html/template解析问题

最近使用go语言html/template包进行一些静态化工作,发现template对于小于号(左尖括号<)不能正确处理,反复研究,没有弄清楚怎么回事,后来变通了一下,先对模板进行EscapeString编码,格式化以后,再进行UnescapeString编码,问题得到解决;但还是没弄清楚template为什么对单独的小于号(左尖括号<)无法正确格式化,但发现如果左尖括号的右边有一个或多个右尖括号(>),则能正确解析格式化,而template源码包读起来很费解,最终没有弄明白,希望知道的同学能告知原因;贴上我的解决方案,以供参考 package mytemplate import ( "bytes" "html" "html/template" "os" "strconv" "time" )...阅读全文

Go 1.13 中值得期待的特性

Go 1.13 的开发周期在五月初就要结束了,为了准备好未来 Go 2 的新特性,[新的进程](https://blog.golang.org/go2-here-we-come) 已经正式启动,这个进程主要由社区来负责驱动。 只要不会带来向后不兼容的问题,每个 Go 2 的提议都有可能会在更早的版本发布出来。总体而言,每个提议都应该: 1. 解决的是对大多数人来说很重要的问题。 2. 对所有其它的用户产生的影响最小。 3. 提供一个清晰并易于理解的解决方案。 至于 Go 1.13,它计划将于 8 月份发布。 ## 已经被接受且合并的提议 - [数字字面量语法(Number literals syntax)](https://go.googlesource.com/proposal/+/mas...阅读全文

博文 2019-05-19 14:00:36 Alex-liutao

Go 语言泛型的讨论

是否加入泛型,Go团队一直在犹豫,他们希望找到一种好的解决方案。 最近关于泛型的讨论比较激烈,总结了文档,对比了各种语言的泛型,[点击查看文档](https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/edit?pli=1#) 如果被墙,可以[下载pdf格式](https://github.com/polaris1119/resources/raw/master/SummaryofGoGenericsDiscussions.pdf...阅读全文

golang 长短连接处理

前言 关于time_wait网上的介绍有很多,咱不啰嗦了,之前公司环境有台机器里有大量的time_wait,研究了下golang和http的基础,小结下。 http协议1.1后默认是长连接,如果一个client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close。 Get / HTTP/1.1 Host: example.com User-Agent: Go 1.1 package http **Connection: close** Accept-Encoding: gzip HTTP/1.1 501 Not Implemen...阅读全文

博文 2016-03-07 22:00:04 chenwenhao0304

辞职半年了,做了一个付费专栏的产品

小专栏 :https://xiaozhuanlan.com/ 小专栏是一个专业人士的创作知识社区,旨在为一些在某个领域有深度研究的小伙伴提供的写作平台,专栏需要进行申请,通过审核后即可开始您的创作。后续小专栏会推出新功能,我们愿景就是要改变技术人购买实体技术书的传统方式,转而购买电子书,购买点子技术书籍有非常多好处,总结下就是:第一环保,第二电子书更佳符合技术学习方式,第三作者可以得到更多的收入。 小专栏最看重的还是您**专业**的分享,无论关于技术、产品或者运营方面。 推荐一些目前比较不错的专栏 ## iOS 1、[iOS 成长之路](https://xiaozhuanlan.com/iosdev) 目前已经收获了超过5500元啦 面向读者:笼统的说...阅读全文

go语言设计哲学

世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界; 世界是由物质组合构成的---微观世界:由小的粒子组合成大的粒子;宏观世界:由小的物体组合成大的物体; 继承只能描述现实世界的一小部分,使用继承是不全面的;go的设计选择的是组合,这个和现实世界比较吻合的设计,表现力更强; 世界是标准化的---随着生产力的发展,社会分工越来与详细,越来越多行业有了国际标准,任何一个国家的、任何一个公司只要按照这个标准生产器件,就能装配到一台机器上;IBM/PC就是硬件模块化和接口化一个最成功的例证; 软件也可如此,go的接口是duck模型,面向接口编程,而不需要显示的声明,将语言能做的事情交给语言做; 正交性--几何上的正交指的是两个向量...阅读全文

博文 2015-04-30 20:30:29 hittata

[杭州]杭州云柚科技招聘Go架构师

职位描述: 1. 负责云柚系统整体架构设计与规划; 2. 负责优化核心业务的性能指标和资源消耗; 3. 负责指导相关工程师,按照质量要求完成相关业务开发工作 任职资格: 1. 熟练掌握 C/C++, Java, Python, Go 等语言中的至少两种,本科以上学历,3年以上开发经验; 2. 有丰富的工作经验,能够独立主导要求对自己做的项目有自己深入的理解,并能持续的关注和优化自己做的项目,研究过或参与过优秀开源软件者优先; 3. 熟悉 MongoDB/Redis 应用开发,熟悉数据库原理和常用性能优化技术,以及 NoSQL 原理、使用场景以及限制; 4. 参与过大型复杂分布式互联网系统的设计、架构者优先; 5. 有较强的逻辑思维能力,善于分析、归纳、解决问题;...阅读全文

Go 中如何有效的比较字符串

当优化软件时字符串比较可能和你想的有些不同。特别是包括拆分跨 goroutines 的循环, 找到一个更快的哈希算法,或者一些听起来更科学的方式。当我们做出这样的修改时,会有一种成就感。然而, 字符串比较通常是信息传递中(in a pipeline)的最大瓶颈。下面的代码段经常被使用,但它是最糟糕的解决方案 (参见下面的 benchmarks),并导致了实际问题。 ```go strings.ToLower(name) == strings.ToLower(othername) ``` 这是一种很直接的写法。把字符串转换成小写,然后在比较。要理解为什么这是一个差的解决方案,你需要知道字符串是如何表示的,以及 `ToLower` 是如何工作的。但是首先,让我们讨论一下字符串比较中主要的使用场景...阅读全文

[分享]Gopher China 上海大会上的PPT

Gopher China 上海大会上的PPT [GO语言并发编程实践 by 周洋@360手机助手](http://airjd.com/view/i93qyhcy000h5ri) [Go语言在NFV场景下的应用研究 by 汪洋@华为](http://airjd.com/view/i93rjkj300009rd) [Go在猎豹移动的应用 by 毛剑](http://airjd.com/view/i93y6ubj000f9mf) [Golang与高性能DSP竞价系统](http://airjd.com/view/i93ybt65000g7pe) [用golang写一个操作系统](http://airjd.com/view/i93y5mbb000i1ga) [P2...阅读全文

分布式缓存version_cache

# version_cache version_cache是一个分布式一致性缓存解决方案。 原理:job 将数据打包成版本到redis,实例将存在redis的版本load到本地内存并计算最新版本的生效时间,使所有实例的缓存在同一时间生效来达到所有实例数据的一致。 实用场景:数据量少、非及时生效数据、高并发强一致的场景。如:配置服务,门店服务等 优点: 1. 轻松实现水平扩展,实现千万并发的服务不是梦 2. 数据强一至性,不论启动多少实例,同一时间的数据绝对是一致的(服务器时间一致情况下) 3. 使用简单,实现数据生成接口后就可以像使用缓存一样方便,轻松实现高性能服务 缺点: 1. 数据按版本生效,变更的数据会延迟生效(原则上数据量越小处理越快) 2. 不适...阅读全文

比原链CEO朗豫:重金启动MOV生态建设,这会是第一个分布式区块链商业生态

11月8日,由巴比特主办的2019世界区块链大会·乌镇在乌镇互联网国际会展中心正式开幕。在比原链“Keep MOVing”专场活动上,比原链CEO朗豫做了主题分享。 以下内容来自朗豫分享,经巴比特整理。 朗豫 稳定运行2年,主、侧、跨发展方向破解不可能三角难题 2018年底、2019年初时,我们讲稳定、安全和繁荣。 我们都实现了。目前,比原链已无故障运行近2年,侧链也已平稳运行3个半月。没有稳定的系统就不可能有稳定的应用。去年,我们的算力摆脱了GPU的影响进入平稳发展阶段,钱包客户端也没有出现资损情况。我们的开发者社区诞生了一本已出版的技术解读类图书。我们也加入了golang这个大技术社区。在政务和商务应用方面,我们也进入了比较好的状态。 在技术上,我们实现了侧链Vapor,完善了基于比原链...阅读全文

博文 2019-11-11 09:33:37 更多精彩内容POW的比原链为何要做Staking?长铗或解锁你认知“资产”新姿势 | Bystack火石计划巴比特资讯Bystack开启共识节点全球招募,长铗首次详细描述Bystack的世界观、现状和未来巴比特资讯拼流量、拼资源、拼技术—— BaaS已沦

[北京]Golang游戏服务器工程师

北京钛核互动信息技术有限公司成立于2014年11月,创始人团队都是来自于Glu Mobile, Gameloft等顶尖手游公司。在游戏行业打拼了10年以上,擅长高品质精品游戏开发。开发过大量精品手机游戏、Console游戏和网游。公司坚信以人为本,以顶级的人才需要顶级的回报为目标,营造一个有激情的宽松的游戏开发环境,希望能够让游戏人才能够发挥自己的热情和潜力。 http://www.tuicool.com/articles/uEfEJf 服务器将会使用弹性云自动伸缩架构,在这里你将能够学习并开发具有国际最先进的云架构游戏服务器方案。我们招聘具有创新精神的工程师,敢创新、思维严谨、勇于承担。 **基本能力要求:** 1. 热爱玩游戏,热爱开发游戏。具备足够的游戏常识;...阅读全文

Golang分布式设计模式之-----分层设计

提到分布式系统,我们会想到很多机器,分别部署着各自的服务,然后整体组成一个分布式系统。在这类系统中,分布式系统与常规的集中式系统存在着以下三个区别。(来自分布式算法导论) 1、缺乏全局状态知识 2、缺乏全局时间帧 3、非确定性 这三大特点也成为分布式系统设计的难点。也正是如此,分布式系统的设计比常规的集中式系统要难的多。为了区别,我们称这种分布式系统为,群体分布式。这种犹如社会群体。 golang语言天生具有分布式的特点,其主要是基于协程与chan的概念。如果对golang不了解的人可以简单的去看看golang语言。 有了golang语言,我们的可执行程序,也可以设计成分布式。一个可执行程序设计成分布式,这种分布式我们成为单体分布式。这种犹如,个体,存在着很多的部件。 其与群体分布式的区别在...阅读全文

博文 2014-10-09 21:00:09 screscent

Go依赖管理机制

无论何种语言,依赖管理都是一个比较复杂的问题。而Go语言中的依赖管理机制目前还是让人比较失望的。在1.6版本之前,官方只有把依赖放在GOPATH中,并没有多版本管理机制;1.6版本(1.5版本是experimental feature)引入vendor机制,是包依赖管理对一次重要尝试。他在Go生态系统中依然是一个热门的争论话题,还没有想到完美的解决方案。 看其它 我们先来看看其它语言怎么解决,例举两种典型的管理方式: Java 开发态,可以通过maven和gradle工具编辑依赖清单列表/脚本,指定依赖库的位置/版本等信息,这些可以帮助你在合适的时间将项目固化到一个可随时随地重复编译发布的状态。这些工具对我来说已经足够优雅有效。但maven中也有不同依赖库的内部依赖版本冲突等令人心烦的问题。...阅读全文

博文 2016-11-20 17:00:00 jinpengxx8

【杭州】金科文化招聘golang开发工程师

有意者请联系:yefanglin[AT]jinkejoy.com ------------------ 职位描述: 工作职责: 1. 负责 adexchange(互联网广告交易平台)的开发 2. 负责素材审核平台及运营工具的开发需求 3. 参与应用架构设计、开发及性能优化维护 任职要求: 1. 熟悉C/C++、java、Node.js,Golang,Python等开发语言中的至少一种;GO语言优先 2. 熟练使用Mysql等常用数据库 3. 熟悉TCP/IP网络编程、多线程编程,熟悉不同的IO模型,常用数据结构和算法; 4. 熟悉服务器架构;熟悉AWS优先 5. 有高并发,高性能系统开发经验优先 能熟练地在Linux或Unix上进行维护和开发...阅读全文

golang解决cannot convert a (type interface {}) to type *: need type assertion

cannot convert a (type interface {}) to type string: need type assertion cannot convert a (type interface {}) to type *: need type assertion 解决方案: var a interface{} = int(10) var b MyInt = a.(MyInt) 参考: http://stackoverflow.com/questions/19577423/how-to-cast-to-a-type-alias-in-go/1957905...阅读全文

博文 2015-06-17 20:17:43 u010499721

墨链所填写的《SmartICO V1.1 待评估ICO项目问卷调查》

该问卷调查由墨链团队于2017年8月7日填写,墨链团队对所填内容真实性负责。免责声明:如无明显问题,我们将默认对贵方所填内容保持完全信任,任何由于所填内容的虚假、夸大等不诚信因素所造成的责任或影响,需要贵方自行承担。 问卷调查 说明:对问题作出回答时无需长篇累述,如无要求,通常每个问题的回答不建议超过200个字。1、请简述贵方的项目,包括但不限于应用场景、战略目标、核心技术创新、核心特点等(请用不多于200字尽可能让我们理解该项目)。墨链(InkChain),可概括为三个关键词:独创公有链、文化资产交易平台、分布式经济生态,是以“纸贵版权”团队为核心打造的,面向大文化产业的自主区块链底层和文化资产交易平台,以及由此构建的分布式经济生态。 墨链,在早期包含了墨链区块链底层框架,及构建于其上以I...阅读全文

博文 2017-08-09 04:05:17 币圈王大炮

设计模式(golang)

设计模式的六大原则 摘自 Java开发中的23种设计模式详解 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。 所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后 面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何 基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受 到...阅读全文

博文 2017-02-15 15:20:20 Cbping

golang笔记——IDE

可选方案有 Lite IDE\GoSublime\Visual Studio Code\Goclipse\Vim 1、Lite IDE 这是国人开发的开源且跨平台的 golang 专属IDE,也算是目前 golang 唯一的IDE了吧,是使用 qt 开发的,界面比较简陋。 下载地址:https://sourceforge.net/projects/liteide/ 功能上还算是比较完善,自动格式化代码、编译、调试都不错。 2、GoSublime 基于 Sublime 的 Go 语言插件,界面美观,但要手动配置很多东西。 首先在 Sublime 中搜索并安装 gosublime 插件和 go build 插件,(请先安装好 Package Control),然后再通过 go get -u gi...阅读全文

博文 2016-02-22 19:00:01 tianyajuanke

Golang 中 defer 的五个坑 - 第三部分

> 译注:全文总共有四篇,本文为同系列文章的第三篇 - [第一部分](https://studygolang.com/articles/12061) - [第二部分](https://studygolang.com/articles/12136) 本文将侧重于讲解使用 defer 的一些技巧 如果你对 defer 的基本操作还没有清晰的认识,请先阅读这篇 [文章](https://blog.learngoprogramming.com/golang-defer-simplified-77d3b2b817ff) (GCTT 出品的译文 https://studygolang.com/articles/11907)。 ## #1 —— 在延迟调用函数的外部使用 recover 你总是应该在被延迟...阅读全文

博文 2018-02-01 10:05:25 yujiahaol68

Go 语言的下一个大版本:Go 2.0 被安排上了!

今年 8 月 Go 开发团队公布了 Go 2.0 的设计草案,包括错误处理和泛型这两大主题。现在备受瞩目的 Go 2.0 又有了新动向 —— 昨日 Go 开发团队在其官方博客表示,Go 2 已经被安排上了!目前 Go 2 已进入确定变更提案的阶段,并公布了提案评估流程。废话不多说,先来看看 Go 2.0 有哪些值得关注的内容:1.最大程度保持对 1.x 的兼容,以避免分裂 Go 语言生态系统2.采用增量升级的方式,而非单独发布重大更新版本3.实施新的提案评估流程,以评估尚未解决且被标记为提案的 issue4.将会在 Go 1.13 版本中选择 Go 2 部分的提案背景早在2017年的 GopherCon 大会上,Russ Cox(Go 核心开发团队的技术 leader)就已经正式开始思考 G...阅读全文

博文 2019-06-27 20:40:13 开源中国

乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good

受苏格拉底大神的启迪,我也来谈谈全栈。禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才。不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你怎么处理码农:砍头或让他下野,浪费军粮和黄金禅师:但是他很全面啊,两项能力综合130分,比诸葛亮和吕布的综合分还要高码农:话虽如此但他还是太平庸,无法独挡一面禅师:赵云怎么样码农:这是我最喜欢的武将之...阅读全文

博文 2015-05-27 03:00:00 findumars

【杭州】金科文化招聘golang开发工程师

有意者请联系:yefanglin[AT]jinkejoy.com -------------------- 职位描述: 工作职责: * 负责 adexchange(互联网广告交易平台)的开发 * 负责素材审核平台及运营工具的开发需求 * 参与应用架构设计、开发及性能优化维护 任职要求: * 熟悉C/C++、java、Node.js,Golang,Python等开发语言中的至少一种;GO语言优先 * 熟练使用Mysql等常用数据库 * 熟悉TCP/IP网络编程、多线程编程,熟悉不同的IO模型,常用数据结构和算法; * 熟悉服务器架构;熟悉AWS优先 * 有高并发,高性能系统开发经验优先 能熟练地在Linux或Unix上进行维护和开发工作; 善于沟...阅读全文

一个月的golang服务器开发感触

好快,一个月过去了,感觉自己学得少,也感觉自己有点质的飞跃。以前用的openresty,怎么说,也很有价值,高并发,负载均衡,在某种小游戏上是可以一试的,其实我很有想法的,,,但是用来做游戏对开发这来说,太没得发展前途了,,,毕竟我觉得,起码得会很多重要的编程思想,设计模式比较好,毕竟不是产品发展方向,,,对于golang这一个月,感觉发现了新大陆一样的,了解了rpc,kcp,真正体会到了高内聚和低耦合的意义,明白了,数据库并不是那么刚需的,体会到了golang真的是天生为了解决分布式,微服务,高内聚低耦合而诞生的,还有一帮兢兢业业的大佬,心里由衷的敬畏,他们真的是程序员的样子,而不是混日子,做一天和尚,敲一天钟。希望自己不忘初心,有高追求,努力奋斗。可以用openresty做路由,gola...阅读全文

Golang中的CPU占满100%及解决方案

有一个流媒体适配服务,出现了`CPU`开销很大的问题,一个服务把`CPU`资源占满了,导致其他服务无法正常工作。 下面来详细记录发现`bug`和解决的流程。 # 发现CPU开销很大 扫描发现,是垃圾回收导致 `CPU` 使用上升 : ``` Time: Mar 22, 2019 at 5:52pm (CST) Duration: 1mins, Total samples = 1.43mins (142.57%) Entering interactive mode (type "help" for commands, "o" for options) (pprof) tree Showing nodes accounting for 83.13s, 97.11% of 85.60s total...阅读全文

博文 2019-05-27 00:10:24 OctopusLian

golang select 选择器的两种方案

golang select 选择器 常规模式: package main import ( "fmt" "strconv" ) func main() { var chs1 = make(chan int) var chs2 = make(chan float64) var chs3 = make(chan string) var ch4close = make(chan int) defer close(ch4close) go func(c chan int, ch4close chan int) { for i := 0; i < 5; i++ { c <- i } close(c) ch4close <- 1 }(chs1, ch4close) go func(c chan floa...阅读全文

博文 2014-10-04 19:26:08 eclipser1987

win8.1下golang+sdl2.0环境搭建

sdl2.0的golang绑定我是使用的这个,但是它的官方介绍里面只有linux以及OSX系统的说明,没有windows的,在我的mbp上弄好以后就考虑在win下也搭建一个开发环境,这样就能比较方便的跨平台了。 具体步骤如下: 配置go环境,可以参考官方文档或者这里。 go get上面提到的库,但是反复提示如下错误: cc1.exe: sorry, unimplemented: 64-bit mode not compiled in 后来发现只要用到了cgo就会报这个错误,因为我下载的是go 1.3.2 64位版本,但是本地的gcc是32位的。折腾了好久没解决,一直没能下载到64位的mingw,官方下载器每次都是下载一半的时候报错,即使挂上代理也一样,后来在sf.net上找到一位好心人做的离...阅读全文

博文 2014-10-23 03:00:01 drakefang

golang设计模式的一些看法

golang设计模式的一些看法 对于c、c++来讲,设计的对象存在着这几个问题 1、 对象是死的,只有自己的属性,行为(函数)。没有可以自己独立执行的机制 2、 对象是存活的,有自己的属性,行为(函数),还有独立执行的活动(自己独立的线程)。但由于系统的限制,这种对象数量不能过多(线程数量不能太多)。 3、 对象是半存活的,有自己的属性,行为,没有独立的执行活动(没有自己独立的线程)。需要借助于其他对象的线程调度。 以上是c、c++语言的一些限制。其他语言不是熟悉,不进行评判。但大多数也是类似的。 那么对于golang语言来讲,设计的对象可以是 存活的,每个对象,有自己的属性,有自己的行为,也有自己的活动(通过协程来实现)。那么这样来讲,golang就可以实现对对象的完整模拟实现。就犹如我们...阅读全文

博文 2014-12-17 13:00:01 screscent

猝不及防!还没入职就被“裁员”,大批应届生遭强制解约,网易游戏也动手了!

这个冬天有点冷有点残酷。 还没有来得及一丝丝的防备,不少还在“象牙塔”的应届生就感受到了社会的残酷,还没有入职就被“裁员”了。 在 2018 年的最后两天,医疗器械行业一哥迈瑞医疗与 2018 年秋招的 200多名应届毕业生闪电解约,并承诺支付 5000 元赔偿金。在这辞旧迎新的日子里,应届毕业生们找好的工作,很不幸突然泡汤了。 迈瑞医疗解约应届生 在 12 月 29 日,一篇题为“迈瑞医疗强制解约应届生”的网络帖子不胫而走,并在短短两天传遍互联网,并登上微博热搜。有小伙伴因为想进迈瑞医疗,拒了其他公司的 offer,结果被解约,而如今秋季招聘已经结束,2019 年春招已经没有太多公司与好机会。这些毕业生面临着重新找工作的境地。 还有上海交大的学生也被“裁”了 有个小伙伴前段时间在微博发文庆...阅读全文

博文 2019-01-03 19:34:46 51reboot

golang 中 cannot use ** (type interface {}) as type **解决方案

在beego中从session中取值的时候,取出来的是intergace{},但是我先返回的值是int型,或者是string,这个时候会出现一个错误:cannot use ** (变量)(type interface {}) as type **(类型) 错误代码: func CurrentId(ctx *context.Context) int { userStr := ctx.Input.CruSession.Get("user_id") return userStr } 从session中取出来的是一个interface类型,无法直接转换,我在给user_id赋值的时候是给的int类型。因此直接对userStr进行转换即可。 正确代码如下: func CurrentId(ctx *co...阅读全文

博文 2017-02-09 08:10:08 姜家志

Go语言之父谈Go:大道至简

自:http://www.csdn.net/article/2012-07-05/2807113-less-is-exponentially-more 导读:这篇文章是Google首席工程师、Go语言之父Rob Pike自己整理的6月21日在旧金山给Go SF的演讲稿。Rob提到:Go语言本是以C为原型,以C++为目标设计,但最终却大相径庭。值得一提的是,这3门语言都曾当选TIOBE年度语言。 几个礼拜之前我被问到:“对于Go语言,最令你惊讶的是什么?”当时我就明确地给出了答案:“虽然我希望C++程序员能够使用Go作为替代拼,但实际上大部分Go程序员都是从Python和Ruby转过来的,其中却少有C++程序员。” 我、Ken以及Robert都曾是C++程序员,在我们编写软件时觉得应该设计一门...阅读全文

博文 2015-06-17 23:01:51 gaopeiliang

vim中go的语法高亮设置

测试环境:ubuntu 14.04 之kylin 版 vim本身不带golang的语法高亮 解决方案: 在 /usr/share/vim/vim74/ 中 有这么几个文件夹:syntax, ftplugin, indent, compiler等, 我们查看syntax可以看到有gcc.vim等其他语法文件,但是没有go.vim, 好在我们可以从源码下载 http://www.golangtc.com/download 下载 go1.3.3.src.tar.gzgo1.3.3 (source only),解压缩, 将下载目录的 go/misc/vim/中有对应的 syntax, ftplugin, indent, compiler 中的go.vim文件复制到/usr/share/vim/vim...阅读全文