-
用Golang写一个搜索引擎(0xFF)
所属栏目:[大数据] 日期:2020-12-16 热度:136
先放上一首歌 今天这一篇的序号是 0xFF ,算是外篇吧,和Golang没什么关系,和代码也没什么关系,今天说说搜索引擎的排序吧,我会以电商的搜索排序为例来说,因为基本上除了大搜索以外(PageRank技术),其他的搜索排序都和电商的搜索引擎差不太多,无非就是[详细]
-
golang:errors
所属栏目:[大数据] 日期:2020-12-16 热度:196
今天来讲讲golang中最不优雅的东西,错误处理!在常用的高级语言中,我们的异常抛出可以使用throw exception,然后使用try catch来捕获异常(异常和逻辑错误都混在一起使用),异常类型细分的话可以自定义很多exception子类。 但是在golang中我们却不能这样[详细]
-
再论 golang 环境配置建议
所属栏目:[大数据] 日期:2020-12-16 热度:186
参考原文:http://www.philo.top/2015/12/13/golang-devenv/ 作者: philo.top 在之前的实践中满足开发环境所有特征的情况下进行了大量方式上的升级。经过次的版本升级,调整,爬坑,终于觉得这次版本升级足够有意义替代之前版本的建议。 我总觉得花一少部分[详细]
-
Golang实现基于Websocket协议的H5聊天室(上)
所属栏目:[大数据] 日期:2020-12-16 热度:131
http://www.cnblogs.com/wangrudong003/p/5535689.html go代码部分: [cpp] view plain copy //WebChatprojectmain.go packagemain import( "fmt" "net/http" "time" "encoding/json" "strings" "golang.org/x/net/websocket" ) //全局信息 vardatasDatas va[详细]
-
golang定时器函数
所属栏目:[大数据] 日期:2020-12-16 热度:100
tick := time.Tick(1 * time.second) 表示每隔一段生产一条数据到tick通道中。 boom := time.After(500 * time.Millisecond) 表示在一段时间之后产生一条数据到tick通道中,不会持续产生。 func timetick() { tick := time.Tick(100 * time.Millisecond) boo[详细]
-
Golang语言--select
所属栏目:[大数据] 日期:2020-12-16 热度:57
Golang语言--select golang的select与channel配合使用。它用于等待一个或者多个channel的输出。 应用场景:主goroutine等待子goroutine完成,但是子goroutine无限运行,导致主goroutine会一直等待下去。而主线程想假如超过了一定的时没有返回的话,进行超时[详细]
-
golang的错误处理
所属栏目:[大数据] 日期:2020-12-16 热度:200
通常在golang中使用错误处理都是这样做的: err := foo() if err != nil { return err } 但是如果该函数需要多次调用,那么每次调用都需要进行错误处理: var err error var param1,param2 int err = foo(param1) if err != nil { return err } err = foo(pa[详细]
-
Golang语言--测试技术
所属栏目:[大数据] 日期:2020-12-16 热度:64
转载地址:http://studygolang.com/articles/1889 本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术[详细]
-
Golang和HTTPS在网站前端接入里的作用
所属栏目:[大数据] 日期:2020-12-16 热度:192
网站前端架构技术一直在不断的优化,而要做到全栈优化,就必须要运维、后端架构研发、前端模板渲染研发、系统和网络等各个部门的协作。同时,安全又是网站建设话题中避不开的梗,从2015年年初开始,HTTPS安全协议就已经遍布各大网站的网址里了,而百度是国内[详细]
-
Golang基本数据类型,常量,标识符
所属栏目:[大数据] 日期:2020-12-16 热度:104
基本数据类型,常量,标识符 1、标识符,关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 2、类型 bool byte complex64 complex128 e[详细]
-
Golang语言和node.js的对比
所属栏目:[大数据] 日期:2020-12-16 热度:178
go: Golang的诞生有着很强的目的性,所以根基显得非常的沉稳,语言未来针对高性能,高并发的优化也更得心应手。更主要Golang可以切实的解决实际问题,并在内存与CPU使用上大幅优于node。为此,针对有大量请求的服务端,Golang是个不错的选择。 从大型工程的[详细]
-
Golang中一个不错的处理 JSON 的库 go-dproxy
所属栏目:[大数据] 日期:2020-12-16 热度:67
图片来自:http://qiita.com/hogedigo/items/f914992baf7a2ed12b9c 国庆七天,你是吃多了,还是睡多了?放假七天转眼即逝,接下来的七天可能你又觉得会很漫才。 言归正传。Golang 虽然自己就带了 JSON (encoding/json) 处理的库,也有第三方的 simplejson (h[详细]
-
Golang 在Baidu-FrontEnd 的应用之路
所属栏目:[大数据] 日期:2020-12-16 热度:170
百度资深工程师陶春华在 QCon 北京 2016 上分享了《Golang 在 Baidu-FrontEnd 的应用》这一话题,以 Baidu-FrontEnd 的重构历程为主线索,展示了在设计海量接入前端中的权衡以及对语言的考虑。 百度日请求量在 700 亿以上,面对如此庞大的前端页面访问量,百[详细]
-
golang:channel
所属栏目:[大数据] 日期:2020-12-16 热度:50
先来看看上一篇文章我们提到去掉程序会变成什么样子。代码如下: 运行结果如下: 在上面的例子中,我们看到,这个单词并没有被打印出来。是不是感觉很奇怪?明明开了goroutine,却没有执行。实际上,在运行的时候被go修饰的函数,会进入主线程以外的线程等待[详细]
-
GOLANG如何并发
所属栏目:[大数据] 日期:2020-12-16 热度:64
Concurrency Concurrency is a property of systems in which several computations are executing simultaneously,and potentially interacting with each other,维基百科上这样定义Concurrency。多线程在同一个核内分时执行或者多核下多进程同时执行都可[详细]
-
对beego的控制器函数进行单测
所属栏目:[大数据] 日期:2020-12-16 热度:91
根据astaxie大神的意见,在beego上对controller做单测比较困难,他的建议就是把所有逻辑都拆分出来,放到model中。然后对model中的public函数进行测试。 但是这就会多很多封装,而且,有些时候对controller的测试可能是绕不开的。 其实对controller进行单测[详细]
-
【GOLANG】第二章 RPC client源码分析
所属栏目:[大数据] 日期:2020-12-16 热度:129
第二章 RPCclient源码分析 rpc客户端的逻辑很简单,将一个个的 调用请求序列化后原子的发送给服务器 ,有一个专门的gorutine等待服务器应答,这goroutine会将收到的每个应答分发给对应的请求,完成了一次rpc调用。 client是基于单个socket连接来, 靠 channe[详细]
-
golang实现ConfigParser, 解析ini
所属栏目:[大数据] 日期:2020-12-16 热度:122
Usage: Init(rc_file1,rc_file2...) 后面的会覆盖前面的 Get(section) 在配置文件中可以使用 COMMENT_FLAG 默认 # 来写注解. package configimport ("fmt""io/ioutil""log""os""regexp""strings")var CONFIG map[string]map[string]string = make(map[string[详细]
-
Golang与MySQL
所属栏目:[大数据] 日期:2020-12-16 热度:92
http://weibo.com/WmZp/1001604032964169178629 http://weibo.com/NwXp/1001604032964181775926 http://weibo.com/BYop/1001604032964395674209 http://weibo.com/gHGp/1001604032964508922283 http://weibo.com/Golp/1001604032964517323452 http://weibo.co[详细]
-
golang中协程同步sync.waitGroup
所属栏目:[大数据] 日期:2020-12-16 热度:138
//使用golang中sync.WaitGroup来实现协程同步package mainimport ("fmt""net/http""io/ioutil""time""os""sync")var waitGroup = new(sync.WaitGroup)func download(i int ){url := fmt.Sprintf("http://pic2016.ytqmx.com:82/2016/0919/41/%d.jpg",i)fmt.Pr[详细]
-
Go语言中的变量声明和赋值
所属栏目:[大数据] 日期:2020-12-16 热度:63
转载:http://www.jb51.net/article/64725.htm 1、变量声明和赋值语法 Go语言中的变量声明使用关键字var,例如 复制代码 代码如下: var name string //声明变量 name = "tom" //给变量赋值 这边var是定义变量的关键字,name是变量名称,string是变量类型,=[详细]
-
vscode编辑器golang调试
所属栏目:[大数据] 日期:2020-12-16 热度:121
安装vscode 安装vscode-go 插件 进入vscode界面,打开命令面板 Ctrl + Shift + P ,输入 install , 插件特性包括: Completion Lists ( using gocode)Signature Help ( using godoc)SnippetsQuick Info ( using godef) Goto Definition ( using godef)Find Refe[详细]
-
Golang之旅1:从0到1
所属栏目:[大数据] 日期:2020-12-16 热度:67
0x00 前言 0x01环境准备 golang安装比较简单,源码、apt、二进制文件三种选一个即可。前天发布的ubuntu16.04自带1.6版本的go,我用的15.10,版本是1.5的,再加上不想用源码折腾,就去官网下载二进制文件了,用的目前最新的版本1.6.2。 环境变量 下载、解压、[详细]
-
Golang之旅2:工程结构
所属栏目:[大数据] 日期:2020-12-16 热度:166
0x00 前言 我一直对go中的一些概念比较模糊,比如它的GOPATH到底是个什么意思、项目目录是怎么布局的、怎样做的测试。因此这次就先上一个小工程,试试水。 0x01 工程概要 功能 实现一个小的计算器功能(代码是借鉴来的^_^)。 目前有的功能是add和sqrt。 dant[详细]
-
Golang之旅3:三种读文件方式
所属栏目:[大数据] 日期:2020-12-16 热度:100
前言 我感觉学语言,至少也得学一下读写文件把…… 读文件 go有三种读写文件的方式,分别在os、ioutil、bufio包中,下面分别举例使用三种方式从文件中读取数据,写操作类似。 go官网中都有相应的说明。附地址 os 使用最传统的方式,Open,Read,Close,在os包[详细]
