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

打造atom成为golang开发神器

在我在Windows系统上开发的日子里,我使用IDE开发数年之久,例如Visual Basic IDE, Borland Delphi IDE, Visual C++ 和最后的Visual Studio;但当我在大约10年前转到Mac OS X下开发后,我放弃了上述所有的IDE。 我刚进入Mac编程世界的时候使用的是当时表现极好的Textmate编辑器。它是一个开发代码飞快的编辑器,拥有很好的语法高亮,拓展模块以及代码片段(code snippets),让我再次感觉非常高产。经过几年的衰退期,由于它没有继续更新了,很多人转向了Sublime Text和传统的VIM编辑器了。 Atom刚出来的时候我尝试使用了一下,但当时它并没有准备好。而最近几天它正式发布官方1.0版本后我决定再次试用一下,我...阅读全文

博文 2016-02-04 07:00:03 sweetvvck

beego关于session的问题

我在自己的网站中使用的是简单的:登陆时setsession,使用时getsession,在退出登陆时deletesession。在电脑上使用没有问题,但我同时在手机上测试的,手机上set,get都没问题,但delete就不行了,怎么都退不出登陆状态,重启手机浏览器都不行,删除cookie后才可以退出登陆,这是什么原因,deletesession操作时应该是有删除cookie处理的,是不是手机浏览器不支持外部的删除cookie操作?再问一句,好像手机浏览器不支持301跳转!这是什么原因。电脑用的是firefox浏览器,手机用的是安卓uc浏览器...阅读全文

Golang关键字—— var

Golang使用 var 关键字定义变量,语法如下: 1 // 定义一个变量 2 var vname1 int 3 4 // 定义多个变量 5 var vname2, vname3 bool 6 7 // 定义一个变量并赋值 8 var vname4 string = "golang" 9 10 // 定义多个变量并赋值 11 var vname5, vname6 int = 2, 3 12 13 // 定义多个变量并赋值,由编译器推导变量类型 14 var vname7, vname8 = "golang", true 15 16 // 定义多个变量并赋值,由编译器推导变量类型 17 // 此方式只能用于函数内部 18 vname9, vname10 := 4, fals...阅读全文

博文 2015-05-21 10:00:00 nianhua

Golang使用lxn/walk做GUI界面开发:邮件群发器

我也是刚刚使用walk这个组件,很多控件接口不熟悉,把我上次发的邮件群发器修改成图形界面的,线程发送邮件,gob库保存数据等。只提供作学习交流,仅供参考(界面很烂)。 接下来是main.go的代码: // Multi-SendEmail project main.go package main import ( "bufio" "encoding/gob" "errors" "fmt" "io" "net/smtp" "os" "strconv" "strings" "time" ) import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) type ShuJu struct { Name string Pwd ...阅读全文

博文 2014-12-20 13:00:01 一曲忧伤

Golang和nodejs小比拼

​ Golang和nodejs小比拼这期呢,我们来比较一下,golang和nodejs。这两个都是后端比较热门的开发技术。发展的都非常快。 [golang简介]我们先来看一下golang, 这门技术是免费的,可编译的,开源的,面向通用开发的编程语言。这门语言有两位来自谷歌的专家Ken Thompson和Rob Pike所开发, 开发时间是2007年。这门语言跟c语言非常接近, 支持结构定义, 同时又支持垃圾回收处理。内存使用上也更加方便,安全。因为跟c语言很接近,所以golang屏蔽掉了一些现代编程语言中的特征, 比如说类继承是不存在的。[nodejs简介]再来看一下nodejs。这门技术也是开源的。JavaScript作为核心语言, 跨平台。用于创建服务器端实时处理的应用系统。创作者为Ry...阅读全文

博文 2019-08-01 08:32:38 丁哥开讲

golang中goconfig包使用解析

