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

我的 Go 语言学习之路

## 个人情况简介 徐新华(polaris),[Go 中文网](https://studygolang.com)站长。目前在北京一家创业公司担任 CTO。2011 年春,北京大学硕士毕业,先后在开心网、奇虎 360 工作。本人一直从事服务端相关工作,有着丰富的经验,对前端也有所掌握,Android 开发也了解些。虽然目前管理方面的事情较多,但一直保持着技术学习。擅长服务端技术和架构。 ## 我与 Go 语言 - 2012 年 3 月,Go1.0 正式发布时,有幸参与 360 的一个 Go 项目(关注过 Gopher China 大会的应该知道 360 有一个消息系统,而且 [Go 官方博客](http://blog.golang.com/qihoo)还专门介绍过,这个项目成...阅读全文

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几大框架的优势和区别?

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

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

使用 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

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初学者学习资料大汇总

网站教程 GO语言编程 and GO语言开发2048 from 实验楼 Go语言后台应用开发 form 优才网 Go语言第一课 form 慕课网 入门书籍 《Go 入门指南》(《The Way to Go》中文版) 《Go 编程基础》 《学习 Go 语言》 《GO 标准库》: Polaris出品,一本有价值的入门书籍。 《Go Web 编程》 《Go并发编程实战》 and 《Go命令教程》由@特价萝卜 出品。 视频资料 《Go编程基础》视频教程:由@Unknown 出品,与书籍配套。 《Go Web基础》视频教程 《Go名库讲解》视频教程 社区交流 StudyGolang Golang中国 Go友团 其他补充 Go学习笔记 by 雨痕大神 Golang在线开发环境 由Go语言中文网和实验楼共...阅读全文

博文 2015-05-04 14:00:00 严爬爬

golang和java的http性能对比

公司要重构一个统计项目,统计部分要提供一个web收数的接口,因为统计系统的日志量十分大,所以对web服务的性能要求很严格,在技术选择的背景下做了golang和java的性能对比. 测试环境: mac pro 13.4.0 golang: go version go1.3.1 darwin/amd64 java: 1.7.0_71, 基于tomcat容器 测试工具 apache Ab工具: http://httpd.apache.org/docs/2.2/programs/ab.html 测试流程 golang使用源生的net/http服务搭建http项目,接口输出hello world java使用servlet 搭建web项目,接口同样输出hello world ab工具使用 ab -c ...阅读全文

博文 2015-01-13 08:00:06 dandy

golang几种post方式

