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

模拟浏览器登录操作

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

[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

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

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

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

微信朋友圈转疯了(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

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

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语言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 阿甘__

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

Golang 中的微服务 - 第一部分

## 介绍 Golang 中的微服务系列总计十部分,预计每周更新。本系列的解决方案采用了 protobuf 和 gRPC 作为底层传输协议。为什么采用这两个技术呢?我花了相当长的时间,才想出并决定采用这个方案。这个方案对开发者来说,非常清晰而简明。我也很乐意把自己在搭建、测试和部署端到端的微服务过程中的心得,分享给想接触这块的朋友们。 在这个教程中,我们将先接触几个基础的概念和术语,然后开始搭建第一个简单的微服务模型。 本系列中,我们将会创建以下服务: - 委托 - 存货清单 - 用户 - 认证 - 角色 - 容器 整个技术栈从底至顶主要可划分为:golang、mongodb、grpc、docker、Google Cloud、Kubernetes、NATS、CircleCI、Terrafor...阅读全文

博文 2017-12-26 14:20:00 polaris

科学上网工具包 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

51cto微职位有学习的吗+jiayouya01可以交换

图片发自简书App 龙果学院从无到有构建亿级微服务秒杀系统(真实工业界案例)51cTo学院|微职位高端培训MySQL 数据库高级工程师人工智能工程师标准化课程go语言高级开发工程师7周Spring Cloud微服务架构项目实战golang从入门到精通高端 JAVA 架构课程精英培训计划优达学城纳米学位项目微信小程序开发腾讯课堂:Android开发—高级开发专题系列全套课程【动脑学院】腾讯课堂:前端高级技术专家研发课 WEB全栈架构史上最全微信项目:订阅号+小程序+小游戏视频课...阅读全文

博文 2019-06-23 16:32:39 啦啦吼

在 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 帅气猫咪

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

goproxy和msocks简介

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

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

几款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

使用腾讯云函数在更新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支持静态网站功能,而且提供每月的免费空间...阅读全文

GopherChina大会视频大全

Gopher China 历届大会视频都放到这里了。 以下视频需要翻墙才能观看,请大家自行找梯子哈。 GopherChina2019(北京) 等待更新... GopherChina2018(上海) Day1 1、基于Go构建滴滴核心业务平台的实践 石松然2、Go在Grab地理服务中的实践 张志印3、 Rethinking Errors for Go 2 Marcel4、Go在区块链的发展和演进 姜家志5、Badger Fast Key Value DB in Go Manish6、Golang在阿里巴巴调度系统Sigma中的实践 李雨前7、罗辑思维Go语言微服务改造实践 方圆8、Golang打造下一代互联网 IPFS全解析 余长洪 Day2 1、Composition In Go Willi...阅读全文

博文 2019-03-18 18:34:40 如来神掌

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 汉斯-冯-拉特

Golang 微服务教程(一)

译文链接:wuYin/blog原文链接:ewanvalentine.io,翻译已获作者授权。 本节对 gRPC 的使用浅尝辄止,更多可参考:gRPC 中 Client 与 Server 数据交互的 4 种模式 前言 系列概览 《Golang 微服务教程》分为 10 篇,总结微服务开发、测试到部署的完整过程。 本节先介绍微服务的基础概念、术语,再创建我们的第一个微服务 consignment-service 的简洁版。在接下来的第 2~10 节文章中,我们会陆续创建以下微服务: consignment-service(货运服务) inventory-service(仓库服务) user-service(用户服务) authentication-service(认证服务) role-servic...阅读全文

博文 2018-06-01 16:34:38 wuYin

go语言示例-Timer计时器的用法

计时器用来定时执行任务,分享一段代码: package main import "time" import "fmt" func main() { //新建计时器,两秒以后触发,go触发计时器的方法比较特别,就是在计时器的channel中发送值 timer1 := time.NewTimer(time.Second * 2) //此处在等待channel中的信号,执行此段代码时会阻塞两秒 <-timer1.C fmt.Println("Timer 1 expired") //新建计时器,一秒后触发 timer2 := time.NewTimer(time.Second) //新开启一个线程来处理触发后的事件 go func() { //等触发时的信号 <-timer2.C fmt.Print...阅读全文

博文 2015-03-04 03:00:02 baiyuxiong

golang 下载和上传,处理多文件上传

package main import ( "net/http" "os" "io" "strconv") func main() { f, err := os.OpenFile("K:/file.mp3", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) stat, err := f.Stat() //获取文件状态 if err != nil { panic(err) } //把文件指针指到文件末,当然你说为何不直接用 O_APPEND 模式打开,没错是可以。我这里只是试验。 url := "http://127.0.0.1:3000/assets/37-02.mp3" req,_ := http.NewRequest("GET",url,nil); re...阅读全文

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

Go语言中的微服务

# Go语言中的微服务 ## 摘要 我最近在墨尔本 Golang 聚会上就如何开发微服务和框架做了一次演讲。在本文中,我将与您分享我的想法(此外,它对我来说是一个很好的复习)。 在这里,我要介绍以下框架: * [Go Micro](https://micro.mu/) * [Go Kit](https://gokit.io/) * [Gizmo](https://github.com/NYTimes/gizmo) * [Kite](https://github.com/koding/kite) ## 框架简介 ### Go Micro 这是我认为最受欢迎的框架之一。有很多博客文章和简单的例子可供使用参考。您可以从 [microhq](https://medium.com/microhq) 在...阅读全文

博文 2019-07-23 01:16:11 TomatoAres

Go 系列教程 —— 24. Select

欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 24 篇。 ## 什么是 select? `select` 语句用于在多个发送/接收信道操作中进行选择。`select` 语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,`select` 会随机地选取其中之一执行。该语法与 `switch` 类似,所不同的是,这里的每个 `case` 语句都是信道操作。我们好好看一些代码来加深理解吧。 ## 示例 ```go package main import ( "fmt" "time" ) func server1(ch chan string) { time.Sleep(6 * time.Second) ch <-...阅读全文

godebug:一个跨平台的Go程序调试工具

godebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。 godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。结果就是一个全功能的调试器,完全可以移植到不同平台。事实上,由于有了gopherjs ,你也可以在浏览器上进行调试: 点击此处尝试原文调试窗口。通过原文的“DEBUG IT”按钮,你可以编辑程序并重新调试它。 工作原理 下面这张是描述上面例子的矢量图: 从中可以看出原始代码转换了两次:第一次godebug插入调试instrumentation,然后gopherjs将结果编译成JavaScript。 让我们看一下instrumentation步骤,以下是go...阅读全文

博文 2015-04-23 01:00:00 mengyidan1988

golang模拟点击浏览器

发现一个很好玩的浏览器模拟操作包,下面演示一下,打开网站,点击某个链接 package main import ( "fmt" "time" "github.com/go-vgo/robotgo" "sourcegraph.com/sourcegraph/go-selenium" ) func main() { var webDriver selenium.WebDriver var err error caps := selenium.Capabilities(map[string]interface{}{"browserName": "firefox"}) if webDriver, err = selenium.NewRemote(caps, "http://localhost:951...阅读全文

博文 2017-09-11 03:41:47 YiYou.Org

服务发现:Zookeeper vs etcd vs Consul

【编者的话】本文对比了Zookeeper、etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考。 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口。管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多。因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口。唯一的问题是我们需要发现端口号,并且让别人知道。 当我们开始在一个分布式系统上部署服务到其中一台服务器上时,事情会变得更加复杂,我们可以选择预先定义哪台服务器运行哪个服务的方式,但这会导致很多问题。我们应该尽我们所能尽量利用服务器资源,但是如果预先定义每个服务的部署位置,那么...阅读全文

博文 2015-09-20 10:39:43 国会山上的猫TuxHu

免费翻墙看YouTube

前几天看到论坛里关于一些用户问是否有免费的VPN使用的,看到有人建议试用下517VPN,效果还是很不错的,不需要任何的设置,直接登陆就OK了,看看访问的YouTube网站:大家要知道在国内访问国外的网站有时候有点慢是正常的: ![8.png](http://studygolang.qiniudn.com/160509/2f5defee103eee1c96a70b74042c22c7.png) 官网:www点517js点net 517VPN加速器芯晴博客: blog.sina.com.cn/u/577109386...阅读全文

golang 编辑器选择

因为当前我是在ubuntu下用idea来开发erlang so 开发golang也是用这款IDE 首先就是插件!!! File - setting - plugins - 搜索golang - install 创建new project的时候 添加go的sdk,这就是你系统安装的那个go ok,至此ubuntu下得intellij-IDEA 也配置好了,可以愉快的玩耍go了 PS: shift+F10:编译 shift+F9:调试 F2 stop调试 F5 进入函数(退出函数F8) F6 逐步逐句 F8 跳到下一...阅读全文

博文 2017-10-12 06:30:01 huangliang-hb

使用go build 进行条件编译

当我们编写的go代码依赖特定平台或者cpu架构的时候,我们需要给出不同的实现 C语言有预处理器,可以通过宏或者#define包含特定平台指定的代码进行编译 但是Go没有预处理器,他是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同平台的代码 这篇文章将讲述Go的条件编译系统是如何实现的,并且通过实例来说明如何使用 1. 预备知识:go list命令的使用 在讲条件编译之前需要了解go list的简单用法 go list访问源文件里那些能够影响编译进程内部的数据结构 go list与go build ,test,install大部分的参数相同,但是go list不会执行编译操作。使用-f参数可以让我们提供的text/template里的代码在包含go/build.P...阅读全文

博文 2014-10-04 19:26:02 varding

Golang之bytes.buffer学习笔记

bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法。 Buffer 的 零值 是一个 空的 buffer,但是可以使用) Buffer 就像一个集装箱容器,可以存东西,取东西(存取数据) 创建 一个 Buffer (其实底层就是一个 []byte, 字节切片)...阅读全文

博文 2016-02-29 23:00:01 luomoshusheng

利用 goland 调试你的程序

前言 IntelliJ 编辑器的新成员 GoLand,go开发利器。作为一个现代的编辑器怎么能少了调试这个功能呢? 但是写普通的GO 应用程序没觉得异样。但是对于使用某些框架进行开发, 框架需要在它自己的命令行用参数启动,而不是直接编译运行。这样如果你想直接调试就麻烦了。 开始调试 先来看一个普通程序如何调试 准备 普通的程序,就是在你使用 go build 编译完成之后,可以直接启动运行的。 下面这个程序不需要任何启动参数就可以运行,我们已经打上了断点。 调试 我们只需要点击 main 函数旁边的绿色小箭头,选择 Debug 'go build main.go' 就可以开始愉快的调试了。 进阶 那对于需要参数才能运行的程序该怎么调试呢?下面是需要参数才能启动运行的程序,如果直接调试的话,就...阅读全文

博文 2019-07-22 01:04:16 樱桃老腰子

14周,炼成为20k+的go开发工程师 原价7000多老男孩就业班课程 无套路免费网盘分享下载!

​​​1:《14周,炼成为20k+的go开发工程师》来自老男孩IT教育,原价2760,由猿人部落整理免费发布!猿人部落承诺,本站所有课程百分百高清,完整,原画,包含所有的视频+素材+课件+源码,官方同步体验!2:本站所有课程格式MP4格式无密 可以通过网盘在线学习也可下载到本地,方便快捷!3:官方品质,信誉保证,本站包含慕课网,腾讯课堂,网易云,饥人谷,百度教育....等上万部课程正在陆续更新,感谢同学们的信任与支持,保证让同学们满意!同类精品课程分享:1:Go语言从入门到实战——简明高效的Go语言实战指南2:高并发&高性能 Go语言开发企业级抽奖项目3:GO从0到1实战微服务版抢红包系统4:Go实战仿百度云盘 实现企业级分布式云存储系统5:Google资深工程师深度讲解Go语言14周,炼成...阅读全文

博文 2019-08-04 14:50:24 yuanren110

Go语言爬虫

之前写爬虫都是用的python语言,最近发现go语言写起来也挺方便的,下面简单介绍一下。这里说的爬虫并不是对网络中的很多资源进行不断的循环抓取,而只是抓通过程序的手段都某些网页实现特定的信息抓取。可以简单分成两个部分:抓取网页,对网页进行解析。抓取网页。一般是向服务器发送一个http get/post请求,得到response。go提供的http包可以很好的实现。get方法:1resp, err := http.Get(“http://www.legendtkl.com") post方法:12resp, err := http.Post(“http://example.com/upload”, “image/jpg”, &buf)resp, err := http.PostForm(...阅读全文

博文 2017-07-02 19:22:57 Tao Kelu

Go 的快速 HTTP 包fasthttp

fasthttp 是 Go 的快速 HTTP 实现,当前在 1M 并发的生产环境使用非常成功,可以从单个服务器进行 100K qps 的持续连接。 HTTP 服务器性能与 net/http 比较 总而言之,fasthttp 比 net/http 快 10 倍 GOMAXPROCS=1 net/http: $ GOMAXPROCS=1 go test -bench=NetHTTPServerGet -benchmem PASS BenchmarkNetHTTPServerGet1ReqPerConn 100000 21211 ns/op 2407 B/op 30 allocs/op BenchmarkNe...阅读全文

2020 腾讯社招Golang后端面试经验分享

技术一面 基础面试 一面是通过电话直接沟通 go的调度 go struct能不能比较 go defer(for defer) select可以用于什么 context包的用途 client如何实现长连接 主协程如何等其余协程完再操作 slice,len,cap,共享,扩容 map如何顺序读取 实现set 实现消息队列(多生产者,多消费者) 大文件排序 基本排序,哪些是稳定的 http get跟head http 401,403 http keep-alive http能不能一次连接多次请求,不等后端返回 tcp与udp区别,udp优点,适用场景 time-wait的作用 数据库如何建索引 孤儿进程,僵尸进程 死锁条件,如何避免 linux命令,查看端口占用,cpu负载,内存占用,如何发送信号...阅读全文

博文 2020-04-18 22:32:47 阿俊

腾讯云+校园服务器,360元3年4个月

1.注册新用户,老用户可以直接注册个新号,使用绑定银行卡的手机认证即可。 2.点击**参团链接**:有效期到3月9号10点:https://cloud.tencent.com/act/campus/group/detail?group=15533 3.购买1年,付120元,可送4个月 4.可续费两年,付款240 5.最后可以花**360元**购买到**3年4个月**的服务器时长。 6.**配置**是**1核2G内存** ...阅读全文

使用 GoLand 进行调试的要点

*由 [Florin Păţan](https://blog.jetbrains.com/go/author/florin-patanjetbrains-com/) 于 [2019 年 2 月 14 日 ](https://blog.jetbrains.com/go/2019/02/14/debugging-with-goland-essentials/) 发表* 在今天的帖子中,我们将继续探索 GoLand 中的调试器功能。如果你想知道如何配置调试器。请查看我们之前的帖子,其中包含关于如何配置 IDE 在各种方案中工作的所有信息。 我们将讨论: * [控制执行流程](# 控制执行流程 ) * [计算表达式](# 计算表达式 ) * [查看自定义值](# 查看自定义值 ) * [更改变量值]...阅读全文

博文 2019-05-29 19:44:16 piglig

Golang 守护进程

package main import ( "fmt" "os" "os/exec" "path/filepath" ) func main() { fmt.Println(os.Getppid()) if os.Getppid() != 1 { //判断当其是否是子进程,当父进程return之后,子进程会被 系统1 号进程接管 filePath, _ := filepath.Abs(os.Args[0]) //将命令行参数中执行文件路径转换成可用路径 cmd := exec.Command(filePath) //将其他命令传入生成出的进程 cmd.Stdin = os.Stdin //给新进程设置文件描述符,可以重定向到文件中 cmd.Stdout = os.Stdout cmd.Std...阅读全文

博文 2015-02-11 19:00:02 未来还没来

微服务API网关Goku - 基于 Golang 开发的超高性能的企业级微服务API网关

A Powerful HTTP API Gateway in pure golang!Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang开发的微服务网关,能够实现高性能 HTTP API 转发、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性...阅读全文

从程序员到CTO

2019年最新总结,从程序员到CTO,从专业走向卓越,大牛分享文档pdf与PPT整理 整理大牛分享文档如下,持续更新一线开发架构,技术文档见github链接:https://github.com/0voice/from_coder_to_expert 内容有: 网易蜂巢公有容器云架构之路 新浪微博redis优化历程 微博Cache架构设计实践 Go在大数据开发中的经验总结 基于Go构建滴滴核心业务平台的实践 Go in TiDB 负载均衡利器 HAProxy功能剖析及部署案例 高可用技术的实践分享 高性能存储及文件系统 个性化推荐架构设计和实践搜狐视频 工商数据中心架构创新之路 互联网对传统企业应用架构 基于Kafka-Spark Streaming的数据处理系统及测试 交互式直播推流编码器...阅读全文

博文 2019-06-08 23:32:41 耐寒