golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help build,这些是编译...阅读全文

博客园 2015-08-19 20:46 moxiaopeng

[UMU 学 golang](1) Hello code!

一直玩 WSH,被说逼格跟不上时代,又据说 go 即将发布的 1.5 版解决了 GC stop-the-world 问题了,所以 UMU 打算以后用它来开发工具。 最近想统计代码行数,以前用 VBS 写的一时间居然找不到,直接就用 golang 写了一个,基本从零开始用了大约 4 小时完成。下面谈一下心得。 1、golang 的 runtime 居然没有 set,只能用 map 代替了,一开始觉得不优雅,不过想来也差不多,不计较那么多了。 2、语法还确实挺简洁的,第一次练手就感觉学这个语言,其实...阅读全文

开源中国博客 2015-08-19 16:44 UMU

Go 边看边练 -《Go 学习笔记》系列(二)

上一篇: Go 边看边练 -《Go 学习笔记》系列(一) 1.3 基本类型 更明确的数字类型命名,支持 Unicode,支持常用数据结构。 类型 长度 默认值 说明 bool 1 false byte 1 0 uint8 rune 4 0 Unicode Code Point, int32 int, uint 4 或 8 0 32 或 64 位 int8, uint8 1 0 -128 ~ 127, 0 ~ 255 int16, uint16 2 0 -32768 ~ 32767, 0 ~ 65...阅读全文

黑客与画家的社区 2015-07-22 17:53 88250

聊聊初创公司的后端语言选型(小众语言)

在创业公司初创伊始,如何选择合适的语言决定了产品后续的技术栈和如何进行合理的业务支撑方向。如果你在读这篇文章之前,更倾向于选择Java/C#/PHP常见语言技术栈,我觉得对于你而言,这篇文章帮助不大。因为对你而言,这些技术栈意味着更加方便招人,更方便的故障处理资料等等。但是如果一个初创公司想要选择合理的小众语言技术栈,我想这篇文章对你也许有一些帮助。 在文章开始之前,我觉得有必要描述一下所谓的小众语言,这里我在最初进行技术选型时,考察了包括: Python: 你可能在接触爬虫、大数据分析等等方面...阅读全文

ipfans's Blog January 27, 2016 kevin

Go 边看边练 -《Go 学习笔记》系列(一)

相信大家在看编程语言学习教程的时候都会难免觉得有点枯燥: 自己看书,遇到问题不方便求助 书上的代码片段、示例是静态的 虽然有时书上会给出运行输出,但是不够直观 自己拷贝代码到 IDE 里运行是也比较麻烦 即使运行了也要来回在 IDE 和书之间切换,还是麻烦 总之,程序员都是懒人 如果能边看边练就会舒服很多,书上的示例代码经过自己实际验证/微调后也更容易理解并消化。 基于这个出发点,Sym 社区决定给大家上干货中的干货: 从内容上:选择了雨痕的《Go 学习笔记》作为教程,该书言简意赅,讲解的都是 ...阅读全文

黑客与画家的社区 2015-07-22 00:45 88250

golang:使用timingwheel进行大量ticker的优化

