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

零猫科技告诉你-Go语言可以干嘛?

Hi,大家好!我是GO首席软件工程师Rob Pike说:我之所以被开发,是因为过去10多年间软件开发的难度令人沮丧。你所不知的,GO Go语言是谷歌发布的第二款开源编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此也被设计用来解决多处理器的任务。我是GO,我够红 目前,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,也诞生了很多基于Go的服务和应用,比如Dokcer、k8s等,现在我们看下,有哪些大公司在用Go语言了。Google对Go寄予厚望。旗下Ap...阅读全文

偷看你在干嘛!golang实现, 基于dnsmasq的dns请求获取

源码地址 什么是dnsmasq(摘自网络) Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以为局域网电脑提供内网ip地址和路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。 更多详细 https://wiki.archlinux.org/index.php/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 什么是dnsmasq_admin? 这个东西是针对dnsmasq产生的日志做筛选,将用户...阅读全文

博文 2014-10-04 19:27:43 Able

golang hijack

一直不太明白golang的hijack是干什么的?只知道hijack这个词是篡取的意思,难道跟网关的作用一样,把client的请求发到这个服务上,然后这个服务帮忙转发到远端server,但是看了源码后就明白这个golang hijack是干嘛的? 先看一下hijack相关的结构说明: type Hijacker interface { Hijack() (net.Conn, *bufio.ReadWriter, error) } //返回连接接口net.Conn和ReadWriter,bufio读写的 // Hijack lets the caller take over the connection. -----翻译Hijack让调用者管理连接 // After a call to Hij...阅读全文

博文 2015-11-06 16:00:06 golang_yh

go语言实现的http和https抓包工具

