golang – fmt 格式化参数

原文 基本 %v the value in a default format when printing structs, the plus flag (%+v) adds field names %#v a Go-syntax representation of the value %T a Go-syntax representation of the type of the value %% a literal percent sign; consumes no value The def...阅读全文

开源中国博客 2017-04-30 20:00:24 中柠檬

Go 中的正则表达式

原文 kinds of single-character expressions examples any character, possibly including newline (s=true) . character class [xyz] negated character class [^xyz] Perl character class (link) \d negated Perl character class \D ASCII character class (link) [[...阅读全文

开源中国博客 2017-04-30 17:00:26 中柠檬

Go 语言的网络编程简介

本文通过 Go 语言写几个简单的通信示例,从 TCP 服务器过渡到 HTTP 开发,从而简单介绍 net 包的运用。 TCP 服务器 首先来看一个 TCP 服务器例子 package main import ( "fmt" "log" "net" ) func main() { // net 包提供方便的工具用于 network I/O 开发,包括TCP/IP, UDP 协议等。 // Listen 函数会监听来自 8080 端口的连接,返回一个 net.Listener 对象。 li, err...阅读全文

简书 2017.04.29 20:03 源小白

golang的gui库andlabs/ui的使用

本文主要讲述golang的gui库andlabs/ui使用。目前该库还不是很完善。 环境说明: 系统:Win10 64 Go:1.7.5 (ui库规定需要>=1.6) 注意: 不支持win Xp系统 mingw64版本要5.0以上 下载安装MSYS2 下载地址:github 或 官网我下载的是: http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20150916.exe 安装位置设为C:\msys64 运行mingw64_shell.bat更新本...阅读全文

简书 2017.04.27 14:36* 小墨马

golang中的adapter function type

由于刚刚接触golang,对语言和用法都不太熟,看到这种写法感觉很奇怪: type Handler interface { ServeHTTP(ResponseWriter, *Request) } type HandlerFunc func(ResponseWriter, *Request) func (f HandlerFunc) ServeHTTP(w ResponseWriter, r *Request) { f(w, r) } 我内心就觉得为啥要这么多此一举呢?把一个func定义为一个...阅读全文

简书 2017.04.27 13:55 Jale

golang基础 -- 引用外部函数

如下所示,main.go文件中函数如果要调用与main.go同级目录下的func文件夹中func1.go中的Test()函数的具体实现方法。test |--func |--func1.go |--func2.go |--main.go在main.go文件中需要写入的是package main import( "test/func" ) func main(){ func.Test() } 其中需要注意的是: 1、test项目要在golang的$GOPATH路径下。 例如$GOPATH=/home...阅读全文

简书 2017.04.26 16:43 TonnyAlmend

Golang 递归访问目录与函数修改数组的问题

我想写一个这样的函数:访问一个目录下的所有*.db文件。并放入filepath[]中。filepath是一个结构体: type filepath struct { fullpath string //文件路径名 filename string //文件名 } 写完了的程序是这个样子的,打印时: package main import ( "io/ioutil" "strings" "path" ) const rootpath string = "D://testfile/2345" type ...阅读全文

简书 2017.04.26 11:05 送你一碗大麦茶

如何设计并实现一个通用的应用运维管控平台

一、问题背景:大部分的应用运维工作随着服务器数量和产品数量的增长而增加,而运维人数的不足导致单个运维人员所承担的工作任务较为繁重,同时运维工作的不标准、无自动化使得应用运维任务十分复杂,耗费的大量的人员成本、时间成本和沟通成本。应用运维工作说白了大体可以分为两种情况:1. 在某个或某些服务器上执行某个脚本或命令;2.将某个或某些文件传输到某个或某些特定的服务器的特定位置上。在服务器数量较少的情况下,可以通过ssh或scp命令实现上面两个操作;服务器数量较多的情况下,我们可以通过包装ssh或者使用...阅读全文

简书 2017.04.26 10:55 UCloud云计算

基于Docker的Jenkins pipeline工作流.

1、传统我们的项目开发模式是产品调研提出需求,开发团队研究决定开发方案选型。然后开始一个周期的开发,模块开发完成之后开始模块间的联调。联调结束之后打包交付给测试团队。测试团队,系统测试或自动化测试,然后提交bug,开发团队修复bug,周而复始。2、传统的模式中,存在着较多的不确定因素。例如,开发环境、编译环境、测试环境、生产环境,等不确定因素。人为介入打包中的不确定因素,缺乏单元测试和自动化测试的整合。从而导致的结果是,开发-测试-修复的周期较长,而且很多小的问题完全可以由单元测试进行覆盖。持续...阅读全文

简书 2017.04.25 21:41* 张熙

golang项目fork的问题

问题 4月份换了一份工作,新工作是使用golang开发。当我在代码仓库中fork了一份代码准备在自己的repo中开发时,发现golang的fork的问题。 源repo:example.com/group/tool.gitfork后: example.com/my/tool.git 于是我使用 go get example.com/my/tool 来下载我的repo准备工作时发现,GOPATH下面依然有group/tool。原因当然是代码中import包的时候都是这么使用的: import "ex...阅读全文

简书 2017.04.25 20:01 Jale

zabbix上添加机房温度监控以及报警

配件及准备 树莓派(装好centos7系统和zabbix agent) 1 ds18b20 1 公司自建机房,然后空调故障,扣了我们背锅侠每人500块钱,表示很郁闷。够吃多少顿大排档了!!本背锅侠表示不服!由于正在做公司的ZABBIX监控,手上正好有块树莓派(本背锅侠自己的,已被公司征用),于是想着把温度整合到zabbix里面。从某宝买了一个DS18B20板子,已经焊好电阻等器件,如图: DS18B20 0x01 经过若干天的等待,某宝的DS18B20到了之后,接上树莓派,接线如下图所示: 接线...阅读全文

简书 2017.04.25 10:48 mkingiii

关于golang在树莓派下获取ip和mac地址

前言 最近工作需要,需求为获取树莓派以太网ip地址和mac地址,看了下golang的文档,发现net.InterfaceByName可以完成这个目标。 实现 //以太网网卡名称为eth0 inter, err := net.InterfaceByName("eth0") if err != nil { log.Fatalln(err) } //mac地址 fmt.Println(inter.HardwareAddr.String()) addrs, err := inter.Addrs() if...阅读全文

Segmentfault 2017-04-28 11:00:36 pinecone

golang使用Nsq

为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,消除单点故障等特性, 都可以很好的满足我的需求 下面上一张Nsq与其他mq的对比图,看上去的确强大。下面简单记录一下Nsq的使用方法图片来自golang2017开发者大会 Nsq服务端 Nsq服务端简介 在使用Nsq服务之前,还是有必要...阅读全文

Segmentfault 2017-04-25 23:00:25 花间隐虎

golang快速生成api

装好golang 装好git git config --global https.proxy 'socks5://127.0.0.1:1080' git config --global http.sslVerify false 删除 git config --global --unset http.proxy git config --global --unset https.proxy 然后 才能快速安装 go get github.com/astaxie/beego go get -u gi...阅读全文

开源中国博客 2017-04-25 21:00:29 超级大黑猫

Linux/Mac命令行中动态设置Golang的GOPATH工作路径

Gopher们经常会遇到在多个$GOPATH来回切换工作的场景,每次切换都有手动修改$GOPATH才能编译运行当前项目,很是不方便!!那么有没有自动修改$GOPATH的方法呢?答案当然是肯定的! 本人在 Linux/Mac的命令行通过配置 `~/.zshrc` 文件实现了在窗口启动及调用cd命令时自动重置$GOPATH的功能。 思路是: 首先判断当前目录是否在某个 `src` 目录下; 若在,则进一步判断当前路径对应的GOPATH是否已经设置到环境变量; 若没有设置,则自动修改$GOPATH到当...阅读全文

开源中国博客 2017-04-25 20:00:32 henrylee2cn

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 时...阅读全文

开源中国博客 2017-04-25 15:00:25 路人甲777

Golang发送邮件

package main import ( "bytes" "crypto/tls" "encoding/base64" "errors" "fmt" "io" "mime" "mime/multipart" "mime/quotedprintable" "net/smtp" "net/textproto" "os" "path/filepath" "strings" ) const MemMaxSize = (1 << 20) * 10 func SendMail(from, to, pw, ...阅读全文

开源中国博客 2017-04-25 15:00:24 路人甲777

Go程序到底需不需要docker?

我是Go的粉丝,而且我也对容器感兴趣。容器可以使得代码更容易部署也更容易扩展。 但并不是所有Go程序员都使用容器。 在本文中,我将探讨一些真正应该考虑使用Go和容器的原因 - 然后我们来看一些容器根本不会增加任何好处的情况。首先,我们要确保我们都在相同的起点上。什么是容器对于使用这些容器的人来说,可能有许多不同的定义。对于许多人来说,尽管容器比Docker开源项目或Docker公司要久远得多,“容器”一词与Docker是同义词。如果您是容器的新使用者,Docker可能是您的最佳起点,其提供对开发...阅读全文

微信公众平台 2017-04-24 方圆

golang crontab

注册任务到调度器里,当任务要执行的时候会使用goroutines调用,这样每个任务都不会发生阻塞。 Golang不仅仅是兼容了linux标准的crontab格式,而且扩展了秒。也就是说正常的crontab是 分 时 小时 月 星期,而robfig cron是 秒 分 时 日 月 星期。 c := cron.New() c.AddFunc("0 30 * * * *", func() { fmt.Println("Every hour on the half hour") }) c.AddFunc...阅读全文

开源中国博客 2017-04-24 21:00:30 zhangzhihai

golang使用Nsq

为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,消除单点故障等特性, 都可以很好的满足我的需求 下面上一张Nsq与其他mq的对比图,看上去的确强大。下面简单记录一下Nsq的使用方法 golang2017开发者大会 Nsq服务端 Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一...阅读全文

简书 2017.04.24 19:42* 喵喵小魔王