Ticker 最近的项目用go实现的服务器需要挂载大量的socket连接。如何判断连接是否还存活就是我们需要考虑的一个问题了。 通常情况下面,socket如果被客户端正常close,服务器是能检测到的,但是如果客户端突然拔掉网线,或者是断电,那么socket的状态在服务器看来可能仍然是established。而实际上该socket已经不可用了。 为了判断连接是否可用,通常我们会用timer机制来定时检测,在go里面,这非常容易实现,如下: ticker := time.NewTicker(60 ...阅读全文

博客园 2015-08-18 11:45 moxiaopeng

利用golang和QML来开发Ubuntu应用

在前面的文章“使用golang来设计我们的Ubuntu Scope”中,我们已经介绍了如何利用golang来开发Ubuntu Scope。在今天的文章中,我们来简单介绍一下如何使用golang来开发QML应用。这对于一些熟悉golang语言的,但是不是很熟悉C++的开发这来说,无疑是一个好的选择。虽然我们大多数的QML应用只需要QML加上一些Javascript的脚本即可,但是我们可以使用Qt C++或Go语言来拓展它的功能,来做一些需要计算或特殊功能的部分。 首先,我们来查看我们中国开发者da...阅读全文

CSDN博客 2015-07-10 13:36 UbuntuTouch

golang(5):编写WebSocket服务,客户端和html5调用

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46882777 转载请必须注明出处! 1,关于websocket HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。 在JavaEE7中也实现了WebSocket协议。 在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 参考: http://ba...阅读全文

CSDN博客 2015-07-15 16:23 freewebsys

优化 Go 中的 map 并发存取

Catena (时序存储引擎)中有一个函数的实现备受争议,它从 map 中根据指定的 name 获取一个 metricSource。每一次插入操作都会至少调用一次这个函数,现实场景中该函数调用更是频繁,并且是跨多个协程的,因此我们必须要考虑同步。 该函数从 map[string]*metricSource 中根据指定的 name 获取一个指向 metricSource 的指针,如果获取不到则创建一个并返回。其中要注意的关键点是我们只会对这个 map 进行插入操作。 简单实现如下:(为节省篇幅,省...阅读全文

黑客与画家的社区 2015-04-02 10:31 88250

Golang 基础代码示例

Hello World 值 变量 常量 for if/else switch 数组 切片 map range 函数 多返回值 变参函数 闭包 递归 指针 结构体 方法 接口 错误 协程 Channel Channel 缓冲 Channel 同步 Channel 方向 select 超时控制 非阻塞 Channel 关闭 Channel range Channel 定时器 Ticker Worker Pool 频率限制 原子计数器 互斥锁 协程状态共享 排序 自定义排序函数 Panic Defer...阅读全文

黑客与画家的社区 2015-03-06 16:48 88250

Golang MySQL LOAD DATA LOCAL INFILE 使用

在往 MySQL 写入大量数据时直接 insert 效率太低,应该使用 MySQL 的 LOAD DATA LOCAL INFILE。 Golang 的 MySQL 驱动 https://github.com/go-sql-driver/mysql 支持这个用法,有用到的朋友可以参考如下代码: db, err := sql.Open("mysql", conf.DB) byts := &bytes.Buffer{} for _, pv := range stat { line := string...阅读全文

黑客与画家的社区 2015-03-03 16:36 88250

golang 笔记

import "x/y/z" //实际上是去找name.a //自己把这个想象成路径 fmt.printf; //把fmt想象成类(对象) go build 包名默认就是目录名。生成的a文件也是目录名。 [delphi@z220 test]$ tree . . ├── inc │ └── func.go └── test.go //inc/func.go 实际上会生成 test/inc.a文件 package pkgfunc import "fmt" func MyFunc() { fmt.Pr...阅读全文

开源中国博客 2015-08-18 16:46 明月惊鹊

使用 Golang 操作 Linux Namespaces

Linux 命名空间简介 Linux Namespaces(Linux 命名空间)机制提供了进程使用操作系统资源时的隔离方式,是基于内核实现轻量级虚拟化(容器化,例如 docker)的实现基础。 具体来说就是当我们创建一个进程时,可以给进程设置 flag 组合来构建进程的命名空间,处于不同命名空间的进程是相互隔离的。 命名空间分类 目前我们可以设置如下几种命名空间,它们分别从不同的资源纬度进行隔离。 CLONE_NEWPID 该标识用于创建一个新的 PID 命名空间,新进程将成为命名空间里的第一...阅读全文

黑客与画家的社区 2014-12-22 11:41 88250

Golang写的web分页

* 自己最近在学习Golang重写一些公司以前的JAVA MVC程序,刚刚毕业,周边又没有做过这个,所以只能苦逼的摸索,希望大神么 ,多多给写建议。* github: [JiangXuanYi](https://github.com/JiangXuanYi/util.git) ```go // main.go package main import ( "fmt" ) func main() { fmt.Println("Hello World!") // var arrayInt []int ...阅读全文

博客园 2015-08-17 14:01 jiangxuanyi

IntelliJ IDEA 14安装Golang插件go-lang-idea-plugin

1,下载IntelliJ IDEA旗舰版,我用的是14.1.3版本: http://www.jetbrains.com/idea/download/ 2. 下载golang官方SDK和go-lang-idea-plugin插件源码 http://golang.org/dl/ (要翻==墙) https://github.com/go-lang-plugin-org/go-lang-idea-plugin 3,将下载的go-lang-idea-plugin压缩包解压,IDEA点击File -> o...阅读全文

开源中国博客 2015-08-17 21:45 Cbping

Go语言简介

周末天气不好,只能宅在家里,于是就顺便看了一下Go语言,觉得比较有意思,所以写篇文章介绍一下。我想写一篇你可以在乘坐地铁或公交车上下班时就可以初步了解一门语言的文章。所以,下面的文章主要是以代码和注释为主。只需要你对C语言,Unix,Python有一点基础,我相信你会在30分钟左右读完并对Go语言有一些初步了解的。 Hello World 文件名 hello.go 1 2 3 4 5 6 7 package main //声明本文件的package名 import "fmt" //import语...阅读全文

CSDN博客 2015-07-14 09:34 yzhou86

初识Go语言

本章将简要介绍Go语言的发展历史和关键的语言特性,并引领读者对Go语言的主要特性进行一次快速全面的浏览,让读者对Go语言的总体情况有一个清晰的印象,并能够快速上手,用Go语言编写和运行自己的第一个小程序。1 语言简史 提起Go语言的出身,我们就必须将我们饱含敬意的眼光投向持续推出惊世骇俗成果的贝尔实验室。贝尔实验室已经走出了多位诺贝尔奖获得者,一些对于现在科技至关重要的研究成果,比如晶体管、通信技术、数码相机的感光元件CCD和光电池等都源自贝尔实验室。该实验室在科技界的地位可想而之,是一个毫无争...阅读全文

CSDN博客 2012-12-12 23:21 leotywy

Go语言的几个Web开发框架

对比下来,Revel的资料还是比较多,我个人推荐Revel。Revel Web开源框架是一个高效的Go语言Web开发框架, 其思路完全来自 Java 的 Play Framework。https://github.com/robfig/revel特点:热编译,简单可选,同步(每个请求都创建自己的goroutine来处理)。相关学习资料:一步一步学习Revel Web开源框架http://www.cnblogs.com/ztiandan/archive/2013/01/17/2864498.htm...阅读全文

开源中国博客 2015-08-17 19:35 柠檬酷