[gomitmproxy](https://github.com/sheepbao/gomitmproxy)是想用golang语言实现的[mitmproxy](https://mitmproxy.org/),主要实现http代理,目前实现了http代理和https抓包功能,差距甚远,加油。 ## 可以用来干嘛? * http代理 * http和https抓包 * 科学上网 ## 安装使用 ```bash git clone https://github.com/sheepbao/gomitmproxy.git cd gomitmproxy go build ``` ## 例子 * http代理 ```bas...阅读全文

golang-base64

什么是base64? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。 应用:个人知道的有web 把图片加密,直接同网页一起传送,秘钥签名后,也要使用它来加密,个人觉得,...阅读全文

博文 2015-12-15 21:00:01 wjcgo

我希望的Golang的feature

如果有下面的功能,Go可以让程序员更高效。 1. 数学类型的自动转换。现在做个整数跟浮点数的计算也要手动转类型。据说是为了更安全和可预测的代码。但是其他主流语言都支持自动转,大家早就习惯了。需要考虑类型安全的地方,该考虑的人自然会去考虑。 2. Polymorphism的支持。interface对多态的支持还是比较有限。down casting做不了有的时候还是不大方便。比如下面这段代码就编不过 type Base struct { xxxx } type Derived struct { Base } func main() { v1 := &Drived{} var v2 *Base v2 = v1 //编译不过 v2 = *Base(v1) //也不行 } 3. 更方便的数组的操作比如...阅读全文

博文 2015-12-28 00:00:00 kefeng_chen

Golang GC算法

概括 Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 三色并发标记清理算法。 非分代:不像Java那样分为年轻代和年老代,自然也没有minor gc和maj o gc的区别。 非紧缩:在垃圾回收之后不会进行内存整理以清除内存碎片。 写屏障:在并发标记的过程中,如果应用程序(mutator)修改了对象图,就可能出现标记遗漏的可能,写屏障就是为了处理标记遗漏的问题。 三色:将GC中的对象按照搜索的情况分成三种: 黑色: 对象在这次GC中已标记,且这个对象包含的子对象也已标记 灰色: 对象在这次GC中已标记, 但这个对象包含的子对象未标记 白色: 对象在这次GC中未标记 并发:可以和应用程序(mutator)在一定程度上并发执行。 标记清理:GC算法分为两个大步骤:标记阶段找出要回收的对象,清理...阅读全文

博文 2019-01-03 21:34:49 一剑光寒十九洲

【go】安装

http://golang.org/doc/install/source第一步:windows 安装 git第二步$ git clone https://go.googlesource.com/go $ cd go $ git checkout go1.4.1保持FQ姿势 D:\Program Files (x86)\Git\bin>git clone https://go.googlesource.com/go Cloning into 'go'... remote: Sending approximately 75.85 MiB ... remote: Counting objects: 7223, done remote: Finding sources: 100% (1687/168...阅读全文

博文 2015-07-03 19:00:01 viewcozy

马云在云栖大会分享:成立“达摩院” 研发投入1000亿探索科技前沿

阿里巴巴在技术研发上的“大招”今日终于揭晓。在10月11日的2017云栖大会上,阿里巴巴宣布成立探索人类科技未来的实验室“达摩院”,并在三年内集团研发投入1000亿人民币,用于涵盖基础科学和颠覆式技术创新的研究。 在云栖大会及此前与应邀参会的多位全球顶级科学家座谈中,阿里巴巴董事局主席马云谈到了成立“达摩院”的初衷,并对“达摩院”提出三个希望:必须活得比阿里巴巴长,要服务全世界至少20亿人口,必须面向未来、用科技解决未来的问题。 ![配图2.jpg](https://static.studygolang.com/171011/dda054919d51c84aea0e10d15da6a3d3.jpg) ((到阿里云官网了解更多>> http://click.aliyun.com/m...阅读全文

后台用MySQL或者MongoDB数据库控制,用go来接受HTTP请求。这样用户的一举一动尽在掌握之中。同步不同步就容易多了~

这样就不需要磁盘扫描统计了,而是使用数据库统计。这样就可以准确记录当前用户有哪些文件,能干嘛~ 两种方法: 1.客户端上传文件成功以后,http post提交数据库信息。好歹有Apache撑腰,每秒数万不成问题 比如内存2G,减去500M留给服务器,还有1.5G,那么可得到最大连接数:在8000左右: http://www.cnblogs.com/flyoo/archive/2013/05/31/3110499.html 如果换成go语言,就更没有问题了。 2. 服务端自己做接受程序,一旦接受,就往数据库里填入东西 所有操作全靠这个服务端软件,有点悬。何况这个服务端软件还要自己写...阅读全文

博文 2016-09-08 22:00:02 findumars

邂逅“中本聪”,原来天才也有烦恼

天才,这是只有在电视里才会看得到的现象,看到天才聚集最多的综艺节目是《最强大脑》,这是我非常喜欢看的一档节目,为什么喜欢看,排除节目效果的因素,则是内心里对天才从小就渴望,到现在依旧对天才心生敬畏。若不是上周末参加黑客马拉松比赛,也许“天才”二字就只是停留在想象当中,当做无所不能的大神顶礼膜拜。 你对天才怎么定义?你身边有过天才吗?你觉得天才有怪癖吗?围绕天才的话题是可以无尽展开,其实我们上学读过《伤仲永》依稀记得“泯然众人矣”,然后从商业角度去想,世界五百强的公司老总富豪们有几个是天才级别的人物? 先说我和天才是怎么认识,然后是如何一步步被打破对天才的固有观念。 提示:不想看前因后果的读者们可以跳过灰色字内容。 7月底的一个周末,以志愿者的身份出现在“**柚子杯黑客马拉松**”比赛现场,一...阅读全文

博文 2018-07-31 22:34:49 Thehrdertheluck

每天5分钟学Golang从入门到放弃 —— 七嘴八舌

学习一门编程语言途径无非就是两种:读书、看视频。很多人在刚准备入门的时候在这两种方式之间徘徊许久,这里简单说下两种方式各自的优缺点: (1)看书 优点: 方便做笔记(题外话:想怎么写就怎么写,想怎么画就怎么画,等等你是来学习golang还是学习画画的) 花费时间相对比较短(题外话:很多人说自己看书很慢,那是因为没掌握方法,看书不是每页都从第一个字看到最后一个字才算看完,可以着重看下目录、大小标题、序言、每章总结等等,具体方式后面有空再整理分享。) 花费时间相对比较短 缺点: 检索不方便(比如说想起某个知识点好像在哪里看过,但又记不清) 接受效率相对较低(看视频是眼看,耳听;看书只用眼看接受效率会略低于看视频) 相对比较枯燥(题外话:看书?不就是用来保证晚上睡眠质量的?) (2) 看视频 优点...阅读全文

Base64 GO加密简单用法 如何深入用法

**这样的简单用法觉得没什么意思 什么办法设计的复杂一点 当然可以改base64Table 的打乱顺序!还有什么办法没** ~~~ package main import ( "encoding/base64" "fmt" ) const ( base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ) var coder = base64.NewEncoding(base64Table) func base64Encode(src []byte) []byte { return []byte(coder.EncodeToString(src)) ...阅读全文

及时通信最佳实践

描述 Lhttp是一个基于websocket服务端框架,提供一个类似http的协议去帮助开发者开发长连接的应用。 使用Lhttp可以大量减少服务端开发的工作量,实现非常好的模块化和业务功能的解耦合。 可以定制任何你想要的功能。 项目地址 特点 使用简单,功能强大 性能高,使用gnatsd消息队列 publish 10000 条消息耗时0.04s(single-core CPU,1G memory). 支持集群,横向扩展,通过增加服务器来获取更高的服务能力 非常容器进行定制与扩展 可以非常好的与http服务协同工作,如利用http发送消息,将消息转发给上游http服务器等。所以即便你不会go语言也可以开发一些应用。 聊天室demo 前端sdk 协议栈: +-------------------...阅读全文

博文 2017-02-09 06:00:22 fanux

死鬼,这五个月干嘛去了?

Hi,来啦~边听歌咱们咱边聊吧,也没法给你拿点喝的,你坐着,就听我随便说说吧。你啊,认识这么长时间了,还是这么不正经,都多大人了你说,以后别老死鬼死鬼的乱交换我,我可不是你的死鬼,呵。你笑什么,脑子坏了,脑子坏了。。。找到这儿应该挺不容易吧,你看这儿挺冷清的,也没什么人,老板也是佛系不管不问,啥都不打理,但是啊来这儿的人都比较放松。啊?这几个月去哪儿了?一直在这儿啊,一直都在北京待着;休息间隙就刷刷朋友圈看你们都发了些什么有趣儿的事儿,看你们啊,遛孩子的遛孩子,玩无人机的玩无人机,我也观望很久了,还有晒猫晒狗发好几遍,还有过分的啊出去玩儿,好山好水,蓝天白云还有沙滩,我都一年半没出去了!!还有晒七夕,我就纳闷今年七夕好像朋友圈晒得特别多啊你没觉得么?是吧,这帮人其中就有你,哈哈~正儿八经的时...阅读全文

博文 2018-09-03 20:34:59 Hi大伟

请问govendor是干嘛的

![image.png](https://static.studygolang.com/180415/ebd3b2cf278508402a561abde9a318c1.png) 如图,为什么执行: ovendor fetch github.com/gin-gonic/gin@v1.2 会把依赖下载到当前项目? 已经通过go get下载gin到gopath里面了,为什么又要下载到当前项目? 感觉是为了解决gopath依赖问题?直接以下载的目录为标注吗?请问怎么理解govendor包管理的意义...阅读全文

科班出身和培训上岗的程序员谁更牛?

高考分数下来一段时间了,又到了大学新生选专业的时候啦!想想当年从成百上千的专业中选择的纠结记忆犹新,那时想法就是当法医。 刚和家长说出想法一盆拔凉拔凉的水把我熊熊燃烧的小心脏浇灭了,家里告诉我不行,这个职业太晦气不能干,不管我咋坚持都不行,最后放弃了, 于是乎我上网查许久最后直觉告诉我“挨**踢”未来前景会很好,于是乎稀里糊涂就报了软件工程。 当时连是干啥的都不知道。 后来在大学期间老师告诉我们的程序员是这个样纸 而毕业后现实中确是这个样纸 和这个样纸 而且随着时间流逝的结果是这个样纸 云栖社区发起话题后,很多小伙伴们都分享了自己的一些看法: 社区昵称:浮生递归 这...阅读全文

马云: 成立“达摩院” 研发投入1000亿探索科技前沿

​摘要: 阿里巴巴在技术研发上的“大招”今日终于揭晓。在10月11日的2017云栖大会上,阿里巴巴宣布成立探索人类科技未来的实验室“达摩院”,并在三年内集团研发投入1000亿人民币,用于涵盖基础科学和颠覆式技术创新的研究。 在云栖大会及此前与应邀参会的多位全球顶级科学家座谈中,阿里巴巴董事局主席马云谈到了成立“达摩院”的初衷,并对“达摩院”提出三个希望:必须活得比阿里巴巴长,要服务全世界至少20亿人口,必须面向未来、用科技解决未来的问题。 马云认为,社会责任与世界担是阿里巴巴探索人类科技前沿的根本动力。他说:阿里巴巴已经不是一家普通的商业公司,我们在这个国家、在这个时代担当有巨大的责任。阿里巴巴必须是一家创造未来的公司,要成为国家和社会乃至于世界创新的发动机。 创立...阅读全文

Golang指针与unsafe

前言 我们知道在golang中是存在指针这个概念的。对于指针很多人有点忌惮(可能是因为之前学习过C语言),因为它会导致很多异常的问题。但是很多人学习之后发现,golang中的指针很简单,没有C那么复杂。所以今天就详细来说说指针。 指针的使用 a := 1 p := &a fmt.Println(p) 输出:0xc42001c070 可以看到p就是一个指针,也可以说是a的地址。 a := 1 var p *int p = &a fmt.Println(p) 或者也可以写成这样,因为我知道,在很多人看来,看到*号才是指针(手动滑稽) a := 1 p := &a fmt.Println(*p) 输出:1 然后使用就直接通过*号就能去到对应的值了,就这么简单 指针的限制 Golang中指针之所以看...阅读全文

博文 2019-06-10 17:32:48 LinkinStar

09-GoLang流程控制

选择结构if C语言中有三目运算符 ?: Go语言中没有,所有用三目解决的问题使用 if-else 来解决 C语言中的if选择结构有三种格式 格式一: if(条件表达式){ 被控制的语句; } 格式二: if(条件表达式){ 被控制的语句; }else{ 被控制的语句; } 格式三: if(条件表达式){ 被控制的语句; }else if(条件表达式){ 被控制的语句; }else{ 被控制的语句; } Go语言中的if选择结构也有三种格式, 并且和C语言中的格式类似 格式一: if 初始化表达式;条件表达式 { 被控制的语句; } // 注意点: 如果将变量定义到if的初始化表达式中, 那么变量只能在if结构中使用 // 这样做的目的是为了提升性能, 如果变量只在选择结构中使用, //那么...阅读全文

博文 2018-10-10 13:34:39 箩篼

程序员垃圾代码分类指南

来源:纯洁的微笑ID:keeppuresmile作者:微笑很纯洁上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。其实每个行业都会存在各种各样糟糕的情况,娱乐性的分类会将问题放大,让我们能站出来用另一个视角来看看,什么类型的程序员是我们应该避免的。做为一名老程序员,谁还没有写过几行垃圾代码,我到现在还记得在第二家公司离职时,写的那段超过 600 行一个方法的代码,可以想象后面接手我工作的同事,看到那段代码是什么样的感受。那段代码已经过去了6年多,我现在仍然记得,可见有多痛。那 600 行代码真的巨复杂,嵌套了至少四个 for 循环,处理了思科 IP 话机最复杂的话费解析功能。为什么会出现这样的情况,因为时间...阅读全文

博文 2019-08-01 20:38:17 马哥小迷妹

Golang的垃圾回收

前言 最近垃圾分类的话题热度一下子就上去了,很多人因为垃圾分类的问题很头痛。因为垃圾这个话题,那我就想来说说Golang里面的垃圾,于是就有了这篇博客,golang中的垃圾回收。 现阶段网上针对golang垃圾回收的解析已经很多了,所以我也没有必要仔仔细细的一点点说,还是那个原则,用最直白的话告诉你,垃圾到底是怎么收的。 GC的意义 首先本文后续都会使用 GC 代替垃圾回收这几个字。 我们知道创建对象会给他分配内存资源,如果这个对象不使用了,而这个内存资源却一直被占用的话,那么我们的电脑很快就会被放满,所以需要将这些垃圾对象进行回收。 什么才是垃圾 要回收,那么我们必须知道什么才是垃圾,什么不是垃圾。 在我们看来,一个对象以后都不用了,就是垃圾。 在程序看来,一个对象没有被引用了,就是垃圾。...阅读全文

博文 2019-07-05 19:32:54 LinkinStar

GOPATH 是用来干嘛的?

GOPATH 是 Go 语言的工作目录,他的值可以是一个目录路径,也可以是多个目录路径,每个目录都代表 go 语言的一个工作区。 我们开发 Golang 项目时,需要依赖一些别的代码包,这些包的存放路径就与 GOPATH 有关。 在 v1.11 版本之前,所有的代码包都要放到 $GOPATH/src 目录下,那个时候 go 官方还没有支持依赖管理,包括我们自己项目的代码,依赖的代码包,都被放到这个路径下,十分混乱,不利于管理。 而在 v1.11 之后,官方终于支持了包管理,除了能够自动下载依赖包,项目也不再需要放到 $GOPATH/src 下了,项目中会维护一个 go.mod 的文件记录依赖包及其版本,所有依赖的代码包都被放到了 $GOPATH/pkg/mod 下了,src 目录不复存在。 ...阅读全文

博文 2019-06-10 20:32:39 痕迹绝陌路

go 学习笔记之是否支持以及如何实现继承

熟悉面向对象的小伙伴们可能会知道封装,继承和多态是最主要的特性,为什么前辈们会如此看重这三种特性,真的那么重要吗? 什么是封装 什么是封装,封装有什么好处以及怎么实现封装? 相信大多数小伙伴们都有自己的理解,简而言之,言而简之,封装是屏蔽内部实现细节,仅仅对外暴露出有价值接口. 正如平时工作中使用的电脑一样,我们并不关心电脑的内部组成,只要会开机关机等基本操作就能正常使用电脑,即便坏了的话,也是送去专业维修店进行修理,作为使用者来说,我们从始至终并不关心电脑的工作原理以及它如何工作,唯一在乎的就是怎么能够上网. 之所以我们能如何方便地使用电脑进行网上冲浪,完全得益于电脑设计者对普通用户屏蔽了无关细节,只暴露有价值的操作方法,这种实现方式就是封装. 回到编程语言上,Go 语言作为一种通用的编程...阅读全文

博文 2019-08-25 09:34:48 雪之梦技术驿站

value.go

概述 atomic.Value支持不用锁的情况下并发读写"任意类型"数据 前置知识 interface底层结构 https://i6448038.github.io/2018/10/01/Golang-interface/ unsafe https://gocn.vip/question/371 example package main import ( "sync/atomic" "fmt" ) func main() { var v atomic.Value v.Store("joker") fmt.Println(v.Load()) // joker v.Store(1) fmt.Println(v.Load()) // panic: sync/atomic: store of inc...阅读全文

博文 2019-04-01 02:34:39 killtl

一个 npm 包的坎坷“续命”之生

欢迎关注我的简书. 更多内容请关注微信公众号:趣味web前端教程 标题:一个 npm 包的坎坷“续命”之生 原文:https://blog.csdn.net/vCa54Lu0KV27w8ZZBd/article/details/85594853 ————————————————— 如果说 npm 的大新闻,莫过于之前的 left-pad 撤包事件,event-stream 投毒事件,Ant Design 彩蛋事件。使得很多前端开发者又开始重新思考 npm 生态时候真的存在问题? 今天我们文章的主角是 memwatch,一个用来帮助我们检查 Node.js 是否存在内存泄漏的库,和这个库传奇的一生。 2012 年 02 月 06 日,一位 Mozilla 的工程师 lloyd 创建了这个库,并...阅读全文

博文 2019-07-23 09:32:51 Mr_Zhangwr

5.5 Go语言项目实战:多人聊天室

本篇文章IT兄弟连GO语言学院小美 给读者们分享一下Go语言项目实战:多人聊天室 对GO语言感兴趣想要学习Golang开发技术的小伙伴就随小编来了解一下吧。 **功能需求** - 实现单撩 - 实现群撩 - 实现用户上线的全网通知 - 实现用户昵称 - 实现聊天日志的存储和查看 **服务端实现** ``` type Client struct { conn net.Conn name string addr string } var ( //客户端信息,用昵称为键 //clientsMap = make(map[string]net.Conn) clientsMap = make(map[string]Clie...阅读全文

5.4 Go语言项目实战:基于开源数据的成语查询

本篇文章IT兄弟连GO语言学院小美 给读者们分享一下Go语言项目实战:基于开源数据的成语查询 对GO语言感兴趣想要学习Golang开发技术的小伙伴就随小编来了解一下吧。 **业务需求** - 命令行键入一行诗句启动应用:idiom.exe -cmd start -poem 大王派我来巡山 - 将诗句中的每个字丢入【模糊查询管道】 - 另外再建立【精确查询管道】和【结束管道】,分别存储【成语】(大鹏展翅、占山为王、龟派气功...)和【结束指令】(fuckoff) - 时钟每秒随机读入一条管道数据: 如果是【模糊查询管道】:起协程进行模糊查询,并汇总数据在内存 如果是【精确查询管道】:起协程进行精确查询,并汇总数据在内存 如果是【结束指令】:停止查询,将...阅读全文

Node.js 进程平滑离场剖析

> 本文由云+社区发表 > 作者:草小灰 使用 Node.js 搭建 HTTP Server 已是司空见惯的事。在生产环境中,Node 进程平滑重启直接关系到服务的可靠性,它的重要性不容我们忽视。既然是平滑重启,就涉及到新旧进程的接替过渡: - 首先,保证新进程平滑入场 - 其次,保证旧进程平滑离场 本文主要谈论下,在新旧进程接替过渡期间,如何保证旧进程平滑离场。那怎样的离场才算平滑的呢? ## 如何定义平滑离场 以进程离场作为时间分割点,我们可以把请求分为两类:`增量请求`和`存量请求`。 - 在进程离场前,停止接收新的(`增量`)请求 - 在进程离场前,保证未完成的(`存量`)请求正常响应 所以,达成以上两个目标,基本上我们就认为进程的...阅读全文