用golang进行http请求类型多了,总结备忘一下。 1.普通的post\get请求 var r http.Request r.ParseForm() r.Form.Add("uuid", orderUUID) bodystr := strings.TrimSpace(r.Form.Encode()) request, err := http.NewRequest("GET", url, strings.NewReader(bodystr)) if err != nil { //TODO: } request.Header.Set("Content-Type", "application/x-www-form-urlencoded") request.Header.Set("Connect...阅读全文

博文 2015-06-25 03:00:00 zhangqingping

GO PDF资源 汇总!

汇总密码下载链接:https://pan.baidu.com/s/1oqsCMKU8OXv7vt_srb1KOg 密码:7t4g PDF 合集下载链接:链接:https://pan.baidu.com/s/18s44v7f5HFTT_DL7qCf-9A 密码:5koe pdf 清单: Go语言学习笔记.雨痕(详细书签) go语言标准库 PDF 下载 Go并发编程实战 第2版_Lite PDF go语言程序设计 高清扫描版带书签 Go Web编程.(谢孟军).[PDF...阅读全文

博文 2018-07-31 23:35:28 REL9009

内网穿透工具 frp

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 ### frp 的作用 * 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 * 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 * 利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。 * 可查看通过代理的所有 http 请求和响应的详细信息。(待开发) ### 开发状态 frp 目前正在前期开发阶段,master ...阅读全文

开源项目 2016-09-07 15:56:33 fatedier

GO语言的开源库

Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org gowalker gosearch Sourcegraph Contributing To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account. Dead projects If you find a project in this list that is ...阅读全文

博文 2015-02-17 03:00:01 chu888chu888

Go 系列教程 —— 1. 介绍与安装

这是我们 Golang 系列教程的第一个教程。 ## Golang 是什么 Go 亦称为 Golang (译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。 Golang 的主要关注点是使得高可用性和可扩展性的 Web 应用的开发变得简便容易。(译注:Go 的定位是系统编程语言,只是对 Web 开发支持较好) ## 为何选择 Golang 既然有很多其他编程语言可以做同样的工作,如 Python,Ruby,Nodejs 等,为什么要选择 Golang 作为服务端编程语言? 以下是我使用 Go 语言时发现的一些优点: * 并发是语言的一部分(译注:并非通过标准库实现),所以编写多线程程序会是一件很容易的事。后续教程...阅读全文

博文 2017-11-22 06:18:25 heyulong

Go Web 框架Macaron

Macaron 是一个具有高生产力和模块化设计的 Go Web 框架。框架秉承了 Martini 的基本思想,并在此基础上做出高级扩展。 ##主要特性 - 支持子路由的强大路由设计 - 支持灵活多变的路由组合 - 支持无限路由组的无限嵌套 - 支持直接集成现有的服务 - 支持运行时动态设置需要渲染的模板集 - 支持对模块的轻松接入与解除 - 采用 inject 提供的便利的依赖注入 - 采用更好的路由层和更少的反射来提升执行速度 ...阅读全文

开源项目 2014-11-07 04:55:55 无闻

使用go tool pprof分析内存泄漏、CPU消耗

go中提供了pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来。 使用 net/http/pprof 做WEB服务器的性能监控 如果你的go程序是用http包启动的web服务器,想要查看自己的web服务器的状态。这个时候就可以选择net/http/pprof。 import _ "net/http/pprof"然后就可以在浏览器中使用http://localhost:port/debug/pprof/ 直接看到当前web服务的状态,包括CPU占用情况和内存使用情况等。当然,非WEB的也可以用下面方式启动WEB。在 main...阅读全文

博文 2016-05-10 02:00:02 ghj1976

GO 语言学习的五个阶段(带例子)

Francesc (@francesc) is a member of the Go core team and a developer advocate for Google Cloud Platform. He’s a lover of programming languages, a master of technical instruction at Google, and one of the creators of the Go tour. This talk was inspired by another talk from Raquel Vélez at JSConf. Slides for this talk have been posted here. Sourcegra...阅读全文

博文 2015-02-28 18:00:00 泥土笨笨, 砼砼, 社会主义好, 暗夜在火星, ShowColors, soaring, 无若

搭建自己的ngrok服务

搭建自己的ngrok服务 三 14 bigwhite技术志 Amazon, DNS, EC2, github, Go, Golang, http, https, Linux, ngrok, ngrokd, tunnel, Ubuntu, vps, 亚马逊, 代理, 企业号, 公众号, 域名, 开源, 微信, 隧道 1 Comment 在国内开发微信公众号、企业号以及做前端开发的朋友想必对ngrok都不陌生吧,就目前来看,ngrok可是最佳的在内网调试微信服务的tunnel工 具。记得今年春节前,ngrok.com提供的服务还一切正常呢,但春节后似乎就一切不正常了。ngrok.com无法访问,ngrok虽然能连上 ngrok.com提供的服务,但微信端因为无法访问ngrok.com,导致消息一...阅读全文

博文 2015-03-23 12:13:39 bigwhite

Go语言(golang)开源项目大全

内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑器 Encodings and Character Sets Games GIS Go Implementations Graphics and Audio GUIs and Widget Toolkits Hardware Language and Linguistics 日志 机器学习 Mathematics Misc Music 网络 Operating System Interfaces Other Random Toys, Experiments and Example Code P2...阅读全文

博文 2015-07-11 03:00:01 davygeek

使用 Go 语言完成 HTTP 文件上传与下载

最近我使用 Go 语言完成了一个正式的 web 应用,有一些方面的问题在使用 Go 开发 web 应用过程中比较重要。过去,我将 web 开发作为一项职业并且把使用不同的语言和范式开发 web 应用作为一项爱好,因此对于 web 开发领域有一些心得体会。 总的来说,我喜欢使用 Go 语言进行 web 开发,尽管开始一段时间需要去适应它。Go 语言有一些坑,但是正如本篇文章中所要讨论的文件上传与下载,Go 语言的标准库与内置函数,使得开发是种愉快的体验。 在接下来的几篇文章中,我将重点讨论我在 Go 中编写生产级 Web 应用程序时遇到的一些问题,特别是关于身份验证/授权的问题。 这篇文章将展示HTTP文件上传和下载的基本示例。我们将一个有 `type` 文本框和一个 `uploadFile`...阅读全文

博文 2018-02-03 11:47:58 polaris

Golang Web编程的Get和Post请求发送与解析

Golang Web编程的Get和Post请求发送与解析 时间 2014-08-19 15:26:48 CSDN博客 原文 http://blog.csdn.net/typ2004/article/details/38669949 本文的是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术。 文章结构包括: Client-Get 请求 Client-Post 请求 Server 处理 Get 和 Post 数据 在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码。 一、Client-Get package main import ( "fmt" "net/url" "net/http" "io/ioutil" "log" ) f...阅读全文

博文 2015-01-31 01:00:03 stephen830

A list of Go projects

Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.orggo-searchgowalkerSourcegraph Contributing To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account. Dead projects If you find a project in this list that is de...阅读全文

博文 2014-10-13 13:00:06 julong2011

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

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

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

在 Go 语言中使用 casbin 实现基于角色的 HTTP 权限控制

身份认证和授权对 web 应用的安全至关重要。最近,我用 Go 完成了我的第一个正式的 web 应用,这篇文章是在这个过程中我所学到的部分内容。 本文中,我们的关注点在于如何在 web 应用中使用开源的 casbin 库进行 HTTP 权限控制。同时,在示例代码中我们使用了 scs 库进行 session 管理。 下面的例子十分基础,希望它尽可能的展示了如何在 Go web 应用中实现权限控制。为了更侧重于展示 casbin 的使用,我们尽量简化业务逻辑(例如:不需密码的登陆操作)。我们一起来看一下! 注意:请不要在生产环境中使用所示的用例代码,该例子侧重于描述清晰,而不是安全性。 ## 建立 首先,我们创建一个 User 模型,并实现了相应方法: ``` go type User stru...阅读全文

博文 2018-02-01 14:12:46 polaris

2015 学习推荐书籍(golang ,web ,机器学习)

golang 以下都是来源于studygolang(一般人都知道): 《The Way to Go 中文 — 无闻译》 https://gobyexample.com/ 50 个 Go 开发者常犯的错误(英) 相对于《golang语言编程》比较适合新手入门。 《golang语言编程》 许式伟 比较全面讲解golang,有项目实例,有跟其他语言的对比,有深度也有广度,当然也就没那么细节了。 个人感觉,不适合第一门语言学习吧。唯有对比才有体会这门工程性语言。 估计,c++和python 都了解后 看更有感触! 《Go 学习笔记 第三版 — 雨痕》 总结性,看完语法在看这个不错,下半部分分析源码的,没投精力看,跳看,个人觉得了解/原理得话,看《深入理解go》加上其他blog就够了。。 ps : 他...阅读全文

博文 2015-06-23 13:07:17 u010129347

golang教程

最近兴趣所致,打算写一本书《build-web-application-with-golang》 目前已经完成了前面两章 1.GO环境配置 1.1. GO安装 1.2. GOPATH 与工作空间 1.3. GO shell命令 1.4. GO开发工具 1.5. 小结 2.GO语言基础 2.1. 你好,GO 2.2. GO基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 通讯 2.9. 小结 3.设计开发博客系统 4.如何实现路由 5.web语言处理 6.模版处理 7.session和cookie 8.数据库 9.如何编写REST 10.文件上传 11.webSockets 12.静态文件服务 13.如何国际化 14...阅读全文

博文 2014-10-04 19:26:45 astaxie

使用go,基于martini,和websocket开发简易聊天室

一、首先,需要了解一下websocket基本原理:here 二、go语言的websocket实现: 基于go语言的websocket也有不少,比如github.com/gorilla/websocket。这里选用的应该算是官方的实现code.google.com/p/go.net/websocket 使用go get安装下载即可。(不过,由于周知的原因:(,我是通过golangtc.com的第三方包下载功能才下载来的) 三、server端 第一个遇到的问题,websocket如何和martini集成? 安装websocket的文档,和http服务集成,应该使用如下方式 func ChatService (ws *websocket.Conn) { for{ io.Copy(ws,ws); }...阅读全文

博文 2015-01-16 18:00:02 dajianshi

go web应用的部署和热更新

### 序言 Golang标准库的http部分提供了强大的web应用支持,再加上negroni等中间件框架的支持,可以开发高性能的web应用(如提供Restful的api服务等)。 通常这些web应用部署在多台Linux操作系统的应用服务器上,并用Nginx等做为反向代理,实现高可用的集群服务。 当应用版本升级时,如何实现比较优雅的多态服务器的版本更新呢?我google、baidu了一下,也许我输入的关键字不对,也许这对很多人不是个问题,反正我是没有找到完整的方案。 ### 问题 Web应用的更新,我觉得可能需要考虑几个方面的问题: * 编译好的应用二进制文件、配置文件上传到服务器上; * 应用服务器能感知到有新的版本上传; * 在没有停止服务的情况下,热更新...阅读全文

主题 2015-10-25 08:08:28 rod6

go语言实现一个简单的登录注册web小程序

最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣。根据《go web编程》中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜: 这个例子使用到了beego框架和beedb框架,如果是go新手beego和beedb得自己去google下载安装。 目录结构: index.go package controllers import ( "fmt" "github.com/astaxie/beego" "login/models" ) type IndexController struct { beego.Controller } func (index *IndexController) Get() { sess := index.S...阅读全文

博文 2014-10-04 19:27:34 chengxw

微服务实战(一):微服务架构的优势与不足

【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足。 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询服务。他也经常在http://microservices.io上发表有关微服务的文章。 微服务正在博客、社交媒体讨论组和会议演讲中获得越来越多的关注,在Gartner的2014 Hype Cycle上它的排名非常靠前。同时,软件社区中也有不少持怀疑论者,认为微服务不是什么新东西。Naysayers认为这就...阅读全文

博文 2016-02-29 11:00:20 hokingyang

Go 应用框架 Iris-Go

原先我们用go来开发基于web的应用时,一般会用到net/http包,然后在代码中处理大量相同的事情,如:路由、鉴权等。 现在通过Iris-Go,可以方便的帮助你来开发基于web的应用。 简单来说:Iris-Go与国内大牛的[BeeGo](http://www.oschina.net/p/beego)类似,但从其官方介绍的资料来看,Iris-Go的性能更优! ![image](https://raw.githubusercontent.com/iris-contrib/website/cf71811e6acb2f9bf1e715e25660392bf090b923/assets/benchmark_horizontal_transparent.png...阅读全文

开源项目 2016-06-27 18:00:05 网友

go语言init和main函数

Go里面有两个保留的函数:init函数和main函数。下边就来比较一下两个函数的异同。 相同点:两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。 不同点:init可以应用于任意包中,且可以重复定义多个。main函数只能用于main包中,且只能定义一个。 下边说一下两个函数的执行顺序: 对同一个go文件的init()调用顺序是从上到下的 对同一个package中不同文件是按文件名字符串比较“从小到大”顺序调用各文件中的init()函数,对于 对不同的package,如果不相互依赖的话,按照main包中"先import的后调用"的顺序调用其包中的init() 如果package存在依赖,则先调用最早被依赖的package中的init() 最后调用main函数 下图截自astaxie...阅读全文

博文 2015-06-17 23:02:22 Mervyn1205

go语言的一些资料

1.首先推荐一个基础学习go的,趣味性,针对性不错,对基础很好。http://go-tour-zh.appsp0t.com/#1 2.tideide 一个好go编辑器,能调试,有项目构建,方便配置交叉编译,语法高亮功能。 3.go文档,中文的虽然不全,但是基本的都有https://golang-china.googlecode.com/svn/trunk/Chinese/golang.org/index.html#toc11 (也许要架梯子,你懂的) 4.go语言google group https://groups.google.com/forum/#!forum/golang-china 5.go实现的blog合集:http://www.cnblogs.c...阅读全文

学习Golang的步骤建议

一、快速入门 通过快速入门可以宏观的了解Go相关知识。快速入门可以去学习 go-tour 国内可以访问的中文版的 go-tour 地址有下面一些: http://gotour.qizhanming.com/#1 也可以自行搭建 go-tour 的环境, 搭建方法参考: http://www.cnblogs.com/ghj1976/archive/2013/03/08/2949237.html https://github.com/meilihao/tour_book/blob/master/go/conf.md 完成这个快速入门,就可以自己写一些小工具玩玩了, 碰到问题再具体搜索就行。 比如爬虫 Go语言 爬虫1-网络请求 http://www.cnblogs.com/ghj1976/arc...阅读全文

博文 2015-05-30 03:00:16 ghj1976

Go语言发展状况和前景

在2015年10月16日,技术大牛许式伟做了有关Go语言发展状况的演讲。 “ 1 大纲 . Go语言语法及标准库变化 . Go语言未来发展的判断 . Go语言开源项目 1.1Go语言语法及标准库变化 1.1.1 Go1.1 • 语言变化 – 支持方法值(Method values) •p.Write 等价于: func(b []byte) (int, error) { return p.Write(b) } •区别于方法表达式(Method expressions): (*Foo).Write,结果类型为 func(p *Foo, b []byte) (int, error) – int,uint 类型长度调整 •自 Go1.1 后,int,uint 的尺寸统一是 64bits,即使是在 3...阅读全文

博文 2016-03-02 12:00:02 GreatElite

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

Python、Java、Scala、Go Package对照表

格式转换类 分类 Python Java Scala Go Excel xlwt/xlrd, XlsxWriter POI - - PDF PyPDF2 Apache FOP - - CSV csvkit, tablib - - - XML解析 BeautifulSoup/bs4 - - - JSON - jackson json4s, spray-json - 数据处理和计算类 分类 Python Java Scala Go 二维数据分析 pandas - Saddle - 网络分析 networkx JUNG - - 矩阵计算 numpy - Algebird, Breeze blas, gocomplex, go-fn 科学计算 scipy SCaVis - - 符号计算 sympy ...阅读全文

博文 2015-04-10 19:00:00 Worldguy

Go中的make和new的区别

make用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配。 内建函数new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:new返回指针。 内建函数make(T, args)与new(T)有着不同的功能,make只能创建slice、map和channel,并且返回一个有初始值(非零)的T类型,而不是*T。 本质来讲,导致这三个类型有所不同的原因是指向数据结构的引用在使用前必须被初始化。例如,一个slice,是一个包含指向数据(内部array)的指针、长度和容量的三项描述符;在这些项目被初始化之前,sl...阅读全文

博文 2014-10-26 23:15:08 ghj1976

用Go语言进行ajax回传

一、后端部分 要想使用ajax,先要准备一个func (http.ResponseWriter, *http.Request)类型的函数来处理前端发过来的请求。 func OnAjax(res http.ResponseWriter, req *http.Request) { io.WriteString(res, "这是从后台发送的数据") } 接下来,要把一个网址和它对应起来,例如主页下的“/ajax”: http.HandleFunc("/ajax", OnAjax) 二、HTML部分 网页上的内容很简单,只有一个按钮和一个文字输入框。 阅读全文

博文 2015-03-24 15:00:01 独立风华

golang 热更新技巧

## 序言 Golang标准库的http部分提供了强大的web应用支持,再加上negroni等中间件框架的支持,可以开发高性能的web应用(如提供Restful的api服务等)。 通常这些web应用部署在多台Linux操作系统的应用服务器上,并用Nginx等做为反向代理,实现高可用的集群服务。当应用版本升级时,如何实现比较优雅的多态服务器的版本更新呢? ## 问题分析 Web应用的更新,我觉得可能需要考虑几个方面的问题: 1. 编译好的应用二进制文件、配置文件上传到服务器上; 2. 应用服务器能感知到有新的版本上传; 3. 在没有停止服务的情况下,热更新版本; 4. 最好所有的更新过程,可以脚本化,减少手动操作的错误。 ## 方案 其实,go社区有一些开源项目,可以自动检测web应用的改变,...阅读全文

博文 2017-04-21 02:00:37 lancelotM

用Golang的 http 包建立 Web 服务器

http 包建立 Web 服务器 package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数, 默认是不会解析的 fmt.Println(r.Form) //这些是服务器端的打印信息 fmt.Println("path", r.URL.Path) fmt.Println("scheme", r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k, v := range r.Form { fmt.Println("key:", k) ...阅读全文

博文 2014-12-30 01:00:03 kanglecjr

【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

使用 Beego 与 Mgo 开发的示例程序

本文为技术翻译,原文地址(需翻墙):http://www.goinggo.net/2013/12/sample-web-application-using-beego-and.html 简介 当我发现 beego 框架时感觉非常激动。我只用了大约 4 个小时就将一个现有的 Web 应用程序移植到了该框架上并做了一些端对端测试的调用扩展。我想要与你分享这个基于 beego 的站点。 我构建了一个具有以下功能的示例 Web 应用程序: 实现了 2 个通过 mgo 驱动拉取 MongoDB 数据的 Web 调用。 使用 envconfig 配置环境变量作为参数。 通过 goconvey 书写测试用例。 结合我的 logging 包。 这个示例的代码可以在 GoingGo 帐户下的 GitHub 仓...阅读全文

博文 2014-10-14 17:11:48 无闻

使用 beego 搭建 web 应用之二

欢迎回到本系列的第二部分,在这我们将用Go的Beego这个web开发框架来加速开发。如果你错过了第一部分,我建议你去读一下,因为它是这一系列的基础。 在第一部分中,我们有了一个好的开始,通过安装Beego及命令行的Bee了解并实际使用了Beego,创建一个基本的项目,添加一个控制行为,创建了一个基本的视图模板,添加一个自定义路由并以学习如何使用请求参数为结尾。 在第二部分中,我们将进入更有趣的部分,构建一个结合数据库的Web应用,使用的是Sqlite3,还要研究一下模型、表单以及验证。我希望你已经准备就绪了,下面让我们一块愉快的走到最后。 Garfielt翻译于 3 个月 前 0人顶 顶 翻译的不错哦! 两步视图 你会注意到manage控制器里的几个函数,代码如下: manage.Layou...阅读全文

博文 2014-10-04 19:25:58 --zxp, Garfielt, 似年, AndyLam,

Awesome Go

Awesome Go A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock! Join us on IRC at #awesome-go on freenode web access Contents Awesome Go Audio & MusicAuthentication & OAuthCSS PreprocessorsConfi...阅读全文

博文 2015-02-27 18:00:00 x_focus

Golang pprof详解

go的pprof包 go中有pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来. 本篇只讲如何在web上查看性能。 一、代码部分 1.import 增加net/http/pprof包 import( _ net/http/pprof ) 2. 打开http 监听端口 go func() { log.Println(http.ListenAndServe("localhost:10000", nil)) }() 二、网页上查看 *浏览器可以打开 http://127.0.0.1:10000/debug/pprof/ 可以查看...阅读全文

博文 2018-08-29 18:30:00 mrblue

Go 系列教程 —— 20. 并发入门

欢迎来到我们 [Golang 系列教程](https://studygolang.com/subject/2)的第 20 篇。 **Go 是并发式语言,而不是并行式语言**。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。 ## 并发是什么? 并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。 我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。这个例子就是典型的并发。这个人能够一下搞定跑步和系鞋带两件事,即立即处理多个任务。 ## 并行是什么?并行和并发有何区别? 并行是指同时处理多个任务。这听起来和并发差不多,但其实完全不同。 我们同样用这个跑步的例子来帮助理解。假如这个人在慢跑时,还在用他的 iPod...阅读全文

博文 2018-02-03 12:25:58 heyulong

分布式文件系统 IPFS

IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。 IPFS = InterPlanetary File System IPFS 云成为一个新的,重要的网络子系统,如果构建得当,那么可以完善或者替换 HTTP,或者说可以完善或者替代更多,听起来很疯狂,但是确实很疯狂! IPFS 结合了 Git,BitTorrent,Kademlia,SFS 和 Web 的优势,提供跟 HTTP web 一样简单的接口。 IPFS 分为 3 个代码库: * [github.com/ipfs/ipfs](https://github.com/ipfs/ipfs) - IPFS 规范 ...阅读全文

开源项目 2015-01-27 16:00:00 ipfs

Golang Web文件上传

// fileUpload project main.go package main import ( "fmt" "html/template" "io" "log" "net/http" "os" ) var buf []byte func upload(w http.ResponseWriter, r *http.Request) { r.ParseForm() if r.Method == "GET" { t, err := template.ParseFiles("upload.gptl") checkErr(err) t.Execute(w, nil) } else { file, handle, err := r.FormFile("file") checkErr(err) f...阅读全文

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