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

golang:实现thrift的client端协程安全

前言 Golang作为我们服务端开发的主要语言,实现了很多基础服务,比如oauth2,账户系统,支付,客服等。而在早期开发阶段,也尝试使用golang做页面展示,但每种语言都有自己最擅长的领域,让golang来搞前端实在是有点疼,最终我们选择php+golang的方式来作为整体的服务架构。 那么问题来了,php和golang这对好基友如何愉快的玩耍呢?结论是thrift是块好肥皂! 抛砖 市面上肥皂一大堆,最著名的是舒肤佳,那么我们为毛不用舒肤佳,而选择thrift呢。。。因为够酸爽! 这种酸爽,只有牙口好,才能吃嘛嘛香。众所周知,thrift有多种型号(传输协议),比如家用型的TDebugProtocol,持久型TBinaryProtocol还有爆炸型TCompactProtocol。 而...阅读全文

博文 2014-10-17 23:17:15 郝冠伟

等待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团队认为,需要实施新的提案评估流程...阅读全文

golang arm 交叉编译

set GOOS=linux set GOARCH=arm cd go/src make.bat cd .. cp bin/%GOOS%_%GOARCH% %GOROOT%/bin -r cp pkg/%GOOS%_%GOARCH% %GOROOT%/pkg -r cp pkg/tool/%GOOS%_%GOARCH% %GOROOT%/pkg/tool -r 使用百度手机助手,开启USB调试:点击多次“版本号”,开发者选项->启用USB调试 使用百度手机助手的bdadb.exe shell,进入后su,手机上赋予root权限 cp /sdcard/download/linux_hello /data/ chmod 777 /data/linux_hello (sdcard是fat32格式,...阅读全文

博文 2015-03-17 09:00:01 chuqingq

golang byte 操作

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> byte数组转int // bytes to int 32 func bytesTo32Int(b []byte) int { buf := bytes.NewBuffer(b) var tmp uint32 binary.Read(buf, binary.BigEndian, &tmp) return int(tmp) } // bytes to int 16 func bytesTo16Int(b []byte) int { buf := bytes.NewBuffer(b) var tmp uint16 binary.Read(buf, binary.BigEndian, &tmp) return in...阅读全文

博文 2018-09-01 14:33:13 Robin3D

从Maven,Gradle到Go

为什么要有依赖管理工具? 谈依赖管理之前,我们先谈谈为什么要有依赖管理工具这东西。 我们学了一种编程语言,然后写了个“Hello World”,然后宣称自己学了一门语言,这时候确实不需要关心依赖问题。 然而,当你要写一个稍微复杂点的应用,那怕就是留言板这样的,需要读写数据库,就需要依赖数据库驱动,就会遇到依赖管理的问题了。 再进一步,你写了一个库,想共享给别人使用,更需要了解依赖管理的问题。 当然,如果项目足够简单,你可以直接将依赖方的源码放置在自己的项目中,或者将依赖库的二进制文件(比如jar,dll)放置在项目的lib里。要提供给别人呢?把二进制包提供下载或者给别人传过去。依赖管理工具出现之前大多数都是这样搞的。 但如果再复杂些,依赖库本身也有依赖怎么弄呢?将依赖压缩打包,然后放个rea...阅读全文

Go1.7改善了编译速度并且会生成更快的代码

Go1.7的开发周期正在接近它的下一个里程碑,Go的提交者Dave Cheney报告了子即将发布的版本中,团队成员在语言工具链上的努力。 Cheney称,基于当前的开发状态,Go1.7将会很容易就成为最好的Go发布版本。提升工具链的努力主要聚焦在如下两个方面: 编译和链接的时间; 代码生成。 当谈到编译时间,Go编译器自从C转到了Go的影响而一直以来的较慢的性能。这个问题已经被讨论很多次并且最近的完成的工作目标就是减少编译器内存使用来改善链接时间。这项改进和Go1.5.3相比大约减少了20-30%的总编译时间,如下图所示: 代码生成,如上文所述,是Go1.7的另一个主要关注点。新的后端改用SSA,和LLVM以及其他编译器着的一样,以启用代码生成的很多优化。这些优化包含更好的无用代码的消除,寄...阅读全文

继续招聘Go的后端开发人员

公司:创业团队,公司已注册,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线,5A级写字楼。 环境:办公环境不错,为每个开发人员配备全新rmbp + 28寸4K显示器 待遇:1.2万-2万,如果的确有料,还可以再谈,半年后根据实际贡献和能力,甚至可以提供股权。 准备用Go来做后端,采用微服务架构体系,欢迎真心喜欢Go的兄弟联系我...阅读全文

golang rbac框架

在 https://github.com/mikespook/gorbac/tree/v1.0 github上新的版本是开发板,得用这里的老版 demo package main import ( "gopkg.in/mikespook/gorbac.v1" "fmt" ) func main() { permissions := []string{"admin","guest","normal"} rbac := gorbac.New() rbac.Add("rico",permissions[1:],[]string{}) IsGranted := rbac.IsGranted("rico","guest",nil) fmt.Println("grant is ", IsGranted)...阅读全文

博文 2016-02-03 10:00:02 ziyouchutuwenwu

Go性能优化技巧1/10

字符串(string)作为一种不可变类型,在与字节数组(slice, [ ]byte)转换时需付出 “沉重” 代价,根本原因是对底层字节数组的复制。这种代价会在以万为单位的高并发压力下迅速放大,所以对它的优化常变成 “必须” 行为。 首先,须了解 string 和 [ ]byte 数据结构,并确认默认方式的复制行为。 ![source](http://studygolang.qiniudn.com/160428/a01e98e972abb87f20d0dc9edaa1fd17.jpg) ![gdb](http://studygolang.qiniudn.com/160428/4069f099cbb9753061fb4acf82227a46.jpg) 动态演示: [https://as...阅读全文

怎么调用Service生命周期中 onStartCommand方法的返回值 ?

在Android开发中,调用Context的startService方法启动Service的生命周期时,如果Android面临内存匮乏,可能会销毁掉你当前运行的Service,然后待内存充足的时候可以重新创建Service,Service被Android系统强制销毁并再次重建的行为依赖于Service中onStartCommand方法的返回值。 而Service onStartCommand方法中,常用的返回值主要有:START_NOT_STICKY、START_STICKY和START_REDELIVER_INTENT三种,这三个值都是Service中的静态常量。下面小编就和大家分享下这三种返回值的具体的含义及使用情况。 START_NOT_STICKY ...阅读全文

【小米直招】小米HR直招Golang/C/C++

####由于业务发展的需要,小米数据中心急招 **Golang 开发工程师**,主要负责**后端开发**。 ##### **go 后台开发** - 任职要求: 1. 熟悉c/c++,有go开发经验更好; 2. 熟悉常用的数据结构和算法,有acm比赛经验优先; 3. 熟悉常用后台开发技术,了解分布式系统基本原理; 4. 代码功底扎实,知道如何寻找系统性能瓶颈以及优化方案; 5. 有风控意识,了解系统存在风险点及预防措施。 #####承诺:**期权和现金均为市场领先水平** #####联系方式: - 邮箱: wangchao_a@xiaomi.com - QQ: 1723388523 #####期待各位技术大牛加...阅读全文

go实战(5):引入bootstrap,设置静态资源

an 之前生成了Product类的scaffold,但是如同rails的开发者David所讲的那样,scaffold几乎没什么用。所以按照《Agile Web Development with Rails 4th》中的迭代计划,下一步的修改是美化list页面: 但是这个界面还是太丑陋了。其实,有了bootstrap后,很多站点都变成了“又黑又硬”的工具条+“小清新”风格。我们即不能免俗,又懒得自已设计风格,不妨用bootstrap将产品清单界面重新设计成如下的风格: 下面让我们来实现这个界面。显然web界面会使用一些静态资源(css,js,image等), 要在Django中引入静态资源)。Django在正式部署的时候对于静态资源有特殊的处理,在开发阶段,可以有简单的方式让静态资源起作用。 ...阅读全文

博文 2015-11-27 05:00:01 oMingZi12345678

Go语言 goroutine是一把双刃剑

go中的goroutine是go语言在语言级别支持并发的一种特性。初接触go的时候对go的goroutine的欢喜至极,实现并发简便到简直bt的地步。但是在项目过程中,越来越发现goroutine是一个很容易被大家滥用的东西。goroutine是一把双面刃。这里列举一下goroutine使用的几宗罪: 1 goroutine的指针传递是不安全的 1 2 3 4 5 6 7 8 fun main() { request := request.NewRequest() //这里的NewRequest()是传递回一个type Request的指针 go saveRequestToRedis1(request) go saveReuqestToRedis2(request) select{} } 非...阅读全文

博文 2014-10-11 20:00:09 abv123456789

整理了一些免费区块链、以太坊技术开发相关的文件,需要的拿去。

收集整理了一些免费区块链、以太坊技术开发相关的文件,有需要的可以下载,文件链接: 1. web3.js API官方文档中文版:https://pan.baidu.com/s/1hOV9hEzi7hFxJCL4LTvC6g 2. 以太坊官方文档中文版 :https://pan.baidu.com/s/1ktODJKLMBmkOsi8MPrpIJA 3. 以太坊白皮书中文版 :https://pan.baidu.com/s/1bzAFnzJ35hlQxJ2J4Oj-Ow 4. Solidity的官方文档中文版 :https://pan.baidu.com/s/18yp9XjEqAHpiFm2ZSCygHw 5. Truffle的官方文档中文版 :https:/...阅读全文

准备建设Go开发团队,欢迎喜欢Go的兄弟加入

公司:创业团队,公司已注册,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线。 环境:办公环境高大上,开发人员配备rmbp,再加一个27寸显示器 待遇:1.5万,如果的确有料,还可以再谈,半年后可根据表现给予期权等激励。 准备用Go来做后端,采用微服务架构体系,欢迎喜欢Go的兄弟联系我...阅读全文

mysql连接池不能回避的wait timeout问题

感谢我们的木木同学给了我写这篇文章的灵感和机会。起因我们的项目组一直在使用albianj作为开发框架在开发应用。使用至今倒也是没有出现很大的问题,但最近加过监控的接口基本上都会在使用一段时间后,突然之间执行数据库操作变得很慢。虽然会变慢,但持续的时间比较短,一般1分钟左右,然后会自动恢复正常。但是过了一段时间,这个现象又会出现,周而复始。从监控看,发生的时间点并无规律,有的时候一天发生3次,有的也会有4-5次。虽然从规律上并无法去查找,那就只能从别的地方想办法:增加一些详细的日志,从日志上看一下问题所在。详细日志版本刚刚上去,立刻就发生问题了。如下图:看一下左下角的曲线图,突然飙高,然后在1500ms的高位不下来。经过查找日志(PS:sorry。写文章的时候日志已经被自动清除,没法截图了),...阅读全文

博文 2017-09-05 05:41:29 94geek的大嘴

小米即时消息云 SDKMIMC

小米即时消息云MIMC:xiaoMI Messaging Cloud MIMC是小米自研的一种安全、可靠、易用的分布式IM云服务。为广大开发者提供免费快捷的即时通讯接入服务。MIMC基于多年小米通讯技术积累,让即时通讯不再复杂。 目前开发者可在PC端打开链接小米开放平台查看小米即时消息云的介绍和API接入文档,SDK下载等。 [https://dev.mi.com/console/appservice/mimc.html](https://dev.mi.com/console/appservice/mimc.html) ![image](https://static.oschina.net/uploads/img/201801/30142337_jLhU.jpg...阅读全文

开源项目 2018-12-05 11:30:02 网友

【小米直招】小米HR直招Golang/C/C++

####由于业务发展的需要,小米数据中心急招 **Golang 开发工程师**,主要负责**后端开发**。 ##### **go 后台开发** - 任职要求: 1. 熟悉c/c++,有go开发经验更好; 2. 熟悉常用的数据结构和算法,有acm比赛经验优先; 3. 熟悉常用后台开发技术,了解分布式系统基本原理; 4. 代码功底扎实,知道如何寻找系统性能瓶颈以及优化方案; 5. 有风控意识,了解系统存在风险点及预防措施。 #####承诺:**期权和现金均为市场领先水平** #####联系方式: - 邮箱: wangchao_a@xiaomi.com - QQ: 1723388523 #####期待各位技术大牛加...阅读全文

论go语言中goroutine的使用

go中的goroutine是go语言在语言级别支持并发的一种特性。初接触go的时候对go的goroutine的欢喜至极,实现并发简便到简直bt的地步。但是在项目过程中,越来越发现goroutine是一个很容易被大家滥用的东西。goroutine是一把双面刃。这里列举一下goroutine使用的几宗罪: 1 goroutine的指针传递是不安全的 fun main() { request := request.NewRequest() //这里的NewRequest()是传递回一个type Request的指针 go saveRequestToRedis1(request) go saveReuqestToRedis2(request) select{} } 非常符合逻辑的代码: 主routi...阅读全文

博文 2014-10-04 19:26:36 yjf512

golang对mysql的基本操作

golang 操作mysql 导入数据库驱动 import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "time" ) mysql连接配置 const ( USERNAME = "root" PASSWORD = "*******" NETWORK = "tcp" SERVER = "localhost" PORT = 3306 DATABASE = "blog" ) 建立连接 dsn := fmt.Sprintf("%s:%s@%s(%s:%d)/%s",USERNAME,PASSWORD,NETWORK,SERVER,PORT,DATABASE) DB,err := sql.Open("mysql",dsn) if...阅读全文

博文 2018-07-17 21:34:46 我的饭卡呢

golang x.(type) 用法

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> golang中x.(type)只能在switch中使用 func MyPrintf(args ...interface{}) { for _, arg := range args { switch arg.(type) { case int: fmt.Println(arg, "is an int value.") case string: fmt.Println(arg, "is a string value.") case int64: fmt.Println(arg, "is an int64 value.") default: fmt.Println(arg, "is an unknown type....阅读全文

博文 2018-09-01 14:33:12 Robin3D

Go 性能优化技巧 10/10

垃圾回收不是万能的,Go 一样存在资源泄露问题。 ##SetFinalizer 虽然垃圾回收器能很好地处理循环引用,可一旦加上 SetFinalizer,事情就不那么美妙了。 ![gc1](http://studygolang.qiniudn.com/160614/9610a9ee5f2f443fceb1bcb271b9bc84.jpg) ![gc2](http://studygolang.qiniudn.com/160614/b7a72410161fdb53585cc0e2178a680d.jpg) 显然,这些对象并未被释放。在标准库文档里有这样的描述: > Finalizers are run in dependency order: if A point...阅读全文

Mesos 架构以及源码浅析

Mesos 按照官方的介绍,是分布式操作系统的内核。目标是 ”Program against your datacenter like it’s a single pool of resources”,即可以将整个数据中心当做一台电脑一样使用。可以说这个目标是所有宣称自己是DCOS的系统的共同目标,本文从架构和源码层面分析Mesos以及周边框架,看看Mesos是如何实现这个目标的,当前距这个目标还有多大差距。最后比较了一下Mesos和Kubernetes这两个都受Google的Borg影响的系统的异同。 阅读对象:对Mesos或者分布式系统感兴趣的技术人 设计理念以及架构 引用Mesos paper里的一句话,来说明Mesos的设计理念: define a minimal interface...阅读全文

博文 2017-02-09 19:54:11 jolestar

一份来自阿里云引擎ACE的求职信,你收到了吗?

尊敬的企业领导,个人站长、开发者们: 如果有个员工,可以把企业把70%运维的工作都干了,你们再也不用操心对操作系统、运行环境、应用中间件的安装、配置、优化、监控、升级等一系列繁杂的维护工作,可以专注精力在业务运营上,您是否会考虑录用他? 下图就是阿里云引擎ACE求职信,敬请查收! 详细了解ACE:http://www.aliyun.com/product/ace !![1111111.jpg](http://studygolang.qiniudn.com/151126/487be9e31756e7b913347e4f645e3023.png) 详细了解ACE:http://www.aliyun.com/product/ace...阅读全文

Go 中的对象的生命周期

尽管 Go 语言很简单,Go 的开发人员仍然发现了许多创建和使用 Go 中对象的方法。在本篇博客中,我们将介绍对象管理的三步法 - ***实例化, 初始化,以及启动***。我们还会将其与其他的创建、使用对象的方法进行对比,并审查(评估)每种方法的优缺点。 ## 我们的目标 这似乎是一个愚蠢的问题,但是,我们在 Go 中创建和使用对象的目的到底是什么?为了与 Go 的风格的统一,我优先考虑了以下事项: * 足够简单 * 足够灵活 * 文档友好 除此之外,我们也应当说明哪些事情不是我们的目标。我们应该假设知道最终使用的用户的能力水平,所以我们就不需要提供过多的障碍。 使用我们代码的用户应该可以使用[RTFM](https://www.urbandictionary.com/define.php?...阅读全文

博文 2019-01-01 22:10:09 barryz

继续招募go的爱好者,组建强大go团队

公司:创业团队,拿到千万级别的天使投资,方向是O2O,具体领域涉及到商业模式,在这里不细说了,总之是一个还没有巨头的大市场,非常看好。 坐标:上海,长寿路上,靠近7号地铁线。 环境:办公环境高大上,开发人员配备rmbp,再加一个28寸4k显示器 待遇:因人而异,可以谈,半年后可根据表现给予原始股激励。 准备用Go来做后端,采用微服务架构体系,欢迎喜欢Go的兄弟联系我...阅读全文

Threeperson 2016年开发计划

春节前后感冒总是不见好,最近稍有好转,赶忙写了点功能,增加了简陋的首页、优化了一下部分功能url,功能有待完善。 下面罗列一下16年的[threeperson](http://www.threeperson.com)功能列表 * 首页完善 * 添加评论和回复 * 检索 * 用户首页 * 用户信息完善 * 收藏 * 人气排行 * 文章置顶 * 关注 * 被评论,被回复,被关注,关注用户上线,发帖提醒 * 主题功...阅读全文

Java开发者的Go之旅

Go, 也被称为Golang, 是由当前在谷歌工作的三位杰出开发者创造的一种编程语言. 它是一门非常新的语言, 2012年才发布1.0版本. 创造该语言的信念是因为C++成长的过于复杂而且臃肿, Go最初是为了吸引系统级的程序员. 却最受Python开发者和其它动态语言社区的的欢迎. Go是一门非常优秀的语言, 它提供轻量而简洁的语法, 能媲美高级语言, 加入了静态类型, 十分给力的并发支持, 原始性能可以媲美(类似于C/C++)低级别语言. Java在大规模和大团队的企业项目中是一门奇妙的语言, Java需要相当大的开销来开发和部署一个新的应用. 它冗长的特性不适合小型项目和一次性任务. 所有许多Java开发者拥有一门或者多门的语言作为后备语言去轻松应对其它的任务. 其它的语言经验能拓宽开...阅读全文

博文 2015-05-12 20:00:04 Chasel-Li

《Golang 入门系列五》golang的常量、变量、数组

前言:本文主要介绍常量和变量的使用,以及关于变量的可见性规则、引用类型和值类型的区别。 一、常量 常量表达式的值在编译期计算,而不是在运行期。常量的值不可修改,这样可以防止在运行期被意外或恶意的修改。 1.1 常量的声明 常量的定义格式: const identifier [type] = value 显式定义常量: const a string = "Tom" 隐式定义常量:(这里用了类型推导) const a = "Tom" 多个相同类型常量定义: const first_name, last_name = "T", "om" 示例: package main import ( "fmt" ) const first_name, last_name = "T", "om" func ma...阅读全文

博文 2018-03-11 22:33:05 IT--小哥

Docker收购 Tutum,进一步完善容器生态

应用程序开发领域最近颇为热闹,最近两年Docker在该领域的热度在持续上升,这家公司的估值已经超过十亿美元,跻身独角兽俱乐部。它的客户不仅有众多科技公司,还包括投资公司高盛(Goldman Sachs),同时它还与Amazon、Microsoft等科技巨头建立了合作伙伴关系。尽管已经有超过15万的应用运行在Docker容器上,要说服大公司使用docker构建,尤其是运行app,仍然需要一些时日。 上周三,Docker宣布收购初创公司Tutum,这一举动促使docker向稳定性的目标更进一步,不管是应用在开发还是生产环境的稳定性。此举意味着Docker正在慢慢释放四月份融到的9500万美元,通过收购的方式将自身业务的短板补上,这次主要体现在应对生产环境上。具备应对生产环境的能力以后,Do...阅读全文

Go 1.5 实现自举、引入并发垃圾收集器

在经历了几个Beta版本和一个rc版本之后,Go 1.5终于正式发布了。这是一个很重要的版本,实现方面有很多变化。因为这个版本仍然遵循Go 1兼容性承诺,开发团队预计,所有的Go程序应该都可以和以前一样编译和运行。二进制和源码包已提供下载。 在实现方面,最大的变化有以下几点: 编译器和运行时是完全用Go语言编写的(还有少量汇编),实现了自举。实现中不再涉及C语言,所以构建时也就不需要C编译器了。 并发的垃圾收集器,可能的情况下,垃圾收集可以和其他goroutine并发进行,可以极大降低响应时间。 默认情况下,Go程序运行时的GOMAXPROCS会被设置为可用的核数,之前默认为1。 对internal packages的支持扩展到所有repositories,不再是仅供核心包...阅读全文

Android开发中 React Native生命周期如何划分?

熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期。今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android中,React Native组件的生命周期,大致分为三个阶段,分别是: 1、组件第一次绘制阶段,这个阶段主要是组件的加载和初始化; 2、组件在运行和交互阶段,这个阶段组件可以处理用户交互,或者接收事件更新界面; 3、组件卸载消亡的阶段,这个阶段主要是组件的清理工作。 在Android React Native组件的整个生命周期中,还有10个回调函数,不得不知。 1、object getDefaultProps()在组件类创建的时候调用一次,然后返回值被缓存下来。...阅读全文

golang gc 问题(转的)

在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。 什么是垃圾回收? 曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作,控制内存的申请及释放。稍有不慎,就可能产生内存泄露问题,这种问题不易发现并且难以定位,一直成为困扰开发者的噩梦。如何解决这个头疼的问题呢?过去一般采用两种办法: 内存泄露检测工具。这种工具的原理一般是静态代码扫描,通过扫描程序检测可能出现内存泄露的代码段。然而检测工具难免有疏漏和不足,只能起到辅助作用。 智能指针。这是c++中引入的自动内存管理方法,通过拥有自动内存管理功能的指针对象来引用对象,是程序员不用太关注...阅读全文

博文 2016-05-07 15:00:00 jackluo