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

Golang 微框架 Gin 简介

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

博文 2017-03-15 03:50:08 人世间

数字货币量化交易框架Samaritan

Samaritan 是一个开箱即用的数字货币量化交易框架,可以非常方便地部署属于自己的量化交易平台,目前已适配了 okcoin 中国、火币网、Poloniex、BTCC、中国比特币、okcoin 期货等交易所的接口,更多的交易所适配和功能特性正在陆续开发中。 ![image](https://raw.githubusercontent.com/miaolz123/samaritan/master/docs/_media/add-exchange.png) ![image](https://raw.githubusercontent.com/miaolz123/samaritan/master/docs/_media/add-algorithm.png) ![image](https:/...阅读全文

golang的web框架是如何处理高并发场景下的http请求的?


golang来处理http请求,有自带的http包,也有各种框架如gin等,但是很少有资料说明这些包和框架在高并发请求下是如何处理的?

比如java的spring会创建一个线程池和队列来帮助处理大量请求,那golang的http或者gin框架是如何做的呢?创建一个goroutine池?还有其他更细节的说明吗?网上资料好像很少。。...阅读全文

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 反射

自:http://golanghome.com/post/546 自己在用Go写Web框架时,遇到要从接口中返回对象信息的技术问题。网上关于Go中接口反射的资料较少,所以自己学习了一段时间,特将结果与大家分享。 代码约定 import ( "fmt" "reflect" ) type boy struct { Name string age int } type human interface { SayName() SayAge() } func (this *boy) SayName() { fmt.Println(this.Name) } func (this *boy) SayAge() { fmt.Println(this.age) } func main() { // 定义接口变...阅读全文

博文 2015-04-04 03:00:00 rojas

Reactor 入门与实践

适合阅读的人群:本文适合对 Spring、Netty 等框架,以及 Java 8 的 Lambda、Stream 等特性有基本认识,希望了解 Spring 5 的反应式编程特性的技术人员阅读。 一、前言 最近几年,随着 Node.js、Golang 等新技术、新语言的出现,Java 的服务器端开发语言老大的地位受到了不小的挑战。虽然,Java 的市场份额依旧很大,短时间内也不会改变,但 Java 社区对于挑战也并没有无动于衷。相反,Java 社区积极应对这些挑战,不断提高自身应对高并发服务器端开发场景的能力。 为了应对高并发的服务器端开发,在2009年的时候,微软提出了一个更优雅地实现异步编程的方式 —— Reactive Programming,中文称反应式编程。随后,其它技术也迅速地跟上...阅读全文

博文 2017-10-11 17:05:00 编走编想

比较Erlang和Golang

雨天的周末,适合码字的时节。。。 一年前我开始学习go语言的时候,如获至宝,既有python的编码效率,又带来性能的15倍提升。尤其是在异步编程方面,可以使用channel同步线程,不必加锁可以充分利用cpu多核计算,真是没有弱点。 后来慢慢了解到,这种无锁异步编程的思想,源自一门叫做erlang的语言,Erlang更加了不起。除了异步编程之外,这门语言天生支持分布式,单机上开发的软件,可以不加修改地运行在集群上,另外还支持软件版本的热升级,自带的OTP框架支持进程间的监督和重启,提供了坚如磐石的运行环境。Erlang是如此完美,我认为是最适合开发互联网应用的语言,一时间有种“终于找到真理”的喜悦。 不过那个时候,心里总觉得有什么地方不对,那就是,七牛CEO许式伟本身是Erlang高手,他却...阅读全文

博文 2015-01-27 11:00:01 天下杰论

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 宿舍条件这里:免费、可做饭、有阳台、上下班方便 其他福利这里:五险一金、节日福利、生日福利、结婚生子礼金、公司营收分红、年终奖、免费法律咨询、伯乐奖 邮...阅读全文

Monkey框架使用指南

序言 要写出好的测试代码,必须精通相关的测试框架。对于Golang的程序员来说,至少需要掌握下面四个测试框架: GoConvey GoStub GoMock Monkey 通过前面四篇文章,我们已经掌握了框架GoConvey + GoStub + GoMock组合使用的正确姿势,同时已经知道: 全局变量可通过GoStub框架打桩 过程可通过GoStub框架打桩 函数可通过GoStub框架打桩 interface可通过GoMock框架打桩 但还有两个问题比较棘手: 方法(成员函数)无法通过GoStub框架打桩,当产品代码的OO设计比较多时,打桩点可能离被测函数比较远,导致UT用例写起来比较痛 过程或函数通过GoStub框架打桩时,对产品代码有侵入性 下面我们举两个例子,阐述GoStub框架对产...阅读全文

博文 2017-10-07 13:34:52 _张晓龙_

知物由学 | 如何从勒索软件的攻击中全身而退

欢迎访问网易云社区,了解更多网易技术产品运营经验。“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。“知物由学”希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也希望打开你的眼界,成就不一样的你。当然,如果你有不错的认知或分享,也欢迎通过邮件投稿 :zhangyong02@corp.netease.com 原文:How To Survive A Ransomware Attack -- And Not Get Hit Again作者:Kate O'Flaherty2017年,WannaCry(蠕虫病毒)因为攻陷了NHS(英国国家医疗服务体系)从而一举成名,并且自此之后,类...阅读全文

博文 2018-11-15 12:34:41 网易云社区

终于有人把Java进阶大数据缘由全面讲明白了!

如今随着计算机技术的全面普及,数字化的数据已经对人们的生活起到了息息相关的作用,大家也经常关注技术圈的发展,很多java工程师都在担心自己适合的技术发展道路该怎么走,现在也算有个方向了。大数据的介绍:大数据(BIG DATA),指无法在一定时间范围内用常规软件工具进行收集、管理和处理的数据集合;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产 ;大数据处理-现状与挑战近日,2019中国国际大数据产业博览会上中国科学院院士梅宏在《大数据处理-现状与挑战》为主题演讲中指出:大数据为整个计算机体系带来一系列技术挑战,其中大数据处理是一个重要的环节。如何高效处理各类混合负载,如何在已有开源生态的基础上做创新,如何吸取各大开源框架之所长,如何构建新型计算...阅读全文

博文 2019-06-01 01:34:42 正在简书上学习

为什么明星公司会选择Go作为编程语言

编者按 最近很多人都看到了郝林通过大病筹款平台轻松筹发起筹款的事情,小编受作者所托,感谢开发者们在他生病期间的经济与精神上的支持和鼓励。 关于郝林老师的近况及技术专栏的说明 目前郝林病情暂时稳定,并已决定把筹集的 10 万元捐款退回,接下来将会通过在极客时间写专栏筹集医疗开支,极客邦科技也将从企业公益基金中拿出 10 万帮助其治疗,如果你喜欢这个专栏,请订阅并推荐给需要的人,这是对郝林老师最好的鼓励。 近日,Hacker News 发布了 2018 年 7 月的编程语言招聘趋势排行榜,其中,Go 语言已经反超 Java 进入了前三名的行列。从浅绿色的 Go 语言走势图可以看出来,企业对于 Go 语言的采用情况在逐年上升。 从公司角度看,许多大厂都已经开始拥抱 Go 语言,包括以 Java 打...阅读全文

博文 2018-12-06 18:35:13 qq5ac46f12063af

后端篇

概述 前端作为和用户直接交互相关的开发人员,后端开发则涉及到更多用户看不到的领域,如对数据的存储、加工,平台稳定性、安全性等各个方面,因为涉及到的开发面广,几乎各种语言都运用到了后台开发,比如阿里巴巴的Java生态,百度PHP,Golang。语言并不是后端的限制,作为一名好的后端,学习的是后端的思想:如何搭建更高效的系统?也因此一部分后端的发展规划是“架构师”。 MVC模式 在十几年前MVC模式就已经存在了,可以说是一个非常经典的入门开发模式。但几十年前的代码规模及理念和如今也大不一样。过去的开发并不会分什么前端后端,大家都是一起开发,但现在提倡的是前后端分离,各司其职,同时开发,MVC模式也发生了相应的变化,这里我讲解下我理解的如今MVC基本概念。 后端开发MVC 上图是MVC开发的简单流...阅读全文

博文 2018-08-13 00:35:05 又木先生

为什么选择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

golang 依赖控制反转(IoC)

主流开发语言,为了达到项目间的低耦合,都会借助IoC框架来实现。即抽象和实现分离,使用抽象层,不用关心这些抽象层的具体实现;抽象层的实现,可以独立实现。现在比较流行的领域驱动设计(ddd),为了达到将领域层作为最核心,也需要依赖于IOC。 回过头来,我们看看golang实现的ioc框架,有golang风格的框架,也有从其他主流语言搬过来的比较重的框架。我觉得目前实现最轻量级的,当属martini框架的ioc依赖库 github.com/codegangsta/inject 。代码行数很少,提供类型注册、接口注册、类型解析、函数注入、struct注入的方法,可以说基本的已经比较全了。从文章开头应该可以猜到,我现在一直在学习ddd,目前在.NET实际项目中边运用边学习。在实际使用中发现,ioc除...阅读全文

博文 2016-08-14 21:00:01 Berkaroad

一起学习微服务和容器2-微服务的框架

简述 前情回顾 在前面的小节中,我们大致了解了微服务体系结构的一些基本概念和理念,额外再啰嗦句,还请大家留意最重要的两点:DDD设计模型以及微服务的12原则。接下来的这篇文章将就常见的微服务的框架给大家简单介绍一下,让大家对微服务的体系结构有进一步的理解。 微服务技术栈的发展 有了前面章节的描述,相信大家也都了解,微服务很大程度来说是从SOA的体系结构演进而来的新的分布式体系结构。那SOA的相关的技术栈,在微服务的世界里面也会被继承以及迭代发展。 现下的社会是信息爆炸性发展的时代,在现下的现实社会中,特别是2000年以后这一二十年中,无论是国内还是国际上,社会的各个行业得以飞速发展,其中以金融,电信以及互联网和智能制造为代表。 行业的发展,对信息化的支撑提出了一层又一层新的要求;而信息化的发...阅读全文

博文 2019-01-07 19:34:45 cxj_hit

百度云虚拟主机与传统虚拟主机有什么区别?

在互联网飞速发展的时代,在选择虚拟主机时,市面上各类主机都有,在选择上大家都眼花缭乱,今天想通过一些对比跟大家分享最新推出的百度云虚拟主机与传统虚拟主机的区别。 (https://static.studygolang.com/180420/4361a3cd37433dc372b9ee4609202e7d.jpg) 一、传统虚拟主机与百度云虚拟主机是什么 虚拟主机,被称之为“网站空间”,也就是大家口中所说的空间,它利用技术把一台服务器分成多个具有独立的域名和完整的Intenet服务器功能、并且共享服务器的带宽和IP的“虚拟”的主机。 百度云虚拟主机,拥有容器技术、具有领先特性的新一代云主机,能提供新一代网站主机服务,率先支持SSL安全加密证书与Nginx搞笑WED框...阅读全文

扯淡 erlang 的“适合”和“不适合”

现在在体系内大力推广erlang了。不过挺遗憾的是,推行 erlang 前并没有对这个语言自身进行深入的论证和研究,只是由核心人员写了一个简单得不能再简单的 demo,在项目里用了一个开源的 erlang 项目。从工程的角度来说,这是不靠谱的,为了让 erlang 的使用更加靠谱,所以在这里扯淡一下。资料来源于erlang官方和我的猜测,对不对由我,信不信由你。 先看来自 erlang FAQ的内容(自己随手翻译的,不一定准确,可看原文:http://www.erlang.org/faq/introduction.html#1.3): —————————————————— 1.3 Erlang 特别适合使用的项目是什么? 分布式的,可靠的,软实时并发系统。 * 电信系统,例如控制交换或者协议...阅读全文

博文 2014-10-09 16:15:13 mikespook

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

geohash算法以及求最邻近区域的点-golang

geohash算法以及求最邻近区域的点, 对这两个算法封装成了golang package, 写LBS服务程序的时候有用。https://github.com/gansidui/geohashhttps://github.com/gansidui/nearest package main import ( "fmt" "github.com/gansidui/geohash" ) func main() { latitude := 39.92324 longitude := 116.3906 precision := 5 hash, box := geohash.Encode(latitude, longitude, precision) fmt.Println(hash) fmt.Prin...阅读全文

博文 2014-12-30 13:00:01 bluezwt

gin web框架解决跨域问题

 func Cors() gin.HandlerFunc { return func(c *gin.Context) { method := c.Request.Method if method == "OPTIONS" { c.JSON(http.StatusOK, "Options Request!") } origin := c.Request.Header.Get("Origin") var headerKeys []string for k, _ := range c.Request.Header { headerKeys = append(headerKeys, k) } headerStr := strings.Join(headerKeys, ", ")...阅读全文

博文 2018-01-08 11:54:34 hfyarvin

高性能代理服务器Proxy-Go

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

Go Web 开发之 Beego 框架初探

又到周末啦。干完活之后,喷了一篇关于学习 Beego 的文章。这应该是 2016 年最后一篇技术文章啦,也是一气呵成,没有什么技术含量。选择 Go 语言断断续续看了 Go 几个星期了,讲真的真是喜欢的不得了。认真学过之后,你会觉得非常的优雅,写东西很舒服。学习 Go 我觉得很有必要的是,Go 中自带的数据结构很少,类似于 List 或者 Tree 之类的,最好尝试一下如何去设计一些常用的数据结构。话说回来,Go 的出身始终是一门后端语言。我非常后悔用 Flask 或者 Django 来作为我的后端入门框架或者选择。封装的太好了,往往对于一个入门新手来说学习不到什么。而 Go 就不一样了,它天生被设计是一门后端语言。也就是说,你将会学习到非常多的后端知识。看看下面这一张图,当时我看着就有一种很...阅读全文

博文 2017-09-27 11:28:25 allenwu.itscoder.com

【杭州】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

基于Websocket,TCP,KCP的轻量级网络框架,支持protobuf,json消息协议Lucky

# Lucky #### 介绍 它是一个应用于游戏,APP的网络框架,支持protobuf,JSON 消息协议,基于websocket或者socket(TCP,KCP)进行数据传输, 支持对消息包加密解密。 数据包加密方式: AES128,AES192,AES256 以及Byte轻量级混淆加密。 数据包读、写、执行逻辑处理分别在各自goroutine中, 可以对单个连接恶意发包进行限制,不会堵塞底层网络。 使用者只需注册消息和消息对应的回调函数,在回调中处理具体逻辑。例如: ``` Processor.RegisterHandler(code.Hello, &protobuf.Hello{}, logic.Hello) ``` #### 安装教程 ...阅读全文

开源项目 2020-12-14 15:00:11 helloh2o

使用Go语言工作400天后的感受

我在2011年就听说了Go并学习了一段时间,坦白的说,那时候对Go是比较无感的,因为并没有看到Go特别亮眼的地方,可能和我使用C、Erlang、Java有关,这三种语言可以写高性能、高并发、高可用的服务;包含了面相过程、面向并发、面向对象的思想,我觉得我并不需要再学习Go,何况那个时候好像也没宣传的那么优秀。 一切都发生在418天前,因为工作的需要,我开始写Go了,本来预期是一段压抑、蛋疼的旅程(被迫使用其它语言的同学可能都会有此感受),结果收获了非一般的惊喜、非一般的效率、非一般的开发体验。 先用几个词来总结一下我的感受:简洁、标准、组合、创造力、生产力! 特别是生产力,由于Go优秀的标准库、完美的代码安全、全面的三方库、完善的测试机制、完善的标准管理工具,使用Go给我们小组带来了极大的生...阅读全文

博文 2016-03-28 15:54:45 erlib

基于gokit的微服务项目骨架ko

前段时间发布了一个小小的web开发项目骨架morningo,性能与效率齐飞,开发速度在短暂时间熟悉go语言后应该是匹配php,ruby等这些脚本语言,而后期项目并发性能,基本并发到上千乃至上万tcp连接没问题。但从业务架构层面看,项目再发展,数据库存在瓶颈,单体项目耦合度高,可维护性差,可延展性差,存在很多问题。因而项目早期可以采用单体架构,但后期仍然推荐的是面向服务的分布式架构。分布式的架构模式虽然带来了增加的代码量,服务间沟通的成本,但整体项目更具有弹性,延展性更好。 项目地址:https://github.com/chenhg5/ko gokit介绍 go语言的优点不用赘述,那么基于go的微服务框架有吗?gokit就是一个go语言相关的微服务工具包。它自身称为toolkit,并不是fr...阅读全文

博文 2018-05-05 23:34:37 honhon

多功能微服务框架ServiceComb

ServiceComb 是华为开源的一套包含代码框架生成,服务注册发现,负载均衡,服务可靠性(容错熔断,限流降级,调用链追踪)等功能的微服务框架。 ServiceComb 是华为 FusionCloud 解决方案中 PaaS 平台的重要组成部分,内置了高可靠性运行、动态治理等运维阶段的高级能力。ServiceComb 目前已应用于华为自身 IT 的多个核心业务,帮助华为极大地提升了云原生应用的开发效率。 ServiceComb 包括应用框架代码生成,服务注册发现、服务配置管理、服务监控、服务调用追踪、多通信协议支持等功能,具有服务化契约增强、响应式编程范式及多语言 SDK 支持等优势特性。ServiceComb 基于开放的架构,不仅可以支持开发者根据自身业务需求定制业务插件,而且...阅读全文

开源项目 2017-06-21 04:00:28 网友

APIGin_API_Framework

欢迎使用GO Gin API Framework @(示例笔记本)[马克飞象|帮助|Markdown] GIN API Framework是一款专为Go Gin 框架打造的API Framework,通过精心的设计与技术实现,集成了大部分稳定开发组件,memcache consistance Hash,redis,nsq,api doc ,mysql 等。特点概述: 功能丰富 :支持大部分服务器组件,支持API Doc; 得心应手 :简单的实例,非常容易上手; 深度整合 :深度整合memcache,redis,mysql,beego ,gin 框架。 性能优先 :为啥不直接使用beego那,因为gin是目前httprouter性能最高,占用资源最少的框架,而beego...阅读全文

开源项目 2016-12-15 03:49:19

go优点与缺点

Go语言 Go语言(或称Golang)是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产效率,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C和C++这类语言提供了很快的执行速度,而 Ruby 和 Python 这类语言则擅长快速开发。Go语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。 Go语言优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就...阅读全文

博文 2018-12-28 10:31:02 qq_35433716

使用Go语言(golang)写个简单的爬虫

上次用Scala写了个爬虫。最近在闲工夫之时,学习Go语言,便用Go移植了那个用Scala写的爬虫,代码如下: package main import ( "fmt" "io/ioutil" "net/http" "regexp" ) var ( ptnIndexItem = regexp.MustCompile(`< atarget="_blank" href="(.+\.html)" title=".+" >(.+)`) ptnContentRough = regexp.MustCompile(`(?s).*

(.*)
.*`) ptnBrTag = regexp.MustCompile(`
`...阅读全文

博文 2014-10-04 19:26:05 tt-0411

商汤 北京 上海 杭州 深圳 内推招聘程序员 测试开发 研究员 实习生 销售

图片.png 图片.png 图片.png 内推优先录用,推荐邮箱: xurongzhong#sensetime.com,另外大量招聘具有211或985本科背景的,学历为本科及以上的实习生。社招可以放宽到普通统招二本。 钉钉或微信 pythontesting 商汤科技2019校招社招qq群 828186629 参考资料 讨论qq群630011153 144081101 本文涉及的python测试开发库 谢谢点赞! 本文相关海量书籍下载 2018最佳人工智能机器学习工具书及下载(持续更新) 图片.png 图片.png 图片.png 平台架构师 招聘类别: 社会招聘 工作性质: 全职 薪资范围: 面议 招聘人数: 若干 发布时间: 2019-03-03 截止时间: 工作地点: 北京市,上海市,广东...阅读全文

博文 2019-03-14 15:34:49 python人工智能命理

Go语法简略 - 依赖注入

通过对web应用框架背后原理的探索,引入了依赖注入的概念。如果你需要读懂或者写一个框架的话,依赖注入的思想绝对能帮到你。本文记录对依赖注入的探索。 区分依赖和宿主 现在我们把问题简化一下: package main import "fmt" func MethodA(name string, f func(a int, b string)) { fmt.Println("Enter MethodA:", name) f(3030, "zdd") // 给f注入参数 fmt.Println("Exit MethodA:", name) } func MethodB(a int, b string) { fmt.Println(a, b) } func main() { d := MethodB...阅读全文

博文 2015-10-12 19:00:00 zddmail

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的请求,具...阅读全文

Go 的 WebSocket 框架 Melody

Melody 是一个 Go 语言的微型 WebSocket 框架,基于 [github.com/gorilla/websocket](https://github.com/gorilla/websocket) 开发,主要特性: * 接口简单易用,类似 net/http 或者 [Gin](http://www.oschina.net/p/gin-web-framework) * 提供给所有广播以及给选择连接会话广播的简单途径 * 消息缓冲对并发写是安全的 * 可自动处理 ping/pong 和会话超时 一个简单的实例: [![Chat demo](http://static.oschina.net/uploads/img/201505/25075129_v...阅读全文

开源项目 2015-05-24 16:00:00 olahol

基于物联网的模块化智能监控系统

1 需求 当今安保智能化的需求日渐增长,本款小型的智能监控系统可应用于家庭、学校、企业等场所,有利于降低犯罪率,维护社会长治久安。 2 设计思路 模块化组合,自由定制,根据实际需求选配硬件,契合用户需求的同时实现成本最小化; 通过软件平台提供更丰富的数据分析功能,与市场现有产品做到差异化; 结合当下热门的人工智能技术,尤其是计算机视觉方面已经成熟的技术,对数据进行智能处理,减少用户手动操作,提高用户体验。 3 具体实现 3.1 感知识别层 3.1.1 硬件模块 Arduino 开发板 Arduino 是一款便捷灵活、方便上手的通用开源电子原型平台,便于扩展,因此应用端借助 Arduino 平台结合各种配件来实现数据的接受和传送。 Arduino 开发板 红外传感器 这套监控系统具备两种工作模...阅读全文

博文 2018-10-31 16:34:57 甜筒君

用Golang实现redis

缘起 最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,得空分享下去年学GO过程中的练手项目Godis——用Golang实现的redis. redis3.0版本,代码简明精炼,再加上是Web后端程序员使用最多组件之一,熟悉redis原理并阅读多源码的开发者人数颇多,这个系列小文便不再对redis细节做过多介绍。不过,有必要系统性说明的地方仍然会以较大篇幅尝试解读。 进入正题 基本流程 Godis第一版的目标是“最基本的kv缓存”,feature list如下: 客户端/服务端交互 set/get 命令实现 AOF持久化实现 已经做到,再精简就等于没写的境界。遵循实际工作中的编码流程,先设计基本架构再填充实现的方式,Godis的架构图一步到位、毫无点缀: 原理分析 1...阅读全文

博文 2018-06-06 11:34:39 alphali

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

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

Go 微服务实践

简介近一两年来,微服务架构已经成为热门话题(microservices.io),与传统的一体化应用架构相比,微服务架构在开发、测试、部署方面都有众多吸引人之处,越来越多没有历史包袱的新项目都启用微服务架构的模式来开发。我们这个团队经过深入思考之后,决定在一起美这个APP的后端开发中,选择Go作为开发语言,采用微服务模式来实现,经过近半年的实践,形成了一些心得,简单总结后分享出来,希望能够给大家一些帮助。框架选择不同的团队在选择基础框架(库)时考虑的要素不同,我们团队更喜欢小而美的框架,尽可能不要让框架侵入业务,易于升级、维护和替换,所以我们更愿意选择Library而不是Framework。在web方面,我们选择了negroni作为middleware库,采用性能不错的httprouter替换...阅读全文

博文 2017-02-10 11:43:52 Elvizlai

beego编译之后exe文件放到别人电脑无法启动

使用beego框架写的小项目,编译完成生成exe文件,将该项目所有文件全部拷贝到别人电脑上,运行就报错,如图![微信图片_20180328175612.png](https://static.studygolang.com/180328/a9061dd67ab33928b36c2ac06b90819b.png) 在自己电脑上,删掉环境变量,可以成功,项目考到其他盘下,可以成功,后来拷贝了几乎所有文件到别人电脑,src,bin,pkg都在,还是失败,还是这个错。求大神帮看看,谢谢啦...阅读全文

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的市场行情

了解一下Golang的市场行情 项目地址:https://github.com/go-crawler/lagou_jobs 如果对你有所帮助,欢迎 Star :) 目标 在工作中 Golang 已是一份子,想让大家了解一下 Golang 的市场行情,也想让更多的人熟悉它。因此主要是展示数据分析的结果 目标站点是 某招聘网站 的职位数据抓取和分析,爬取城市分别为 北京、上海、广州、深圳、杭州、成都,再得出一个结论 分析 首先需要进行页面分析,找到我们的抓取方向 搜索 golang 关键字,打开页面 F12 就能看到它发送了四个请求,留意 positionAjax.json 这个请求 我们仔细研判这个接口的入参和出参 入参 1、Query String Param city:请求的城市 need...阅读全文

博文 2018-04-28 09:44:10 go-crawler

Golang实现snowflake算法(分布式唯一id生成器)

package main import ( "errors" "fmt" "sync" "time" ) const ( twepoch = int64(1417937700000) // 默认起始的时间戳 1449473700000 。计算时,减去这个值 DistrictIdBits = uint(5) //区域 所占用位置 NodeIdBits = uint(9) //节点 所占位置 sequenceBits = uint(10) //自增ID 所占用位置 /* * 1 符号位 | 39 时间戳 | 5 区域 | 9 节点 | 10 (毫秒内)自增ID * 0 | 0000000 00000000 00000000 00000000 00000000 | 00000 | 000000 0...阅读全文

博文 2017-04-25 07:00:25 路人甲777

对golang服务器开发模式的一些思考

多线程+同步阻塞模型 在我们的游戏项目中使用的golang服务器开发方式如下 1.多线程逻辑 2.同步阻塞. 也就是说, 每个人一个线程(goroutine), io线程=逻辑线程 这种方式的优点: 1. 同步阻塞方式与人的思维方式类同 2. 逻辑处理性能有一定提升 在大规模使用这种模式编写逻辑后, 我们发现了这种模式只有1个缺点: 编写者需要处理多线程关系 但这本身确实直接致命的, 回想C++时代, 多线程处理时, 调试重现的困难… 脑补景象太惨不敢直视 单线程+异步多进程模型 在C++时代, 我曾经编写过一套asio的C++服务器框架. 采用io多线程, 逻辑单线程, 依赖着C++高性能的优势, 让开发便捷简单且无需关心线程问题. 那么到了golang时代, 为什么不能试下单线程异步多进...阅读全文

博文 2015-10-18 03:00:06 zangao