打包前端WebSite到Go程序

Coolpy5发布在即,新版本要求服务端程序只是一个运行文件,经历了go的template无数坑后,最后还是放弃了,所以还是要把前端独立开发一个纯前端程序,但是go程序直接build的话并不支持把前端程序编译到最终生成的文件中,所以须要一种方法把前端程序打包进最终生成的运行文件中。 所用到的包 github.com/GeertJohan/go.rice 下载或编译后会得到一个rice.exe(window平台),linux平台请自行下载包并编译。 配置go env 把go 环境变量都配置好,本例...阅读全文

2016-07-26 21:03 jacle169
阅读:5153 评论:3

Go如何输出ANSI 颜色代码

这连天bee升级到了1.5版本,在执行bee version的时候会输出一个有颜色的BEE的logo,很多人觉着很神奇,其实这个就是ANSI颜色代码。 其实在Linux,我们编写C语言轻易可以实现这个效果。 具体的书写格式如下: 格式:\033[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色 --------------------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 紫红色 36 ...阅读全文

阅读:5302 评论:0

原 使用Go语言编写Web程序(二)

上一节我们使用Go语言写了一个进行web服务端口侦听和简单的URL请求输出,但并没有实现我们上网浏览网页时所看到的丰富多彩的html页面,当我们需要把分离出来的html页面加入到Go语言编写的服务时,我们需要在服务程序中导入html/template。 import( "fmt" "log" "net/http" "html/template" ) 然后我们创建一个template文件,命名为index.html放在main.go相同文件夹下,文件中填写如下代码: <h1>欢迎使用html文件<...阅读全文

2016/08/21 00:41 知止software
阅读:985 评论:0

原 Go语言生成二维码

生成二维码我们需要使用到github的一个库,我们设置好GOPATH环境变量后,使用 go get github.com/boombuler/barcode 命令下载该库,在main.go中填写如下代码: package main import ( "github.com/boombuler/barcode" "github.com/boombuler/barcode/qr" "image" "image/png" "log" "os" ) func writePng(filename stri...阅读全文

2016/08/21 11:33 知止software
阅读:5550 评论:2

golang access oracle

1. linux下先装好 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html rpm -ivh oracle-instantclient11.2-basic-12.1.0.2.0.x86_64.rpmrpm -ivh oracle-instantclient11.2-sqlplus-12.1.0.2.0.x86_64.rpm export ORACLE_HOME=/usr/lib/oracle/12.1/cli...阅读全文

2016-08-22 23:37 anjuncc
阅读:1735 评论:0

原 [Go小技巧] 教你如何将前端文件打包进Go程序,Cool!

在Golang的开发中,我们有时会想要将一些外部依赖文件打包进二进制程序。比如本人在开发lessgo web框架时,希望将扩展包swagger(一个自动API文档的前端)打包进项目文件中,从而减少依赖,并能提高代码稳定性。实现步骤如下: 下载两个Golang的第三方包 go get github.com/jteeuwen/go-bindata/... go get github.com/elazarl/go-bindata-assetfs/... 使用 “go install” 命令编译获得 g...阅读全文

2016/09/02 10:14 henrylee2cn
阅读:7174 评论:0

Go-Channel

问题 在前面讲goroutine的时候,自然会想到goroutine之间的同步问题。如果没有同步通信机制,那么goroutine的作用就非常有限了。 其他编程语言 Java的线程同步几乎没用过,这里不谈。 Go的同步机制,即本文将要描述的channel,和Python的pipe和类似;自然也和Linux C的piple一样,见Advanced Linux Programming P110 5.4 Pipe。——在Linux C中,和Introducing Go类似的入门级书籍,自然首推Advan...阅读全文

2016-09-02 10:31 u013344915
阅读:1277 评论:0

golang 并发设计模式(二)--管道模式管道和显式取消

摘自点击打开链接 Go Concurrency Patterns: Pipelines and cancellation 一、 引言 Go并发原语使得构建流式数据管道,高效利用I/O和多核变得简单。这篇文章介绍了几个管道例子,重点指出在操作失败时的细微差别,并介绍了优雅处理失败的技术。 二、 什么是管道? Go没有正式的管道定义。管道只是众多并发程序的一类。一般的,一个管道就是一些列的由channel连接起来的阶段。每个阶段都有执行相同逻辑的goroutine。在每个阶段中,goroutine ...阅读全文

阅读:1874 评论:0

一个golang推送服务器集群:gopush-cluster

Terry-Mao/gopush-cluster 是一个支持集群的comet服务(支持websocket,和tcp协议)。 特性 轻量级高性能纯Golang实现支持消息过期支持离线消息存储支持单个以及多个私信推送支持单个Key多个订阅者(可限制订阅者最大人数)心跳支持(应用心跳和tcp keepalive)支持安全验证(未授权用户不能订阅)多协议支持(websocket,tcp)详细的统计信息可拓扑的架构(支持增加和删除comet节点,web节点,message节点)利用Zookeeper支持故...阅读全文

2016-06-20 20:38 txj236
阅读:781 评论:0

Go语言基础:Interface

转:http://xhrwang.me/2014/12/29/golang-fundamentals-8-interface.html 我们知道 Golang 中没有 class 的概念,而是通过 interface 类型转换支持在动态类型语言中常见的 鸭子类型 达到运行时多态的效果。 官方文档 中对 Interface 是这样定义的: An interface type specifies a method set called its interface. A variable of int...阅读全文

阅读:909 评论:0

GO-log日志封装

Go封装日志: 支持归档输出,一个小时压缩归档一份 最多保留三天的日志 支持日志级别自定义 如果没有指定输出文件默认输出到控制台。 支持输出文件名行号,以及时间、日志界别 如: info 10:08:40.826836 handler.go:81 package logger import ( "fmt" "log" "os" "os/exec" "strings" "time" ) const ( PanicLevel int = iota FatalLevel ErrorLevel Warn...阅读全文

2016-08-12 15:23 gdutliuyun827
阅读:6640 评论:0

go 使用protobuffer proto3

1、获取 Protobuf 编译器 protoc,跟C++通用的;可以在git下载到二进制文件 2、获取 goprotobuf 提供的 Protobuf 编译器插件 protoc-gen-go go get github.com/golang/protobuf/protoc-gen-go 将protoc-gen-go二进制执行程序所在的目录加入到环境变量,或者直接将二进制文件拷贝到 protoc 所在的目录 3.获取 goprotobuf 提供的支持库,包含诸如编码(marshaling)、解码...阅读全文

阅读:7255 评论:0

《一个 Go 程序系统线程暴涨的问题》结论

原文地址:https://zhuanlan.zhihu.com/p/22474724 作者的结论没写好,我来说两句。。 结论: Docker swarm自己有个函数,叫setTcpUserTimeout,这个函数调用了conn.File()方法,将tcp的fd变成了blocking,而且没有关闭对应的fd。相当于每次设定tcpUserTimeout参数,再去read一下fd,都会产生一个新的线程。因为老的线程在读fd,而fd被设置成blocking了,于是golang的运行时只好再开一个新的。 ...阅读全文

2016-09-18 20:39 Lifehacker
阅读:1197 评论:0

【Go语言】基本类型排序和 slice 排序

Go 是通过 sort 包提供排序和搜索,因为 Go 暂时不支持泛型(将来也不好说支不支持),所以,Go 的 sort 和 search 使用起来跟类型是有关的,或是需要像 c 一样写比较函数等,稍微显得也不是很方便。 引言 Go 的排序思路和 C 和 C++ 有些差别。 C 默认是对数组进行排序, C++ 是对一个序列进行排序, Go 则更宽泛一些,待排序的可以是任何对象, 虽然很多情况下是一个 slice (分片, 类似于数组),或是包含 slice 的一个对象。 排序(接口)的三个要素: ...阅读全文

2016-09-07 16:43 u010983881
阅读:2165 评论:0

go Hijack

golang(GO语言)http详解简单基础(1) 因为好像长时间的写PHP可能大家感觉烦躁了,所以写一点golang的东西大家可以拿去玩玩,golang在web开发中让你得心应手,其实也是很好的东西,只要你玩进去之后感觉好爽,感觉比PHP的好处就是没有那么多的“限制”,基础部分大家可以看下简单的我再前边更新了一点点后边会继续给大家补上的,以后就是PHP+golang也可能会写一些object-c的,废话不多说开始写了,所有的代码我放在BUYVM上搭建的GOweb 大家可以去http://www...阅读全文

2016-09-22 15:29 linuxheik
阅读:1923 评论:1

golang的参数验证

golang_validator 可以自由定制的golang参数验证器 关于该组件: 本组件是可高度定制的验证,例子如下: type testValidator struct { ItemNum int `valid:"PosNO" name:"items" ` // 验证是否是正数 IsCount int `valid:"PosNO"` } valid表示要进行验证,后面跟要进行验证的函数名:如要进行是否为整数和字符串的验证则可以这样写: `valid:"PosNO,Str" name则表示当...阅读全文

2016-07-24 15:29 x87648510
阅读:5361 评论:0

Docker和Go的安装和使用

感觉现在的Docker就像2013年的Spark一样,势不可挡,因此很有必要对Docker进行深度学习。我们使用的操作系统为CentOS Linux release 7.2.1511 (Core)(64位)。主要介绍Docker的安装和使用,Go的安装和使用。 一. Docker的安装和使用 1. Docker的安装 yum -y install docker说明:Docker软件包已经包括在默认的CentOS-Extras软件源里。 2. 启动Docker服务 systemctl start ...阅读全文

2016-08-16 14:18 shengshengwang
阅读:3953 评论:0

[ECUG专题回顾]《BEEGO设计理念与API开发》-谢孟军 (BEEGO作者、GO WEB编程作者)

原文:http://blog.qiniu.com/archives/1048 谢孟军:大家好,我是谢孟军,我是beego作者。今天我来讲一下beego的设计理念和API开发,大家有听过beego的吗?有用beego在自己项目里面做吗?OK,今天的大纲就大概讲一下是这样,首先我要讲一下什么是beego,然后讲一下beego的设计理念,里面有很多的模块,每一个模块怎么样设计的,可能会牵涉到一些GO设计的东西,然后讲一下插件化的东西,最后讲一下API的开发。我个人比较看好Go在API方面应用的开发,当...阅读全文

2016-10-21 14:53 wk890718
阅读:1994 评论:0