注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例进行讲解,便于各位同学更好地使用和深入了解。 库简介 goconfig 是一个由 Go 语言开发的针对 Windows 下常见的 INI 格式的配置文件解析器。该解析器在涵盖了所有 INI 文件操作的基础上,又针对 Go 语言实际开发过程中遇到的一些需求进行了扩展。相对于其它 INI 文件解析器而言,该解析器最大的优势在于对注释的极佳支持;除此之外,支持多个配置文件覆盖加载也是非常特别但好用的功能。 下载安装 您可以通过以下两种方式下载安装 goconfig: gopm get...阅读全文

博文 2015-10-28 22:00:41 chenbaoke

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 原文地址:Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 前言 如果已经看过前面 “十六部连载,两部番外”,相信您的能力已经有所提升 那么,现在今天来说说简单部署后端服务的事儿 ???? 做什么 在本章节,我们将简单介绍 Nginx 以及使用 Nginx 来完成对 go-gin-example 的部署,会实现反向代理和简单负载均衡的功能 Nginx 是什么 Nginx 是一个 Web Server,可以用作反向代理、负载均衡、邮件代理、TCP / UDP、HTTP 服务器等等,它拥有很多吸引人的特性,例如: 以较低的内存占用率处理 10,000 多个并发连接(每10k非活动HTTP保持活动连接约2.5...阅读全文

golang实现的反向代理

翻阅golang包手册的时候看到net/http/httputil有一个type ReverseProxy,这个不是反向代理吗!golang自带反向代理功能?好奇就试了一下,确实非常简单,没有几行代码就实现了一个简易的反向代理服务。 关于反向代理百度百科上说的非常详细了,这里摘录一下定义: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 golang实现代码 package main import ( "log" "net/http" "net/http/httputil" "net/url" ) ...阅读全文

博文 2015-10-16 21:52:06 陈杰斌

GO语言HTTP代理服务器

package main import ( "fmt" "io" "log" "net/http" "net/http/httputil" "net/url" ) func httpUserInfo(w http.ResponseWriter, r *http.Request) { ret := "your addr is:" + r.RemoteAddr + "\r\n" ret += "request headers:" + fmt.Sprint(r.Header) io.WriteString(w, ret) } func main() { targetURL, err := url.Parse("http://127.0.0.1:80") log.Println("program s...阅读全文

博文 2015-06-17 23:07:39 scybs

初读谷歌自家的语言之作------Go语言和Dart语言

Go语言是一个新语言,截至目前为止,第一版正式版还没有发布。Go语言的设计者是Robert Griesemer, Rob Pike和Ken Thompson,当年设计C和Unix,后来的Plan9团队中的人 。Go语言的设计理念很明确,就是将动态类型语言的编程容易度和静态类型语言的安全效率结合起来。深入了解Go语言的发展历史以及完整的目标,请参考Go语言 FAQ。 Go语言有很浓厚的C的遗风,尽量屏蔽C++和Java的影响,比如没有独立的OO体系(并不是说不能OO),一切以struct为中心,没有exceptions(Oh yes!),仍然有指针,等等。但是,Go语言又吸取了很多新语言的精华,并带有自己独特的设计。比如 1. 保留但大幅度简化指针 Go语言保留着C中值和指针的区别,但是对于指...阅读全文

博文 2014-10-25 22:00:00 a4614181

游戏分布式服务器gonet

gonet 游戏服务器架构,mmo架构,分布式snowflake64为整形uuid,ai行为树,配置data,游戏大部分都在内存运算,分布式缓存redis。 设计之初,建立在actor模式下的;rpc,以及消息驱动,rpc无需注册,支持int,数据,struct(struct必须要注册结构题即可);sql封装简单的orm,具体看demo websocket模式下,要在net,websocket注视掉如下代码:https://studygolang.com/articles/14842 代码除了mysql,protobuf,redis这几个第三方库以外,其他都是自己写的,方便性能和修改,主动权在自己手里 服务器之间rpc,客户端服务器之间protobuf + rpc,客...阅读全文

开源项目 2019-01-16 12:53:57 ylb

Go 语言使用 TCP keepalive

自:http://studygolang.com/articles/951 Go 语言使用 TCP keepalive 如果你写过某些 TCP socket 代码,你可能会疑问:如果网线被拨掉或者远程主机崩溃了我的TCP连接会怎样? 简短的答案是:一点影响都没有。这种情况下连接的结束远程主机是不会发送FIN数据包的,并且本地系统不能检测连接是否已中断。所以需要作为程序员的你来解决这种情况。 --zxp 翻译于 1 个月 前 0人顶 顶 翻译的不错哦! GO语言为你提供了解决这个问题的几种方法。首选的方法可能是 net.Conn 接口中的SetReadDeadline方法。假设你的连接在以一种特定的间隔来接收数据,你可以简单地把读取超时当作一个io.EOF错误并Close这个连接。很多现有的T...阅读全文

博文 2015-01-29 17:00:01 leonzhouwei

golang实现udp接入服务器

前端通过udp与接入服务器连接,接入服务器与后端tcp服务器维持tcp连接。目录结构及后端tcp服务器代码同上一篇博客。 main.go package main import ( "lotuslib" ) const ( ip = "0.0.0.0" port = 1987 ) func main() { udplotus.UdpLotusMain(ip, port) } udplotus.go package udplotus import ( "encoding/json" "log" "net" "strconv" "time" ) const ( proxy_timeout = 5 proxy_server = "127.0.0.1:1988" msg_length = 1024 ...阅读全文

博文 2014-10-04 19:26:13 ciaos

腾讯 Angel 1.0 正式版发布,机器学习高性能计算平台

在去年 12 月 18 日的腾讯大数据技术峰会暨 KDD China 技术峰会上,腾讯大数据宣布推出了面向机器学习的「第三代高性能计算平台」——Angel,并表示将于 2017 年开放其源代码。现在,2017 年已经大约过去了一半, Angel 1.0 正式版发布了。 ![](https://raw.githubusercontent.com/Tencent/angel/master/assets/angel_logo.png) Angel 1.0.0 新特性: 1. ParameterServer 功能 - 基于 Matrix/Vector 的模型自动切分和管理,兼顾稀疏和稠密两种格式 - 支持对 Model 进行 Push 和 Pull 操作,可以自定义复杂...阅读全文

golang-otto JS解释器

otto是一个Go语言实现的JavaScript 解释器 otto是一个Go语言实现的JavaScript的语法分析器和解释器 1 2 3 import( "github.com/robertkrimen/otto" ) 在虚拟机中运行一些代码 1 2 3 4 5 vm := otto.New() vm.Run(` abc = 2+ 2; console.log("The value of abc is " + abc);// 4 `) 从虚拟机中获取一些值 1 2 3 value, err := vm.Get("abc") value, _ := value.ToInteger() } 设置一个数字变量 1 2 3 4 5 vm.Set("def", 11) vm.Run(` consol...阅读全文

博文 2015-11-17 02:00:03 shuanger_

默默前行的livego--基于go语言的rtmp直播服务器

为什么go语言,原因太多了! 轻量级协程,随时goroutine方便的channel方便的interface强大的服务器性能 简单点GO语言---为服务器而生! 我们来看看: livego--基于go语言的rtmp直播服务器 github地址: https://github.com/runner365/livego 什么是livego livego是基于golang开发的rtmp服务器 为什么基于golang golang在语言基本支持多核CPU均衡使用,支持海量轻量级线程,提高其并发量 当前开源的缺陷: srs只能运行在一个单核下,如果需要多核运行,只能启动多个srs监听不同的端口来提高并发量; ngx-rtmp启动多进程后,报文在多个进程内转发,需要二次开发,否则静态推送到多个子进程,效...阅读全文

博文 2017-08-25 01:32:12 sweibd

Go实战--使用golang开发Windows Gui桌面程序(lxn/walk)

生命不止,继续 go go go!!! golang官方并没有提供Windows gui库,但是今天还是要跟大家分享一下使用golang开发Windows桌面程序,当然又是面向github编程了。 知乎上有一个问答: golang为什么没有官方的gui包? 这里,主要使用第三方库lxn/walk,进行Windows GUI编程。 lxn/walk github地址: https://github.com/lxn/walk star: 2018 描述: A Windows GUI toolkit for the Go Programming Language 获取: go get github.com/lxn/walk 例子: main.go package main import ( "gi...阅读全文

博文 2017-09-19 11:31:02 wangshubo1989

成都创享兄弟科技有限公司招聘php/go工程师

**公司介绍** 成都创享兄弟科技有限公司成立于2014年。由多名经验丰富的互联网从业者共同成立,公司在互联网营销、产品技术研发有着丰富的经验.曾服务多家知名企业,公司自主研发的一款基于云计算的在线响应式云建站系统,不懂技术也能通过竹子的可视化在线网站编辑器创建官网 项目网站 http://www.zhuzi.me **职位说明** - 热爱技术,有强烈的新技术求知欲; - 良好的团队沟通和协作能力; - 熟练使用go进行后端服务开发; - 熟悉javascript,php者优先。 也接受想要学习go的php开发者投简历。 有意向请加我微信 ![](http://77fkk5.com1.z0.glb.clouddn.com/upload/image...阅读全文

[郑州] 招聘golang、数据仓库工程师、功能/性能测试,移动端leader,类比百度 T5 及以上。

**郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动.** ***招聘数据开发工程师、功能\性能测试,移动端 Leader , PHP 、 nodejs 、 go 等,类比百度 T5 及以上*** 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利、结婚生子礼金、公司营收分红、年终奖、免费法律咨询、伯乐奖 QQ : 13482848...阅读全文

linux下go的动态链接库的使用

在使用lua进行服务器端游戏逻辑开发时,发现了LUA的各种不方便的地方,不能编译检查,不能断点调试,笔误的函数和变量不提示出错等等,所以有了全部使用go来做服务器端开发的想法。 如果不需要热更新,那使用go开发服务器逻辑是很轻松的,而游戏服务器特别是页游,一般都需要支持热更新,所以我决定使用go的动态链接库方式来实现,也就是底层框架是go,上层逻辑是go的动态链接库。go原生不支持动态链接库,在查阅了很多文章之后,决定使用gccgo来实现。 经过了大约一周的时间,终于把框架搭建起来了,期间遇到了一些比较坑的问题,记录在此,以便以后不会再犯,也可以帮助其他有同样需求的同学快速搭建这样的框架。 这个例子需要了解go目录构建和环境变量的知识,如果不了解,可以先看看网上的文章,很简单的。 整个框架搭...阅读全文

博文 2014-10-04 19:25:56 xtxy

golang工程师面试第三天

**1**.简述golang中make和new的区别 make用于内建类型(只能用于创建map、slice 和channel)的内存分配。并且返回一个有初始值(非零)的T类型,而不是*T。 new用于各种类型的内存分配。new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:**new返回指针**。 **2**.简要描述go中的main和init函数的区别 首先,这两个函数应用位置不同,init函数可以应用于所有的package,main只能应用于 package main,需要注意的是虽然一个package中可以写任意多个init,但是无论是从可读性还是可维护性来说,都是不推荐的; 其次,...阅读全文

博文 2018-01-15 21:36:48 yinshidaoshi

Go 1.6发布 免翻墙下载

Go 1.6 正式版发布 该版本在语言本身层面并没有任何变化,主要改进包括: 1、默认使用 cgo 外部 C 编译器 2、支持 HTTP/2 协议 3、增加对 64 位 MIPS 的体验支持 (Linux) 4、增加对 32 位 x86 上的 Android 的体验支持 5、在 FreeBSD 上 go 1.6 默认使用 clang 而不是 gcc 作为外部 C 编译器 6、在 64 位 PowerPC 上 支持 cgo 7、NaCI 上 GO 1.5 要求 SDK 版本是 pepper-41,而 Go 1.6 可以使用最新的 SDK 版本 8、在 32 位 x86 系统中使用 —dynlink 或者 —shared 编译模式,寄存器 C...阅读全文

Go += 包版本

本文译自 Go += Package Versioning, Go & Versioning 的第 1 部分, 版权@归原文所有. 我们需要将包版本控制添加到 Go. 更确切地说, 我们需要将软件包版本的概念添加到 Go 开发人员和我们的工具的工作词汇表中, 以便在彼此交谈时准确地确定应该构建, 运行或分析哪个程序. go 命令需要能够告诉开发人员具体哪些版本的软件包在特定构建中, 反之亦然. 版本控制可以让我们启用可重复构建, 所以如果我告诉你试用我的程序的最新版本, 我知道你将不仅获得我的代码的最新版本, 而且还包括我的代码所依赖包的精确的同一版本, 所以你和我将构建完全等价的二进制. 版本控制还可以让我们确保明天程序的构建方式与今天的完全相同. 即使有更新版本的依赖, go 命令也不应...阅读全文

博文 2018-02-22 22:49:23 lingchao

Go中的指针与函数接收器

Go中使用*号表示指针,但是没有指针算数,不能对其进行加减。同时内存管理都由Go来负责,不需要拖动释放内存。 Go中的函数接收者,可以为值类型,也可以是引用类型。 看代码: package main import ( "fmt" ) type Rect struct { X, Y,Area,Length float64 } func (r *Rect) CalArea() { r.Area = r.X*r.Y } func (r Rect) CalLength() { r.Length = 2*(r.X+r.Y) } func main() { r1 := Rect{3, 4, 0, 0} r1.CalArea() r1.CalLength() fmt.Println(r1.Area) fm...阅读全文

博文 2015-03-24 14:00:00 baiyuxiong

[郑州] 招聘Nodejs、golong 和 web 前端架构师,移动端等大牛,类比百度 T4 T5及以上。

**郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动。 ** 招聘: PHP 、 Nodejs 、 golong 和 web 端架构师,移动端大牛, Linux C \C++,测试、运维,数据分析、产品、网络工程师等,类比百度 T4 级以上最佳 应届生高潜力的也要!基础好,智商高。 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利...阅读全文

go的session问题

我发现现在go的在web开发中的session功能还不是"session"啊..比如网上找到的一些资料.还有beego..都表现得像cookies一样.. session本意就是"会话"..应该是一个会话一个session才对..但现在所有session的表现都是同一浏览器的所有窗口共用一个session..不主动删除session内容的话就一直能读到session的内容(即使你已经关闭且重新打工浏览器)... 求指教..求讨...阅读全文

go语言编辑器:liteide

LiteIDE is a simple, open source, cross-platform Go IDE. LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。 项目地址:https://github.com/visualfc/liteide 下载地址:http://sourceforge.net/projects/liteide/ 百度云链接:http://pan.baidu.com/s/1mgCgx64 密码:vsip 安装方法:https://github.com/visualfc/liteide/blob/master/liteidex/deploy/welcome/en/install.md Windows 7 下安装使用: 解压百度云下载的文件: 运行b...阅读全文

博文 2015-10-09 11:00:11 osfipin

[郑州] 招聘 移动端 leader(ios/Android),大数据 leader,功能/性能测试, Go/PHP/nodejs、window\LinuxC/C++ ,类比百度 T5 /T6 及以上

郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动. 招聘数据开发工程师、功能\性能测试,移动端 lLeader , PHP 、 nodejs 、 go 等,类比百度 T5 及以上 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利、结婚生子礼金、公司营收分红、年终奖、免费法律咨询、伯乐奖 邮箱: job#lonlife.cn ( p...阅读全文

Golang调试器delve

完全Go语言实现的 Go Debugger。 这玩意很NB。 ## Features - Attach to an already running process - Launch a process and begin debug session - Set breakpoints, single step, step over functions, print variable contents, print thread and goroutine information 不过目前有以下限制: 1. golang版本需要1.4Beta以上; 2. 仅仅适用于Linux系统...阅读全文

开源项目 2014-11-16 05:00:32 derekparker

vscode编辑器golang调试

安装vscode 安装vscode-go 插件 进入vscode界面,打开命令面板Ctrl + Shift + P,输入install, 插件特性包括: Completion Lists (using gocode) Signature Help (using godoc) Snippets Quick Info (using godef) Goto Definition (using godef) Find References (using guru) File outline (using go-outline) Workspace symbol search (using go-symbols) Rename (using gorename) Build-on-save (using...阅读全文

博文 2016-10-28 17:00:02 chenjh213

golang实现tcp接入服务器

接入服务器和后端业务服务其维持tcp连接,多个前端请求通过接入服务器访问后端业务服务器,接入服务器可以方便增加路由功能,维护多个业务服务器,根据消息ID路由到具体的业务服务器。 项目目录如下 simplelotus src lotus main.go lotuslib tcplotus.go test tcpclient.go tcpserver.go install install源码如下: #!/usr/bin/env bash if [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" ex...阅读全文

博文 2014-10-04 19:26:13 ciaos

[郑州-11月招聘] 功能/性能测试大牛,大数据 leader, Android 大牛, Go/PHP/nodejs、window\LinuxC/C++ ,类比百度 T5 /T6 及以上

##### 郑州珑凌科技,郑州最优秀的纯互联网公司之一,产品驱动、技术驱动。 ###### 招聘功能\性能测试大牛,移动端 Leader ,大数据 leader 、 PHP 、 nodejs 、 go 等,类比百度 T5 及以上 最佳 技术帝看这里: mac 电脑、机械键盘、各种资料用书,想要打个报告! 健身帝看这里:台球、乒乓、动感单车、淋浴间、洗衣机 养生派看这里:中央空调、空气净化器、净水器、微波炉、电冰箱 懒觉侠看这里:上班不打卡、弹性工作时间、带薪年假、 x-box 、 htc vr 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利、结婚生子礼金、公司营收分红、年终奖、免费法律咨询、伯乐奖 邮...阅读全文

Golang语法总结(三):可见性规则(公有与私有,访问权限)

Go语言没有像其它语言一样有public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头) 例如: visibility/test.go package visibility import "fmt" const PI = 3.145const pi = 3.14const _PI = 3.14 var P int = 1var p int = 1 func private_function() { fmt.Println("only used in this pa...阅读全文

博文 2016-02-29 07:00:00 QQ245671051

为什么选择golang写手机游戏服务器

选择golang做游戏服务器开发 经过大半年的手机游戏运营、维护、后续开发,对下一个网络游戏的服务器端开发技术选型的需求如下:1. 体系成熟,有大型成功案例2. 开发效率高3. 性能高,最好是支持并行技术充分利用多cpu资源4. 代码加密发布5. 开发逻辑简单,如多线程同步、加锁、多进程同步就比较复杂6. 易学易用,如果是新技术 可选技术对比 我对可以选择的技术平台经过自己的一些分析总结如下(一己之言): 项目 nodejs python c++/ruby erlang golang 体系成熟 4 3 5 4 3 开发效率 5 5 3 3 5 性能 3 3 5 5 4 加密发布 3 0 4 3 5 逻辑简单 5 5 3 4 5 易学易用 5 5 2 1 4 跨平台 5 5 5 5 5 其实聪...阅读全文

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

使用Visual Studio Code调试Golang工程

关键字 最简单的调试攻略 多项目调试, 适用个人开发和项目开发 无需修改系统环境变量 准备VSCode 在官网下载最新版的VSCode: Visual Studio Code - Code Editing. Redefined** 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go language support for Visual Studio Code的插件, 点击安装 注意不是排名最高的 重启编辑器 配置启动项 打开调试面板 VSCode->查看->调试 添加调试目标 在"没有调试"的下拉框中点击"添加配置.." 添加目标调试配置 例子: { "version": "0.2.0", "configur...阅读全文

博文 2017-10-20 16:04:49 夏大王2019

高性能代理服务器Proxy-Go

Proxy 是 golang 实现的高性能 http,https,websocket,tcp 代理服务器,同时支持内网穿透。 ## Features - 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理. - 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征. - 智能HTTP代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理. - 域名黑白名单,更加自由的控制网站的访问方式。 - 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派...阅读全文

Go 语言的 Modules 系统介绍

即将发布的 Go 语言 1.11 版本将会给我们带来对 *modules*(模块)的实验性支持,这是 Go 语言新的一套依赖管理系统。 (译注:很多编程语言中,把 modules 译作「模块」,但由于目前该机制在 Go 语言还没正式发布,因此尚未有非常普及的译法。而类似的 vendor 一词的翻译,大多中文文章都是采取保留英文原文的方式处理,因此本文对 modules 的翻译参考 vendor 的处理:保留英文原文) 前些日子,[我简单地写了一编关于它的文章](https://roberto.selbach.ca/playing-with-go-modules/),自从那篇文章写完后,Go 的 modules 机制又发生了一些小改动。因为现在快到正式版发布了,我想现在刚好是时候用”边做边学“...阅读全文

博文 2018-08-23 18:37:30 Alex-liutao

【杭州】golang服务器端开发工程师 2名

golang服务器端开发工程师 2名: - 电商类产品的服务器端开发及维护,restful API开发; - 撰写业务、接口文档供前端使用; - 数据库设计、开发及维护和优化; 要求: - 1~2年Golang开发经验,熟练使用Golang进行Restful API接口开发; - 熟悉常用数据库MySql、PostgreSQL等,以及golang常见ORM进行数据库操作; - 有责任感、团队精神和良好的沟通能力; 其它 - 互联网电商类项目(2B)、小团队; - 工作以结果为导向,弹性工作时间、不打卡; - 期权激励; 工作地点:杭州市滨江海创园北楼D3008 薪水:6~15k 简历发送: hr@obenben.co...阅读全文

Go实现的HTTP/2 Web服务器Caddy

Caddy 是一个支持 HTTP/2 的跨平台 Web 服务器,使用和配置都非常简单。Caddy 支持 HTTP/2, IPv6, Markdown, WebSockets, FastCGI, 模板等等。 一个 Caddy 配置示例: http://www.oschina.net # Your site's address ext .html # Clean URLs errors { log ../errors.log # Error log 404 error-404.html # Custom error page } fastcgi /blog localhost:9000 php # PHP bac...阅读全文

开源项目 2015-05-29 01:56:28 mholt

HTTP Payload

今天用go重写了一个用Ruby实现的http请求功能。但是在请求参数相同的情况下go的请求一直被服务器返回参数错误。 既然参数相同,那就应该是Header里面有问题喽? 我把Ruby代码生成的请求弄出来看了下 POST参数是包在payload里面的。哦! 等等!payload是什么鬼啊!! 我在go的http package里面没看到这玩意儿。 所以还是要知道payload是干嘛的。 根据wiki的解释:payload是跟在请求header后面的数据,是一次请求的主要数据或者说主要目的。 SO上有一个直观的解释:Request Payload 就是POST、PUT等http请求所发送的数据。它是header之后的部分。 一个Content-Type是application/json的请求,具...阅读全文

golang开发的 私有云笔记 leanote 开源啦

## 介绍 leanote是一款私有云笔记, 功能参考evernote, 因我不喜欢evernote的编辑器所以自己用tinymce做(写了一些插件), 又加了markdown编辑器, 除编辑器强大之外还有 * 知识共享, 共享给你的好友, 虽然是私有云笔记, 你也可以邀请你的朋友注册 * 知识协作. * 博客, 可以将某一些笔记公开成博客, 知识管理和博客两不误! leanote默认界面是博客, 所以leanote可以相当于博客与知识管理的混合体. ## 链接 官网: http://leanote.com, github: https://github.com/leanote/leanote ## 使用技术 golang是基于revel和mongo...阅读全文

Golang动手写一个Http Proxy

本文主要使用Golang实现一个可用但不够标准,支持basic authentication的http代理服务。 为何说不够标准,在HTTP/1.1 RFC中,有些关于代理实现标准的条目在本文中不考虑。 Http Proxy是如何代理我们的请求 Http 请求的代理如下图,Http Proxy只需要将接收到的请求转发给服务器,然后把服务器的响应,转发给客户端即可。 Https 请求的代理如下图,客户端首先需要发送一个Http CONNECT请求到Http Proxy,Http Proxy建立一条TCP连接到指定的服务器,然后响应200告诉客户端连接建立完成,之后客户端就可以与服务器进行SSL握手和传输加密的Http数据了。 为何需要CONNECT请求? 因为Http Proxy不是真正的服务...阅读全文

博文 2017-09-17 13:11:26 杨锡坤

[golang]GO语言编写的基于UDP协议的简易聊天软件

初学GO不到两周,本着熟悉语言的目标写了这个小程序,漏洞很多,实现上写的也有些渣渣,欢迎大家阅读指点。 下载地址:https://github.com/yinxin630/gochat 简单思路描述: 0、服务端监听客户端请求,完成会话转发的任务 1、服务端采用心跳包维护用户在线状态 2、客户端通知服务端自己的监听地址,创建服务端-客户端信息通道 服务端: package main import ( "fmt" "net" "os" "strconv" "time" ) //用户信息 type User struct { userName string userAddr *net.UDPAddr userListenConn *net.UDPConn chatToConn *net.UDPC...阅读全文

博文 2014-11-11 06:00:06 u011229962

liteIDE 快捷键改装

LiteIDE改装 最近一直都在使用liteIDE做开发。公司的项目很紧张,但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。 IDE上的run按钮就是运行当前的go文件。 首先我们项目运行只是运行统一或者少数的入口点每次点开固定的文档才能run真的是够了。另外一个主要的原因在于liteIDE没有project管理支持。 而且这个IDE貌似没有出很长时间一般的RCP平台都是有插件开发的。但是这没有插件开发(貌似是有。而且是用python写的)但是,没找到文档(截至 2015年1月19日)也是醉了。 关键入口点还是我在google Code上找到的一个文档。 在配置中的LiteBuild里面有一个gosrc.xml 这个配置文件能修改buttion调用的命令。好吧就只能...阅读全文

博文 2015-03-07 21:32:39 jianyingLi

微信代理服务WeChat-Proxy

WeChat-Proxy 是微信代理服务。 1、全局缓存微信 access_token, jsapi ticket等。 2、多路转发微信回调消息。 3、简化微信 oauth2 认证流程。 4、简化微信支付流程。 5、简化微信 JSSDK 签名流程。 参数说明: key: 自定义的app名称,支持中文,也可以是随机生成的字符串。(必填) appid: 微信公众号的 appid。(必填) secret: 微信公众号的 secret。(必填) token, aes: 用于微信回调消息加解密的秘钥。(/msg接口) 如果设置了此项参数,后台应用可以直接以json明文格式接收和回复微信回调消息。(/msg/json接口) mch_id, mch_ke...阅读全文