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

模拟浏览器登录操作

近来想用Go做一点事,以减轻工作上的负担。 我的工作中有几项工作是每日重复的,大致内容: 1、将数据收集到Excel中。 2、收集齐后,将Excel中的部分数据提交到办公系统中(网页上操作)。 3、再将提交过后的审批号码提取出来,存入Excel中。 我现在有两个问题: 1、现在,上面的第一步Excel操作,Go中不知有何现成的库,若没有,我有个效率不高的办法。这个问题倒还不算急。 2、第二个问题比较着急。向办公系统提交数据,得先登录。我的操作步骤如下: 2.1、先访问办公系统首页,获取Session的Cookie。 2.2、进行登录数据提交,将刚才获取的这个Session的Cookie一并提交上去。 2.3、进行业务数据提交。 我现在的...阅读全文

6 款最棒的 Go 语言 Web 框架简介

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/top-6-web-frameworks-for-go-as-of-2017/twitter_status.jpg) https://twitter.com/ThePracticalDev/status/930878898245722112 如果你只是想写一个自己用的小网站,或许你不需要框架,但如果你是要开发一个投入生产运营的网站,那么你肯定会需要一个框架,而且是需要一个好的 Web 框架。 如果你已经掌握所有必要的知识和经验,你会冒险自己去重新开发所有的功能么?你有时间去找满足生产级别要求的库来用于开发么?另外,你确定这个库可以满足你后续所有的要求? 这...阅读全文

博文 2017-12-09 03:34:14 polaris

[Golang]Map的一个绝妙特性

补充说明:一些评论的人对本文中的一些内容感到很困惑,但是我不想让大家感到我言语不清,所以在此澄清一下:是的, 默认情况下,向一个hash表插入的元素是没有固定顺序的。但是因为很多原因,比如有一些帖子就指出了不是所有的map都是hash表(而且有些语言还有有顺序的hash表,比如java的TreeMap), 我还是能够了解为什么很多人(尤其是对Go map实现机制比较了解的人)会假定遍历map元素的顺序和向map插入元素的顺序是相同的。我原来的例子是我自己想出来的,并没有演示出大多数版本的Go关于这方面的特点(尽管我听说对于1.3版本可能是可以工作的)。所以我把代码更新了一下,你可以把代码复制到你的编辑器或者Go Playground来看看效果。Go确实是从随机偏移位置来开始map的元素遍历的...阅读全文

博文 2015-03-06 12:00:01 abv123456789

Golang优秀开源项目汇总(持续更新。。。)

Golang优秀开源项目汇总(持续更新。。。) 我把这个汇总放在github上了, 后面更新也会在github上更新。 https://github.com/hackstoic/golang-open-source-projects 。 欢迎fork, star , watch, 提issue。 资料参考来源:http://studygolang.com/projects 监控系统 序号 名称 项目地址 简介 1 OpenFalcon http://github.com/open-falcon/of-release OpenFalcon是一款小米监控系统。功能:*数据采集免配置:agent自发现、支持Plugin、主动推送模式; *容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图...阅读全文

博文 2016-08-13 22:00:06 hackstoic

为什么80%的码农都做不了架构师?

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。所以,80%码农干上许多年,还是做不了架构师,正在辛苦工作的程序员们,你有没有下面几种感觉?​① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。② 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较多啊,听说最近Swoole比较火,还有微服务,听说PHP又更新了……③ 我发现虽然我工作5年了,除了不停的Coding写业务代码,Ctrl+c和Ctrl+V更熟练了,但编码水平并没有提高,还是一个普通程序员,但有人已经...阅读全文

博文 2019-06-20 12:03:47 PHPsix

Golang几大框架的优势和区别?

Martini、Beego、Revel 等等…… golang-china 讨论组的回答: 苏沛: 试用了一下 Martini , 感觉现在的一些第三方插件数量和质量并不是特别好,会有一些坑或者要自己写些中间件。 总体不如另外两个框架成熟。 我去年开始研究Go语言,不知不觉快有一年了。以前我研究php和nodejs,都是弱类型的解释性语言。想找一个编译型的强类型语言继续学习,就选中了新奇的Go语言。我只关注Web方面的应用,看了很多有兴趣的开源的Go Web框架,随便吐槽一下。 Fan Yang: 刚刚开始用Beego,也就是图它是中国人做的,有问题可能直接问作者什么的也方便些。 框架的对比。来自[Go语言的Web框架](http:/...阅读全文

GO到底适合干什么?

LZ最近从上家公司java转到go,工作内容还是主要业务逻辑代码,感觉go写起来不是很顺畅(oop思想可能根深蒂固了,语言熟练度也是一个原因),一个Orm框架用起来就特别麻烦。。。个人感觉基于go的特性还是做一些基础的服务器组件会很有优势。。写一般的业务代码简直别扭。。没泛型、if err != nil等等.. 当然好处就是很多东西要自己实现,没有可靠的轮子。。。大家都用GO做什么呢...阅读全文

使用 beego 搭建 web 应用之一

介绍 你是一个从PHP,Python,Ruby等动态语言转移到Go的web应用开发人员吗?想知道怎样使用Go开发基于web的应用程序吗?你想要知道怎样使用类似于已知的框架的方式进行开发,在那儿你能重复的利用已知的知识? 如果是这样,那么你可能已经做了一些搜索,无论是在谷歌,StackOverflow的或其他网站,以寻求一个框架来帮助你;你可能已经看到了有许多可能的选择,包括Beego,Martini和Gorilla,另外还有net/http包。 这四个当中,我尝试的最多的就是Beego。我认为,它的功能十分的丰富,但是不太复杂,因此上手是相对较快的。 地狱星星翻译于 3 个月 前 0人顶 顶 翻译的不错哦! Beego不是一般的web开发包。它构建在大量已存在的Go之上,提供了许多的功能,以...阅读全文

博文 2014-10-04 19:25:56 中奖啦, 地狱星星, --zxp

Golang 微框架 Gin 简介

所谓框架 框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应手的时候,可以尝试改造一些框架,或是自己创造一个。 曾经我以为Python世界里的框架已经够多了,后来发现相比golang简直小巫见大巫。golang提供的net/http库已经很好了,对于http的协议的实现非常好,基于此再造框架,也不会是难事,因此生态中出现了很多框架。既然构造框架的门槛变低了,那么低门槛同样也会带来质量参差不齐的框架。 考察了几个框架,通过其github的活跃度,维护的team,以及生产环境中的使用率。发现Gin还是一个可以学习的轻巧框架。 Gin Gin是一个g...阅读全文

博文 2017-12-03 16:03:06 mickelfeng

微信朋友圈转疯了(golang写小爬虫抓取朋友圈文章)

很多人在朋友圈里转发一些文章,标题都是什么转疯啦之类,虽然大多都也是广告啦,我觉得还蛮无聊的,但是的确是有一些文章是非常值得收藏的,比如老婆经常就会收藏一些养生和美容的文章在微信里看。 今天就突发奇想,不如利用搜索引擎把朋友圈的文章分门别类的(当然是老婆感兴趣的类型了)抓取出来,然后把图片也Down下来,生成一个网站给朋友们看岂不是不错? 说做就做,于是就有了这个网站:朋友圈转疯了 (http://www.meijia0.com) 域名不太好,凑合着用呗。(之前其实是准备用来做美甲图片站的,后来搁置了。因为老婆在家真的是没有时间去经营这种东西)。 既然说做就做,先利其器嘛, 把落灰的GO再捡起来,顺便学习了一下七牛云存储的API(不得不说真的是很受用),写了一个spider(gocrawl/...阅读全文

博文 2014-10-04 19:26:07 forbe

几款Golang IDE对比

Go语言目前已经在开发者中越发的流行,自然很多人都在寻找合适的IDE来实现代码语法高亮、自动补全以及其他编辑特性。 下面就几种常用的IDE进行对比介绍: 1. Sublime text 这个文本编辑器在开发者中较为普及,应该说sublime并非一个完全成熟的IDE,但是它具备很多语言的扩展插件,比如python、lua等,其中有一个插件GoSublime专门针对go语言,GoSublime提供了语法高亮、自动补全等功能,这些功能使得Sublime Text成为一很实用的Go IDE。 2. IntelliJ IntelliJ IDE由Jetbrains提供,在java开发者中非常流行,其自带的Go插件支持语法高亮显示、代码补全、自动编译以及子库支持。这就使得你可以很方便地将项目拆分成多个包的...阅读全文

博文 2017-08-25 07:31:34 rudyn

IntelliJ Idea 14 安装 Golang 插件 google-go-lang-idea-plugin 的方法

IDEA 的编辑器都很强悍,所以现在学Go 也想用他啊,无奈这个插件搞了好久,整理了下流程记录下 1. 当然是下载 IDEA 编辑器了 http://www.jetbrains.com/idea/download/ 附上旗舰版注册机地址 http://download.csdn.net/detail/abacaba/8240327 有购买能力的请尽力购买正版哦,这么好的IDE用盗版真心觉得很罪恶啊,无奈包包里的票票太少 2. 下载插件项目源码自行编译jar插件包 https://github.com/go-lang-plugin-org/go-lang-idea-plugin 将下载的zip包解压,然后执行 File -> open 操作打开该项目 打开该项目后,进行 SDK 和 模块配置 ...阅读全文

博文 2015-03-12 05:00:00 zsjangel

go-import下划线的作用

在Golang里,import的作用是导入其他package,但是今天在看beego框架时看到了import 下划线,不知其意,故百度而解之。 import 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。 【示例】 目录结构: GOPATH --bin --pkg --src main.go --hello --imp init.go main.go 1 package ...阅读全文

博文 2015-06-20 03:00:01 hezhixiong

go服务端----使用gin框架搭建简易服务

使用gin框架搭建简易服务 go语言web框架挺多的,各有各的特点和风格。我之所以在项目中使用gin框架,是因为项目一开始是用的martini,一个设计得很好的框架,但是存在一个比较严重的问题,就是大量使用反射使用太多导致效率过低(这个问题也导致了程序在访问量暴涨时内存上涨过快的问题),而且这个框架在去年就没有人维护了,而作者推荐使用风格很相近的gin框架,大概看了一下,风格确实差不多,而且效率很高,于是就用了gin。至于其它的框架,了解得比较多的是beego,项目中也使用了它的子项目beelog,但是由于我做的项目是偏向于应用服务,而不是网站服务,它的风格更适合网站服务,因此就没有选择它。 贴一下这两个框架的github仓库,martini就不推荐了 gin beego 下面贴一下用gin...阅读全文

博文 2016-11-04 13:00:06 KeKeQiaoKeLi

golang Socket编程

Socket基础知识 通过上面的介绍我们知道Socket有两种:TCP Socket和UDP Socket,TCP和UDP 通过上面的介绍我们知道Socket有两种:TCP Socket和UDP Socket,TCP和UDP是协议,而要确定一个进程的需要三元组,需要IP地址和端口。 IPv4地址 目前的全球因特网所采用的协议族是TCP/IP协议。IP是TCP/IP协议中网络层的协议,是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4),发展至今已经使用了30多年。 IPv4的地址位数为32位,也就是最多有2的32次方的电脑可以联到Internet上。近十年来由于互联网的蓬勃发展,IP位址的需求量愈来愈大,使得IP位址的发放愈趋严格,目前基本上IPv4的地址很少了,我们公...阅读全文

博文 2014-10-04 19:26:06 zhjih123

Go语言现有Web开发框架

经常有人问:Go有哪些Web开发框架? 做Web开发的总是想要一个开发框架。好的框架的确很有用处。不过,如果Go新手,记得一定别被框架束缚住了,一定要学习Go的基础。 为了方便大家,我将现有的一些框架(**文档比较全的**)做一个汇总(没用过,没法提供各种对比): 1、web.go,源码地址:https://github.com/hoisie/web,官方首页:http://webgo.io/ 2、revel,类似Java的play框架。源码地址:https://github.com/robfig/revel,官方首页:http://robfig.github.io/revel/。Danny.Tian总结的学习笔记:[一步一步学习Revel Web开源框架](http...阅读全文

Golang 的Gin框架入门教学

学习Golang差不多有一个星期时间,开始自己做点小功能,练练手。 Gin 介绍 Gin 是一个 Golang 写的 web 框架,具有高性能的优点,,基于 httprouter,它提供了类似martini但更好性能(路由性能约快40倍)的API服务。官方地址:https://github.com/gin-gonic/gin 安装框架 配置好GOPATH,建议自己在GOPATH建个项目,这里我以aze.org作为项目目录。 $ go get github.com/gin-gonic/gin 安装mysql驱动 $ go get github.com/go-sql-driver/mysql 组织项目 经过上面的model和handler的分离,代码结构变得更加清晰,可是我们还是单文件。下一步将...阅读全文

博文 2018-08-29 06:36:06 阿泽Aze

20 个好用的 Go 语言微服务开发框架

作者 | Peter Wayner译者 | 阿拉丁2007 年,谷歌的一个团队在调研计算机编程语言时,发现有数百种可用于开发软件的语言,但没有一种能提供谷歌真正需要的特性。有些语言太过底层,有些又太过复杂,有些特性对他们来说反而会碍手碍脚。谷歌的开发人员想要的语言要简单到可以在几个小时内学会,但又要复杂到足以应付现代互联网的信息流。他们的解决方案就是 Go 语言,这门语言对于 C 语言、Java 或 JavaScript 程序员来说——换句话说,就是所有的程序员——都很容易掌握。Go 语言提供了足够的特性来编写循环和代码块,但没有一个特性是需要很长的时间才能掌握的。内置的例程经过优化,可以从互联网获取数据和发送数据。其他的东西——即使是非常聪明的想法——都被排除在外。Go 语言是微服务开发团...阅读全文

博文 2018-12-23 21:09:25 InfoQ

Golang设置国内代理

Golang V1.13之后支持通过设置变量GOPROXY来修改代理地址,默认的代理服务器 https://proxy.golang.org在国内访问经常出现timeout image.png 可以通过设置国内代理来加速下载 详见:https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md 在终端执行即可 go env -w GOPROXY=https://goproxy.cn,direct image.pn...阅读全文

博文 2019-12-11 06:32:39 李小西033

go语言解析html

有两个不错的库: https://github.com/PuerkitoBio/goquery 一个是 http://code.google.com/p/go.net/html html是html的解析器,把html文本解析出来,goquery基于html包,在此基础上结合cascadia 包(一个css选择器工具),实现类似于jquery的功能,操作html非常方便。 使用goquery来查找,选择相应的html节点,但如果要对选择的节点进行修改,删除操作,还需要深入使用html包。 html包把html文本解析为一个树,这个树有很多Node组成,操作的核心就在于对Node的操作。 用几个例子来说明一下吧: doc, err := goquery.NewDocument("http://s...阅读全文

博文 2015-08-06 20:00:07 nop4ss

go编程之beego\orm使用

前面有提到go的mysql操作,但使用其进行数据库的操作封装,显然在实际的开发迭代中有几大问题存在,首先,sql操作及语句啰嗦而且复杂,其次工作效率也不是很高;如果使用此方法进行数据库开发,势必照成过多的代码冗余,且使用过程中容易产生各种问题。所以,今天我们一起来看看怎么使用beego下orm框架来辅佐我们进行mysql数据库操作。 orm即对象关系映射,通过类或者结构体与数据库表进行一一对应,今天我们通过简单的数据库操作代码来对照说明,且在代码中有对应操作的解释: import ( "fmt" _ "github.com/Go-SQL-Driver/MySQL" "github.com/astaxie/beego/orm" //对应的beego/orm库 可以通过 go get来获取到本地...阅读全文

博文 2015-06-17 23:08:20 xixionedream

Golang 网络爬虫框架gocolly/colly 一

Golang 网络爬虫框架gocolly/colly 一 gocolly是用go实现的网络爬虫框架,目前在github上具有3400+星,名列go版爬虫程序榜首。gocolly快速优雅,在单核上每秒可以发起1K以上请求;以回调函数的形式提供了一组接口,可以实现任意类型的爬虫;依赖goquery库可以像jquery一样选择web元素。 gocolly的官方网站是http://go-colly.org/,提供了详细的文档和示例代码。安装colly: go get -u github.com/gocolly/colly/... 在代码中导入包: import "github.com/gocolly/colly" colly的主体是Collector对象,管理网络通信和负责在作业运行时执行附加的回掉...阅读全文

博文 2017-12-30 00:30:00 majianguo

求教:最好用顺手的Go语言IDE或者编辑器

因为写PHP和前端的缘故,我是JetBrains的重度依赖用户,曾经IDEA、PHPStorm装了一大堆。 JetBrains也有Go语言的扩展,但总是感觉这货华丽丽的不太实用(对Go来说),毕竟Go是静态编译型语言,不需要那么强大的动态方法、类型提示功能,随便打两个字母,他就提示一大堆,有的没有的都一股脑的推送给你,而可能我需要的只是局部变量的一个提示而已。 求问各路大仙,日常习惯用什么编辑器或IDE可推荐?最好附推荐理由...阅读全文

Go 系列教程 —— 7. 包

这是 Golang 系列教程的第 7 个教程。 ### 什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main [函数](https://studygolang.com/articles/11892)和几个其他的函数。在实际中,这种把所有源代码编写在一个文件的方法并不好用。以这种方式编写,代码的重用和维护都会很困难。而包(Package)解决了这样的问题。 **包用于组织 Go 源代码,提供了更好的可重用性与可读性**。由于包提供了代码的封装,因此使得 Go 应用程序易于维护。 例如,假如我们正在开发一个 Go 图像处理程序,它提供了图像的裁剪、锐化、模糊和彩色增强等功能。一种组织程序的方式就是根据不同的特性,把代码放到不同的包中。比如裁剪可以是...阅读全文

博文 2017-12-08 14:11:32 heyulong

golang高性能日志库zap配置示例

golang高性能日志库zap配置示例 zap是uber开源的Go高性能日志库,gitlab地址 安装 go get -u go.uber.org/zap 请注意,zap仅支持两个最新的Go版本。 示例 简单示例 格式化输出 package main import ( "go.uber.org/zap" "time" ) func main() { // zap.NewDevelopment 格式化输出 logger, _ := zap.NewDevelopment() defer logger.Sync() logger.Info("无法获取网址", zap.String("url", "http://www.baidu.com"), zap.Int("attempt", 3), zap....阅读全文

博文 2019-01-02 19:34:47 阿甘__

基于Go实现的分布式MQ

基于Go实现的分布式MQ 2015-09-14 赵超 讲师:赵超(Beta版厨子3.0) 个人简介: 6年的Java开发经验、先后就职于淘宝Java中间件团队、腾讯无线媒体产品部。现就职于陌陌担任基础业务组主管。专注于分布式消息总线、LBS技术领域、golang在大规模生产换环境应用的探索。 今天交流的内容也是我上半年主要做的一个开源的MQ的项目,希望对大家有帮助 一、RPC与MQ之间对比 我们通常接触到的RPC同步调用的种类非常多比如fb 的thrift/阿里的dobbo 腾讯的taf、淘宝的hsf这类同步调用框架 从图里面可以看到作为一个业务完成后端要发生非常多的RPC通信 随着业务的复杂度提高,各服务间的依赖度也逐步加大,那么服务间的响应时间也就各有参差了 在一个请求链路上如果存在一个...阅读全文

博文 2015-10-24 05:00:01 zdy0_2004

go语言之http

go语言http 1、net/http 包提供的 http.ListenAndServe() 方法,在指定的地址监听该方法用于在指定的 TCP 网络地址 addr 进行监听,然后调用服务端处理程序来处理传入的连 接请求。该方法有两个参数:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序, 通常为空,这意味着服务端调用 http.DefaultServeMux 进行处理,而服务端编写的业务逻 辑处理程序 http.Handle() 或 http.HandleFunc() 默认注入 http.DefaultServeMux 中。2.处理https请求 func ListenAndServeTLS(addr string, certFile string, keyFile strin...阅读全文

博文 2018-11-14 18:35:09 PowerMichael

golang:xpath选择器“htmlquery”简单用法

在做爬虫时,经常要用到html解析器提取数据,Python里面有神器lxml,go里面可以选择htmlquery或者goquery。其中htmlquery使用xpath选择器,goquery使用css选择器。就使用体验来说,htmlquery更方便一些,这儿主要介绍htmlquery的一些基本用法。 htmlquery是用于HTML的XPath数据提取库,可让通过XPath表达式从HTML文档中提取数据,使用起来很简单方便。xpath语法见https://www.w3school.com.cn/xpath/xpath_syntax.asp。 htmlquery安装: go get github.com/antchfx/htmlquery 经常使用到的函数有: func Parse(r io....阅读全文

博文 2019-10-30 18:32:53 aside section._1OhGeD

科学上网工具包 V2Ray

V2Ray 是一个科学上网工具包,用于简化和复用其它科学上网工具,加速二次开发。 “V2”来源于 [V2 火箭](https://zh.wikipedia.org/wiki/V-2%E7%81%AB%E7%AE%AD),Ray 即射线,意指新一代的科学上网工具。 ## 主要特点 * 多对多服务器支持,负载均衡 * 支持多用户 * 开放协议支持,兼容流行的科学上网工具 ## 捐赠 目前 V2Ray 还在早期开发阶段,暂时没什么可用性,也谈不上捐赠。如果你执意想捐赠,请发送 Amazon Gift Card 至 [donate@v2ray.com](mailto:donate@v2ray.com...阅读全文

开源项目 2015-09-27 16:00:00 v2ray

Go 系列教程 —— 17. 方法

欢迎来到 [Golang 系列教程](/subject/2) 的第 17 个教程。 ### 什么是方法? 方法其实就是一个函数,在 `func` 这个关键字和方法名中间加入了一个特殊的接收器类型。接收器可以是结构体类型或者是非结构体类型。接收器是可以在方法的内部访问的。 下面就是创建一个方法的语法。 ```go func (t Type) methodName(parameter list) { } ``` 上面的代码片段创建了一个接收器类型为 `Type` 的方法 `methodName`。 ### 方法示例 让我们来编写一个简单的小程序,它会在结构体类型上创建一个方法并调用它。 ```go package main import ( "fmt" ) type Employee struc...阅读全文

博文 2018-01-22 18:00:02 polaris

设置GOPATH

> 我们为什么要设置GOPATH 设置GOPATH的要求对于首次安装Go工具的Go用户来说是一个主要问题,并且在他们使用这些工具的初始体验中得到了 错误 : "you have to set a GOPATH" 即使您不关心设置此变量,仍然需要您在项目中注意: 1. 用户仍需要将 $GOPATH/bin 添加到其PATH中以运行由`go install`初始化的可执行文件执行`go get` 2. 使用Go语言开发的用户仍然需要了解GOPATH的存在,其位置和结构。 3. 如果你的`GOROOT`(你检查Go的源代码的位置)是默认的GOPATH,如果没有设置GOPATH,工具将拒绝使用默认的GOPATH来破坏你的GOROOT。 4. 如果默认值不适合你,你仍然可能更喜欢设置自定义GOPATH...阅读全文

博文 2019-01-10 15:50:24 wujiangwei

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

云栖大会压轴好戏 阿里云发布视频云V5计划与系列新产品

9月25 - 27日,2019云栖大会如期召开。在大会最后一天下午,阿里云智能视频云分论坛为今年的云栖大会献上了一场精彩的压轴好戏。​视频云V5计划发布 使能生态合作伙伴会上,阿里云智能研究员金戈进行《视频云新“三网一云”,驱动行业应用创新》主题演讲,并发布视频云V5计划。金戈表示:阿里云将全面打造新“三网一云”的产业布局,基于领先的视频和网络技术、阿里云达摩院的AI技术与阿里巴巴商业场景实践三级先发优势,凭借视频云多年沉淀的直播网、点播网和音视频通信网三大视频技术的融合应用,和一系列围绕云端媒体资源全生命周期构建的云计算服务和AI算法引擎,锻造出一个智能、融合、高效、经济、稳定可靠的视频IT基础设施服务平台。​据悉,依托新“三网一云”技术底座,视频云V5计划将正式启动。其目的是构筑开放、协...阅读全文

在 VS Code 中使用 gopls

简介 我一直是用 VS Code 作为 Go 语言的 IDE,使用的是官方的 Go 扩展,但在使用过程中发现有时候代码提示不够智能, 或者说基本没有提示. Go 扩展默认是使用大量的 Go 工具来提供各种功能的,每个工具提供某个方面的能力, 比如代码提示是依靠 gocode 的. 不过微软在开发 VS Code 过程中, 定义一种协议, 语言服务器协议,Language Server Protocol. 这可是个好东西, 如果你需要开发编辑器或 IDE,就不需要再为每种语言实现诸如自动完成, 代码提示等功能了,直接利用 语言服务器协议 就行了. gopls 就是官方的语言服务器, 当前处于 alpha 状态. 安装并设置 gopls 安装方式一 打开 VS Code 的设置, 搜索 go.u...阅读全文

博文 2019-09-03 20:02:42 帅气猫咪

游戏服务器框架 Leaf/go

Leaf 是一个使用 Go 语言开发的开源游戏服务器框架,注重运行效率 并追求极致的开发效率。Leaf 适用于几乎所有的游戏类型。其主要的特性: * 良好的使用体验。Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率 * 稳定性。Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃 * 多核支持。Leaf 通过模块机制和 [leaf/go](https://github.com/name5566/leaf/tree/master/go) 尽可能的利用多核资源,同时又尽量避免各种副作用 * 良好的模块支持。 一个 Leaf 开发的游戏服务器由多个模块组成(例如 [LeafServer](https://github.com/name5566/leafserver))...阅读全文

工作5年C++服务器,转GO的感触,GO服务器业余时间整理的,用时2个月,框架到细节

之前c++服务器,是端游转过手游来的,在我不断的优化下,成功从c++98到c++11,以及32位到64位的转变,从端游服务器,转到手游服务器,上线人数单服1W+没太大压力。 go是我业余的时候接触到的,在现在大环境下,高并发和跨平台是现在开发游戏服务器的主流,之前那套c++说实在是够用,只要能达到那个量,单服性能极致,我只服c++。 skynet+lua,c底层,lua逻辑,我也过来过c++底层,lua逻辑,但实际效果是lua并不是我想要去写的,可能我对lua脚本不感兴趣。go做的事情和skynet做的大同小异,都是携程,抢占式g调度模式,go 有个goroutine和channel,skynet lua虚拟机。 当时设计go的时候,由于跟c++大轮子有点出路,c++是循环轮子模式,单...阅读全文

golang http服务器跨域问题解决

func main() { openHttpListen() } func openHttpListen() { http.HandleFunc("/", receiveClientRequest) fmt.Println("go server start running...") err := http.ListenAndServe(":9090", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } func receiveClientRequest(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin"...阅读全文

博文 2016-04-12 20:00:01 JD85

使用consul实现分布式服务注册和发现

使用consul实现分布式服务注册和发现 七 06 bigwhite技术志 Airbnb, cluster, consul, docker, etcd, Go, Golang, haproxy, hashicorp, json, raft, SmartStack, ZooKeeper, 分布式系统, 强一致性, 服务发现, 服务注册, 选主 No Comments Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb的SmartStack等相比,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如Zoo...阅读全文

博文 2015-07-14 11:16:39 bigwhite

golang日志框架logrus

golang自带日志框架功能比较简单,仅提供print、panic、fatal三个方法,对于常规的日志切割等功能并未提供支持。 这里推荐使用sirupsen/logrus日志库。 logrus feature 结构化、可插拔的日志模块 完全兼容官方log库接口 Field机制 可扩展的HOOK机制 TEXT与JSON两种可选格式 简单使用示例 std Logger 与官方log类似,logrus也提供了一个名为std的标准logger,对外导出的各类方法直接使用std记录日志,一般可按如下方式使用 package main import log "github.com/sirupsen/logrus" func main() { log.Info("hello, world.") } 自建L...阅读全文

博文 2017-07-31 12:06:17 yiduyangyi

7天用Go从零实现系列7days-golang

7天能写什么呢?类似 gin 的 web 框架?类似 groupcache 的分布式缓存?或者一个简单的 Python 解释器?希望这个仓库能给你答案。目前已经实现 - 类似 gin 的 Web 框架 [Gee](https://geektutu.com/post/gee.html) - 类似 groupcache 的分布式缓存 [GeeCache](https://geektutu.com/post/geecache.html...阅读全文

开源项目 2020-02-13 20:55:34 geektutu

作为一名Java程序员,我为什么不在生产项目中转向Go

自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go。随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区。 那么问题来了,业余时间好学是一回事,真正要将一个新东西运用到生产中则是另一回事。JavaScript的开发者可以义无反顾地选择Node.js,但是对于Java开发者来说,在下一个大项目里究竟是该选择Go,还是Java呢? 郑重声明:本文并不是来探讨Go或者Java谁是更好的语言,每种语言都有自己的设计哲学和适用场景,今天主要是在探讨实际工程中的选择和权衡的问...阅读全文

博文 2015-09-23 10:40:41 丁雪丰

Go语言实战流媒体视频网站

Go语言实战流媒体视频网站网盘地址:https://pan.baidu.com/s/1ZlBQy0uYVQjVmnnlTcNgCQ 密码: qkx4备用地址(腾讯微云):https://share.weiyun.com/5uWBjZn 密码:pcsqt3 本课程带着同学们使用Go语言实战一个流媒体视频网站。 从后端Server到前端UI,全面掌握Go语言的开发关键技能和Go语言编码的架构风格。同时通过讲述SOA服务化解耦的设计理念,帮助同学们理解真实web服务背后的内容。最后通过架构调整实现Cloud native(云原生)部署。 完整开发流程从环境配置、安装到前后端Server实现以及最后部署上云 超值延伸讲解Go语言的并发理念与应用,在Web前端模版引擎的使用方法。在Cloud nati...阅读全文

博文 2018-08-08 11:35:19 qq5b67b6c726e17

goproxy和msocks简介

goproxy是我个人写的,和shadowsocks同类的软件。当然,在设计之初我完全不知道shadowsocks的存在,goproxy的最初目标也不是成为shadowsocks的同类。只是我一直无法实现一个可靠的,能够达成目标的系统。最后想,那这样吧,我找一个跳一跳能够够到的苹果。大幅简化的结果就是goproxy——后来我才知道shadowsocks。 shadowsocks的基本原理 shadowsocks的基本概念,就是利用某种不同于SSL的协议,将本地的socks数据流转发到远程。这个协议,在默认版本中是一个凯撒变换,后来有了aes等加密算法。goproxy也采用了类似的做法,同样支持aes等加密算法。在每次连接时,客户端先用加密通道连接服务器端,然后完成整个连接通路。这样的设计鲁棒...阅读全文

博文 2014-10-06 06:06:32 shell909090

Go官方库RPC开发指南

Go官方提供了一个RPC库: net/rpc。包rpc提供了通过网络访问一个对象的方法的能力。服务器需要注册对象, 通过对象的类型名暴露这个服务。注册后这个对象的输出方法就可以远程调用,这个库封装了底层传输的细节,包括序列化。服务器可以注册多个不同类型的对象,但是注册相同类型的多个对象的时候回出错。 我最近写了一本电子书: Go RPC开发指南,介绍Go RPC开发的相关技术,这是其中的一章,专门介绍官方库 net/rpc的使用。 同时,如果对象的方法要能远程访问,它们必须满足一定的条件,否则这个对象的方法回呗忽略。 这些条件是: 方法的类型是可输出的 (the method's type is exported) 方法本身也是可输出的 (the method is exported) 方法...阅读全文

博文 2016-09-18 17:00:02 colobu

几款Golang IDE对比

Go语言目前已经在开发者中越发的流行,自然很多人都在寻找合适的IDE来实现代码语法高亮、自动补全以及其他编辑特性。 下面就几种常用的IDE进行对比介绍: 1. Sublime text 这个文本编辑器在开发者中较为普及,应该说sublime并非一个完全成熟的IDE,但是它具备很多语言的扩展插件,比如python、lua等,其中有一个插件GoSublime专门针对go语言,GoSublime提供了语法高亮、自动补全等功能,这些功能使得Sublime Text成为一很实用的Go IDE。 2. IntelliJ IntelliJ IDE由Jetbrains提供,在java开发者中非常流行,其自带的Go插件支持语法高亮显示、代码补全、自动编译以及子库支持。这就使得你可以很方便地将项目拆分成多个包的...阅读全文

博文 2018-12-15 13:31:33 rudyn

【Gin框架】为什么我压测Gin框架性能只能达到300qps就开始超时呢

大家一直都说Go性能很好,而Gin框架更是比较好的web服务框架。但是为什么我用http_load压测Gin,当300qps的时候,就开始出现大量超时。而且压测10min后就开始出现超时现象。 我的Gi操作就是当请求进来后,sleep 1毫秒,然后return ok(1毫秒为模拟服务响应时间,比如查数据库什么的),但是即使这样当压力到达300qps的时候,服务就超时了。。。 请大神们帮忙,是不是我使用的哪个地方有问题?至少Gin也要导到少说1千,多了1万的qps吧?为啥到了300就有问题了。。。 代码如下: package main import ( "time" "gopkg.in/gin-gonic/gin.v1" "net...阅读全文

主题 2017-05-02 03:36:55 qiran87

使用腾讯云函数在更新COS时自动刷新CDN缓存

title: 使用腾讯云函数在更新COS时自动刷新CDN缓存 categories: [后端开发, NodeJS开发] [系统与运维] abbrlink: 8693d6cf date: 2019-11-09 17:03:48 tags: 0x01.背景介绍 最近因为服务器资源变动,把之前的Wordpress博客迁移到了Hexo中。Hexo博客的使用形式和Wordpress相差很多,并不是动态网站,而是自行存储博客源内容(Git仓库或其他硬盘存储方式均可以),最终使用hexo-cli工具将博客的内容生成静态网页资源,部署到Apache等HTTP服务中即可访问。经过一番调研,最后决定将Hexo生成的静态网页资源放到了腾讯云的COS(对象存储服务)中,COS支持静态网站功能,而且提供每月的免费空间...阅读全文

Go中运用chan的简单案例

开发环境:windows7 64位、编辑器:sublime text3 简要说明:Go中可以创建有缓冲的chan(比如: c1:=make(chan int,4)就是缓冲区大小为4的chan了 ),也可以创建没有缓冲的chan(比如: c2:=make(chan int)就是没有缓冲的chan)。 代码如下,代码中有注释: package main import ( "fmt" ) func main() { c := make(chan int, 2) //创建带有缓冲的chanel,缓冲大小是2 //这样调用函数,那么f1和f2就是并发执行了 go f1(c) //将参数c传递给f1() go f2(c) //将参数c传递给f2() c1 := <-c c2 := <-c //main函...阅读全文

博文 2015-11-14 09:00:01 汉斯-冯-拉特

go语言:巧用beego框架的bee工具进行热编译测试(不用每次都go run xxx.go了~)

对于我们go语言的初学者来说,喜欢自己一边学一边写写小代码。每次写完之后,我们都想看看程序结果,虽然go语言提供的go run工具灰常方便,直接运行就能看到结果,但是每次都重复这一个命令是不是有点烦呢? 幸好beego框架提供了一个bee工具,这个工具本来是用于框架的热编译使用的,但我们取巧一点也可以用于我们小型的测试程序的! 首先运行下面命令: go get github.com/beego/bee 如无意外,应该在$GOPATH/bin目录下自动生成一个bee运行文件,windows下应该是bee.exe(如果有意外,应该是那种问题,因为本人一直科学上网,所以不知道会不会存在那种问题。) 切换到你测试的目录,比如$GOPATH/src/test,新建一个测试文件(文件名随意): pack...阅读全文

博文 2015-01-26 08:00:01 JM_Joy