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

Go语言学习教程,基础-实战-面试视频学习资料

GOlang 4.0最新版本 由兄弟连欧阳桫老师全程录制 课件内容包括:视频课件 、课堂笔记、辅助文档、代码等。 欧阳桫老师的线下课要1万多,学生已经在排名前50的公链拿了3w+月薪。 跟着来没毛病,有需要我也可以发老师微信 获取方式:评论里留下邮箱或者微信,每天晚上我争取把视频发过去 还有兄弟连GO语言的教材4本书的电子版 1.面向未来超级账本 2.GO语言编程与实战 3.公链开发实战 4.以太坊智能合约与APP开...阅读全文

基于vim的golang开发环境配置

我用的操作系统为ubuntu14.04 用惯了命令行下裸的vim,有些厌倦,尝试着去emacs里打了个滚,各种快捷键让我觉得惨不忍睹。回到vim感觉像是回到了天堂,想想又不是只有emacs才有图形界面,虽然我已经弃用gvim很久,不代表它不存在。故而转投gvim的怀抱。 而最近正好开始学golang,尝试着写些小程序,却发现vim对golang的原生支持实在是糟糕,于是重新走上了配置vim的不归路…… 插件: pathogen 我使用pathogen来管理所有的插件,这是因为它比vundle简单……在vim当中安装东西的手感不如一句简单的git clone来的好。 安装: https://github.com/tpope/vim-pathogen,按照说明完成安装即可 它的用法很简单,便是把...阅读全文

博文 2014-10-04 19:26:05 winkar

LiteIDE设置

我在windows下使用LiteIDE写go程序 go安装在c:\go path里添加了c:\go\bin LiteIDE安装在e盘 gopath也设置正确 能编译运行 但我的go源文件都放在e盘的一个文件夹里 当这个文件夹只有一个源文件时,编译运行正常,生成的可执行文件名为当前文件夹名 当有多个源文件时,就无法编译运行了 这是什么原因,要怎么设置? ...阅读全文

golang开发windows界面

在 awesome-go 节点下有不少开发界面的库, 大部分是基于web, gtk, qt跨平台的, 也有基于sciter go绑定的go-sciter, 基于原生包装的跨平台的库ui, 只支持Windows桌面端的walk 个人倾向于后2个, 适合个人的技术栈, 试用了下ui这个库, demo比较 少就4个, 运行起来有点卡, 而且生成的可执行文件很大. 最重要的是不支持设置控件坐标(没找到), 而且开放的接口比较少. 下面对比下ui和walk代码, 就拿button控件来说. ui type Button struct { ControlBase b *C.uiButton onClicked func(*Button) } type ControlBase struct { iface...阅读全文

博文 2018-09-14 17:34:43 最近不在

windows配置goprotobuf插件,源码安装——Golang环境配置

本来应该在Linux下搭建golang开发环境,下载protobuf源码,便可在Linux下直接编译,不用像在windows下安装配置起来这么麻烦了。但由于电脑内存有4g,开一个虚拟机电脑卡得十分拖慢工作效率。就只想在windows中搭建好golang环境。折腾了一天多,终于把这个问题搞定了,最终提出了源码安装的方案。 一、下载安装Golang for windows 1.下载golang:http://golang.org/dl/ windows系统下下载所需版本的msi或zip文件。两者区别主要是:zip版本直接解压即可完成安装。msi的需要像正常windows安装程序一样进行安装,最后也会生成跟zip文件解压后一样的目录文件。 2.设置环境变量 $GOROOT 指向golang安装之后...阅读全文

博文 2014-10-04 19:26:04 u011490813

studygolang源码阅读小结(一)

最近待业在家,闲来无事。在博主大神@polaris的指点下,开始探索studygolang的源码。最初定的题目是studygolang源码剖析,想想不合适,牛皮吹的有点大了。还是叫源码阅读小结吧。写一些个人的浅薄理解与看法,可能会有错误,希望大伙儿指正。 ## 第一节 源码的获取与本地化运行 ## 本文的目的在于把源码本地运行起来 ###准备工作### 首先源码地址 https://github.com/studygolang,下载最新代码 在本地要编译并执行源码还需要安装下面3个package,使用go get工具 go get github.com/Go-SQL-Dr...阅读全文

我想做一个读取Excel的东西,在C#中可以通过com控件来实现 ,在golang应该通过什么方式来读写Excel,请赐教

我想做一个windows的应用,需要做一个GUI,直接下载了gform的一个包,直接解压到一个目录,然后添加了一个GOPATH,然后 直接运行一个demo,可是怎么也找不到那个包: cannot find package "github.com/AllenDang/gform" in any of: c:\go\src\pkg\github.com\AllenDang\gform (from $GOROOT) E:\liteide20.1\liteide\src\github.com\AllenDang\gform (from $GOPATH) E:\liteide20.1\gform-master\gform-master\src\github.com\AllenDan...阅读全文

GO语言开发的UI组件库govcl

由于现有第三方的Go UI库不是太大就是用的不习惯,或者组件太少。就萌生了自己写一个UI库的想法Delphi有些许多优秀的VCL组件,不拿来使用太可惜了。所以就索性做了一套。目前支持Win32跟Win64,只需要带上一个libvcl.dll即可。 所有的命名都几乎按Delphi中原有命名(除属性外,Read属性不带Get, Write属性带Set),熟悉Delphi的很快能上手。 项目现在支持VCL标准控件中的大部分,足以满足日常操作了,具体见"支持的组件列表"。 事件方面也支持部分,如下: 现支持组件和非组件类列表: TApplication TForm TButton TEdit TMainMenu TPopupMenu TMemo ...阅读全文

开源项目 2017-10-10 08:00:03 网友

go发送邮件

1.获取Go邮件库(自带发送不了) go get gopkg.in/gomail.v1 2.包含库 import ( "gopkg.in/gomail.v1" ) 3.例子 //info.From:发件地址或账号 //to: 收件地址 //body:邮件内容 //port:邮件服务器端口 //info.Host:邮件服务器地址 //info.Password:密码 func GoMail(to, body string) error { info, err := MailInfoGet() if err != nil { beego.Error("Get Mail Config Err:", err) return err } if info.Host == "" || info.Port ...阅读全文

博文 2016-09-19 14:00:01 idwtwt

autogo的使用

请问有人用过polaris大的autogo吗...按readme 说的一步步操作不成功啊...cmd上又显示不了提示(乱码) 我的目录结构是这样的. E:\work\jxc\src\test\test.go E:\work\autogo\ test.go就是github.com/polaris1119/autogo上readme 那的例子... 在文件头加了句package main 修改了E:\work\autogo\config\projects.json 内容为 [ { "name": "jxc", "root": "../jxc", "go_way": "inst...阅读全文

在Windows下为Go安装goprotobuf

步骤如下: 1. 安装Go for windows(测试版本v1.1.2),设置好GOPATH,GOROOT等环境变量 2. 安装protoc windows binary:直接下载protoc-2.5.0-win32.zip,解压protoc.exe到path所包含的目录即可 3. 拿到goprotobuf的source code: go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} 以上是官网做法,一般在windows下还需要先搞定hg等等工具 其实也可以直接从https://code.google.com/p/goprotobuf/source/browse/ 下载,点击"download zip"即可 下载之后,需要手工...阅读全文

博文 2014-10-04 19:26:02 yhcharles

golang--Redis最佳的Go语言驱动

Redis可以缓存数据,这使得操作数据可以达到一个较快的速度,在一些需要数据较快存储的场合,例如微博,redis发挥着不可替代的作用。在redis的官网,golang驱动有几个,忽然来了兴致,那个才是redis最佳的Go语言驱动? 这些驱动都处于开发的前期,还没有发行正式版,有些已经很久没更新了。从更新日期来看,Gary Burd的radigo和gosexy的redis最近有更新,而且从他们的README文件来看,他们对redis的支持还不错。很有可能,他们两者会有1个胜出。但到底谁才是最佳的,这个现在还是不能判断。在gosexy的redis源码库中的有个_benchmarks文件,里面就是一些对各个redis的Go驱动的一些简单的性能测试。简单看了一下,里面的代码就是调用他们各自包中的函数...阅读全文

博文 2014-10-04 19:26:04 getong

/src/pkg/math/abs.go源码阅读兼谈golang与汇编

开头的碎碎念: 对接微信公众平台的时候,开始有个字符串排序,我接触golang毕竟时间尚浅,很多东西都是能从网上找到就直接从网上找,结果就是找了好几个示例代码都不好用,好容易一个好用的,从头开始实现的,代码太多了。我就想,google应该把这些玩意都封装好了吧,不然一个新出的语言只有基础语法,没有强大的标准库,谁用这玩意啊。也就是那时候第一次接触src文件夹,后来发现pkg里的那些go文件是绝好的学习资料。 那么多文件、文件夹从哪开始看呢,我的原则,先找没有依赖性的,也就是没有import的,这么寻摸着就找到了math文件夹。笨方法,从a开始按顺序来呗,这不就碰到了abs.go 难以理解的第12行: // Copyright 2009 The Go Authors. All rights r...阅读全文

博文 2014-10-04 19:26:06 wlts

阅读go语言源代码1

前面大概说过bison与yacc的语法,那么其实go也是用bison来实现的,下面来说说怎么阅读go语言源代码。要看代码首先得找到代码的入口,怎么找呢?你可能首先想到grep main是的,一般来说这是一个没有争议的办法,但是对于go语言来说,这个办法对,也不对。怎么说呢?我们用gdb来进行debug就会看到所有的go语言程序的入口居然都在src/lib9/main.c里的main函数。 #include #define NOPLAN9DEFINES #include extern void p9main(int, char**); int main(int argc, char **argv) { p9main(argc, argv); exits("main...阅读全文

博文 2014-10-04 19:26:01 HopingWhite

Go语言Web框架Tango中的中间件应用级别

Tango在创建之初就支持了全局中间件的支持,经过最近的改进,同时支持了Group级别和Route级别的中间件。下面我们就一起来看下这三种级别的中间件: 比如我们自定义了一个新的中间件: ```Go func MyMiddleware() tango.HandlerFunc { return func(ctx *tango.Context) { ctx.Info("I'm a middleware") ctx.Next() } } ``` # 全局中间件 全局中间件在任何一个请求调用时均会进行调用。用法如下: ```Go t := tango.Classic() t.Use(MyMiddleware()) t.Get(...阅读全文

为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?

为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码? 之所以问这个问题是因为知乎上有问题“为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是强类型 + 静态?”,其中大多数答案都是在说动态语言存在的问题 那么按照这个逻辑,这三门语言都不是像JAVA、C#那样先编译成中间代码(JAVA字节码和CIL)、在运行时再JIT成机器码,那是不是说明中间码这种思路也有问题呢? 1 条评论 分享 按投票排序按时间排序 2 个回答 什么是答案总结? 答案总结 4赞同 反对,不会显示你的姓名 匿名用户 沈世军、Colliot、卿培 等人赞同 你忘记scala和clojure等jvm上的语言了。所以提问的前提就不对 你忘记sca...阅读全文

博文 2016-04-20 10:00:01 autumn20080101

Ego2014917002——GOlang的工程组织方法

文名称:如何创建、编译、打包go语言(golang)的源代码和工程 原文地址:http://outofmemory.cn/code-snippet/2073/how-create-compile-dabao-go-language-golang-source-code-gongcheng 步骤如下: 设置GOPATH,这个环境变量指向你的projectDir(工程目录),形如:GOPATH=/home/user/ext:/home/user/projectDir (可以设置多个工程目录,linux下用冒号分隔,windows下用分号分隔)创建工程文件夹projectDir在projectDir下创建src目录在src下创建区分包的文件夹myDir在myDir下创建包pkgDir在pkgDir...阅读全文

博文 2014-10-04 19:26:06 seek_0380

类似Delphi VCL的Windows控件的绑定实现GVCL

Windows的GUI界面Go语言封装,目标是实现一个类似Delphi VCL版本效果的界面库 目前整体组件框架已经具备雏形,要增加其他组件库按照扩展的Button和Edit以及Label增加则可,实现了托盘组件,弹出菜单组件,以及注册表操作库,使用方法基本上和Delphi一致,具体可以查看 GitHub https://github.com/suiyunonghen/GVC...阅读全文

scaffold: 根据数据表,一键生成管理平台(https://github.com/liujianping/scaffold)

scaffold === scaffold, generate revel project by database schema 脚手架工具, 通过定义数据表,一键生成Revel管理平台项目。 ### 特点 **通过数据表定义, 一键生成管理平台** **支持自定义控件模板** [索引页] ![home](http://7xjh31.com1.z0.glb.clouddn.com/home.png) [控件] ![list](http://7xjh31.com1.z0.glb.clouddn.com/widget.png) [查询控件] ![add](http://7xjh31.com1.z0.glb.clouddn.co...阅读全文

[云沃客] 项目推荐,海量项目寻开发

**云沃客 Clouderwork.com 云工作 自由 简单 快去注册【[云沃客][1]】网站或下载APP,海量开发项目等着你。** --- ![image_1am07rd911osmfs412mnp55419.png-81.4kB][2] --- 【本周推荐项目1】 **[网上阅卷系统项目][3]** 【预算价格】¥10000 【期望交付时间】2016-06-30   【项目类型】Web应用开发       【技能要求】Java、MySQL 【要求】 1、扫描识别:要求支持佳能DR-1100类设备扫描识别答题卡,根据答题卡模板扫描识别学生的答题,将可识别部分转换为答题结果输出,不能识别部分切图提供给老师改卷。 2...阅读全文

go语言总结

1.项目需要,学习GO 2.GO是谷歌出品,很多牛B很多吹捧,所以得学 3.从搭建环境开始: 因为习惯了win7+eclipse的开发方式,所以go的开发环境也用这样的组合 具体 http://blog.csdn.net/hengyunabc/article/details/7371446 里面说的很明白。 (http://bigasp.com/archives/594、http://rongmayisheng.com/post/windows下用eclipsegoclipse插件gdb搭建go语言开发调试环境)这三篇写的都不错,都参照了一些,有些细节真的还得注意,否则有问题不好查。 4. package util //此处util要尽量和真实文件夹一样 import ( //命令行下先 >...阅读全文

博文 2014-10-04 19:26:03 sugongp

产品设计中如何分解功能点

分解功能点是产品经理最重要的日常工作之一,对于如何清楚表述这些功能点,每个产品经理都有自己特有的思维方式。今天和大家分享下,小编在网上看到的一个做的优秀产品经理功能点分解步骤及详细做法,希望对新手产品经理有所帮助。 在功能点确定好以后,首先需要的就是从最顶层的界面层出发, 然后是用户操作层,接着是数据层,这样由浅到深的去将一个功能点逐步的拆解。在撰写功能点的时候,对功能点的说明进行遍历可按照下面的方式进行: 界面层 说到界面层,最基本的就是控件类型,在决定使用的控件类型后,界面还会涉及到的就是控件尺寸、形状、字体大小、颜色、文案(视乎控件类型有所不同)、响应动画、位置(功能点处于产品的什么模块、什么位置)、引导文案(即引导用户更好的完成操作的,包括...阅读全文

隐私优先的 DNS 解决方案Tenta DNS

Tenta DNS 是一个隐私优先的 DNS 解决方案,它提供一个 DNS 服务器套件,其中包含权威 DNS 服务器,递归 DNS 服务器,以及 NSnitch,实现更安全,更可靠的上网体验。NSnitch 提供的是一个能够记录针对它的请求的 IP 地址,然后通过 JSON API 使该 IP 可用的 DNS 服务器。 Tenta DNS 还提供对 Tor Node membership、DNS 黑名单状态和地理数据的查询。 此外,Tenta DNS 内置 BGP 集成,为 DNS 任播提供单引擎便利。  通过切换到 Tenta DNS,你可以: **阻止 ISP 监视浏览器历史记录。**DNS-over-TLS 在你的 DNS 请求上添加了一层加密,让你的 ISP 无法查看...阅读全文

Golang语法探索-声明结构体

1 匿名声明。 tests := []struct { key, val string ok bool }{ {"имя", "v", false}, // key must be ascii {"name", "валю", true}, // value may be non-ascii {"", "v", false}, // key must be non-empty {"k", "", true}, // value may be empty } 这种模式常用。定义一张常量表,表的格式就这个地方用一下就可以。 2 集体声明: type ( // Echo is the top-level framework instance. Echo struct { server engine...阅读全文

博文 2017-01-08 06:00:13 shengjuntu

golang初探之安装与代码组织

自从第一次在图灵社区看到许式伟的《Go语言编程》知道还有golang这门编程语言已经将近有一年的时间了,自从那之后开始学习golang,golang的社区很活跃,我觉得golang是未来的趋势。 好了,今天这里就简单的介绍一下golang的安装。 一、去https://code.google.com/p/go/downloads/list下载最新的go tools 二、下载完最新的压缩包解压到你的golang目录,然后在设置环境变量: 1)GOROOT: 设置你的GOROOT,GOROOT是你go tree的根目录,这个是可选的,当你想在多个本地仓库副本中切换是可以设置这个变量 GOROOT=../../go 2)在PATH变量中将%GOROOT%/bin添加进去,这样就可以在命令行中使用g...阅读全文

博文 2014-10-04 19:26:08 wowzai

消息服务中间件WQS

WQS 是微博开源的消息服务中间件。 多租户支持; 多 IDC 支持; 多协议支持 memcached、http 1/2、motan 轻客户端。(去 zk 依赖、无 partition 感知) 支持 pub/sub、long polling、pipeline; 支持 TTL; 支持 filter。 WQS 目前支持多 IDC 部署,创建队列时选取响应的配置表明该队列是否需要多 IDC 功能支持,当 WQS 集群跨 IDC 部署时: Producer 通过 WQS 实例写消息会时写到与自身实例部署在同一 IDC 内的 Kafka 集群上。 Consumer 通过 WQS 实例读消息时,该实例会根据 Queue 的配置来执行响应的行为。 当 Queue 未配置多 IDC 同...阅读全文

开源项目 2017-12-05 07:00:03 网友

蚂蚁金服中间件团队校招 — Java 研发工程师/Golang 研发工程师

蚂蚁金服中间件 2019 年的校招已经开始了,2019 年毕业的同学可以看过来了。 团队介绍 我们来自于蚂蚁金服的中间件团队,是蚂蚁金服最为核心的基础部门之一,开源蚂蚁金服的金融级分布式中间件 SOFA 为蚂蚁金服所有的应用研发以及生态伙伴提供服务。支持每年双十一、双十二、新春红包等促销活动。 招聘岗位 Java 研发工程师 Golang 研发工程师 Base 地 杭州,北京 岗位描述 加入我们,你将参与 SOFA 开源的研发,打造金融级分布式架构的体系。 加入我们,你将接受到每年双十一,双十二带来的高并发的,高性能的极致性能挑战。 加入我们,你将在实际生产环境中应用世界前面的技术方向,引领未来。 岗位要求 酷爱着计算机以及互联网技术,热衷于解决挑战性的问题,追求极致的用户体验; 痴迷于数据...阅读全文

博文 2018-07-03 12:34:40 khotyn

轻量级 Golang 中间件 Juliet

Juliet 是一款轻量级的 Golang 中间件链接助手,将 Context(地图)对象从中间件传递到下一个。 示例:

package main

import (
    "net/http"
    "log"
    "net"
    "fmt"

    "github.com/root-gg/juliet"
)

// Juliet is a lightweight middleware chaining helper that pass a Context (map) object
// from a middleware to the next one.
//
// Mid...阅读全文

如何用QuickBI制作图表联动的销售报表

摘要: 在仪表板的制作实践中,大家经常有这样的需求:点击仪表板中某个图表控件中的某个区域,仪表板中和这个图表控件相关的其他图表控件的内容就根据当前被选择区域对应的维度的维度成员的内容发生联动。本文以阿里云数加QuickBI的数据建模中提供的样例数据集为例,如何制作一张图表联动的仪表板。在仪表板的制作实践中,用户经常有这样的需求:点击仪表板中某个图表控件中的某个区域,仪表板中和这个图表控件相关的其他图表控件的内容就根据当前被选择区域对应的维度的维度成员的内容发生联动。以阿里云数加QuickBI的数据建模中提供的样例数据集为例,我们在下面描述如何制作一张多图关联的仪表板。该仪表板由两个图表控件组成,分上下两部分,上面为一个饼图,内容为区域利润数据。下面为一个交叉表,内容为区域内的城市的销售和利润...阅读全文

博文 2017-07-19 09:15:10 yuun

创建和使用 HTTP 中间层(Making and Using HTTP Middleware)

在构建 Web 应用时,可能需要为许多(甚至全部)HTTP 请求运行一些公共的函数。你可能需要对每个请求进行记录,对每个响应进行压缩,或者在执行一些重要的处理之前检查一下缓存。 组织这种公共函数的一种方法是将其设置为中间层 - 自包含代码,它们在正常应用处理程序之前或之后,独立地处理请求。在 Go 中,使用中间层的常见位置在 ServeMux 和应用程序处理之间,因此通常对 HTTP 请求的控制流程如下所示: `ServeMux => Middleware Handler => Application Handler` 在这篇文章中,我将解释如何使自定义中间层在这种模式下工作,以及如何使用第三方中间层包的一些具体的示例。 ## 基本原则(The Basic Principles) 在 Go ...阅读全文

博文 2018-05-05 18:07:35 gogeof

gomobile集成jar ubuntu系統

GoMobile配置自己探索步驟如下......转发請表明來處 Author: Dende安装gomobile$ go get -u -v golang.org/x/mobile/cmd/gomobilegomobile 初始化初始化环境,自动下载安装依赖,需要翻墙,可能会提示权限被拒,添加对应文件权限。$ gomobile init下載NDKhttps://developer.android.google.cn/ndk/downloads解壓文件修改解壓文件名爲ndk-bundle如:解壓後 android-ndk-r19c改爲ndk-bundle新建sdk存放目錄如:/home/dende/android 新建sdk文件夾,把ndk-bundle放入sdk目錄下安裝sdk建議使用andr...阅读全文

博文 2019-04-12 11:04:08 Dende

论egret的坑

1. Tween坑 功能:实现点击播放动画,播放动画后跳转到新标签页面 this.addEventListener(egret.TouchEvent.TOUCH,()=>{ var tw = egret.Tween.get(... tw.to({...},150) .call(()=>{ window.open("http://www.xx/xxx.html", '_blank'); }); } , this); 这样是会被认为不是用户手动触发的,是会被浏览器默认拦截的,不要写在call里边,但是可以写在settimeout里边 setTimeout(function () { window.open("http://www.xx/xxx.html", '_blank'); }) 扩展,像这...阅读全文

博文 2018-09-28 15:34:43 陨石坠灭

golang发送邮件以及附件

最近工作上有个需要发送邮件的需求,所以研究了下golang怎么发送邮件,这里记录下。 这里推荐一个第三方库 go get -v github.com/jordan-wright/email 之前也研究了官方库net/smtp,以及其他第三方库如gomail但是都不符合我的开发需求,使用的这个第三方库完美的解决了需求。 下面写个例子,演示一下 email 第三方库的使用,以及使用自定义模板发送邮件 首先在同级目录创建email-template.html,main.go两个文件。 // email-template.html

亲爱的{{.ToUserN...阅读全文

博文 2018-12-28 19:34:44 Sixah

Go 标准库 http.FileServer 实现静态文件服务

http.FileServer 方法属于标准库 net/http,返回一个使用 FileSystem 接口 root 提供文件访问服务的 HTTP 处理器。可以方便的实现静态文件服务器。 http.ListenAndServe(":8080", http.FileServer(http.Dir("/files/path"))) 访问 http://127.0.0.1:8080,即可看到类似 Nginx 中 autoindex 目录浏览功能。 源码解析 我们现在开始将上述的那仅有的一行代码进行剖析,看看到底是如何实现的。源码中英文注释也比较详细,可以参考。 我们先看 http.Dir(),再看 http.FileServer(),而 http.ListenAndServe() 监听 TCP 端...阅读全文

博文 2018-08-21 10:35:12 舆图易稿

Go语言经典库使用分析(六)| Negroni 中间件(二)

Go语言经典库使用分析,未完待续,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续系列。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 上一篇 Go语言经典库使用分析(五)| Negroni 中间件(一) 中介绍了Negroni中间的入门使用和一些介绍,比如如何添加中间等,中间件的路由等。这一篇主要讲原理,比如如何构建的中间处理链,如何编写自己的中间件等。 Negroni Handler处理器本质上来说Negroni是一个HTTP Handler,因为他实现了HTTP Handler接口,所以他可以被http.ListenAndServe使用,其次Negroni本身内部又有一套自己的Handler处理链,通过他们可以达到处理htt...阅读全文

博文 2017-09-16 03:32:13 飞雪无情

go的net/http包使用

网上资料有点杂,有的还掺杂中间件进去,导致使用有障碍,所以,直接上官方文档: 1,首先搞清[]byte string的相互转换,最简单的方式就是 string转[]byte:[]byte(para string) []byte转string:string([]byte) 然后还有就是io包的一些实现方式,比如: bytes.NewBuffer(para []byte).String() 2,如何从request中获取form,body,head,下面是官方的api: type Request func NewRequest(method, urlStr string, body io.Reader) (*Request, error) func ReadRequest(b *bufio.Re...阅读全文

博文 2017-07-11 11:03:27 dmwan

golang:send mail using smtp package

go语言发送邮件,可以使用smtp包,两个关键函数: func PlainAuth(identity, username, password, host string) Authfunc SendMail(addr string, a Auth, from string, to []string, msg []byte) error 刚开始玩的时候,很好奇邮件的title是怎么设置进去的,毕竟从代码没看见有setTitle。后来发现是解析msg获取标题、发件人、收件人、邮件格式、邮件内容等;因此msg需要按一定格式写:To: xxx\r\nFrom:xxxx\r\nSubject: xxxx\r\nContent-Type:text/html; charset=UTF-8\r\n\r\n[邮...阅读全文

博文 2017-12-14 07:00:01 dannyyao

谈谈中间件开发

前言 本文主要是写给那些想从事中间件开发的同学看的 :) 如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :) 什么是中间件开发? 随着国内软件行业的发展,国内互联网公司规模越来越大,业务越来越复杂,随之使用大量的中间件来提高后台服务性能。由此产生了中间件开发和维护人员。 诚然,在小公司,中间件,例如缓存,MQ,RPC 等服务,极大可能是由业务开发人员自己维护,或者委托第三方云平台运维(支付一些费用)。但,如果后台开发超过 200 人,基本就会组建自己的中间件或者基础架构团队,用于维护后台服务器基础架构和中间件。 更大规模的公司,则由于各种各样的原因(性能,KPI),会自己开发中间件,简称自研。这要求中间件团队需要更多的人员。 中间件开发人员需要哪些素质? 既然需...阅读全文

博文 2018-10-20 17:34:38 莫那一鲁道

Firebase-FCM服务端开发

FCM 云消息传递(Firebase Cloud Messaging)是一种免费的跨平台消息传递解决方案,可让您向客户端应用程序发送推送消息。使用FCM,您可以将推送通知发送到单个设备,设备组或订阅特定“主题”的设备。 FCM特征 消息类型 使用 FCM,您可以向客户端发送两种类型的消息: 通知消息,有时被视为“显示消息”。此类消息由 FCM SDK 自动处理。 数据消息,由客户端应用处理。 应用在后台运行时,通知消息将被传递至通知面板。应用在前台运行时,消息由回调函数处理。 接收同时包含通知和数据有效负载的消息时的应用行为取决于应用是在后台还是前台运行 - 特别是在接收时应用是否处于活动状态。 在后台运行时,应用会在通知面板中接收通知有效负载,且仅在用户点按通知时处理数据有效负载。 在前台...阅读全文

博文 2019-04-25 11:34:40 维子

兄弟连区块链培训教程图形用户界面1:初识Walk

很多人喜欢Go语言,其实是因为Go语言有其独特的语言属性在支撑着其在编程语言界的发展,今天兄弟连Go语言+区块链培训老师给大家介绍一下关于Go语言图形用户界面1:初识Walk,下面我们一起来看一下吧。( http://bt.itxdl.cn/ ) Go与GUI——GO语言的图形界面Walk GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。 关于Walk界面库(官方介绍):Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。 安装Walk 在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网...阅读全文

博文 2018-09-21 16:34:46 兄弟连区块链培训

详解 Golang 中间代码生成

Home Menu 详解 Golang 中间代码生成 04 Feb 2019 Golang Go实现原理 SSA 编译原理 中间代码 中间代码生成 配置初始化 遍历和替换 Channel 编译 AST 到 SSA 多轮转换 总结 相关文章 Reference 前两节介绍的 词法与语法分析 以及 类型检查 两个部分都属于编译器前端,它们负责对源代码进行分析并检查其中存在的词法和语法错误,经过这两个阶段生成的抽象语法树已经不存在任何的结构上的错误了,从这一节开始就进入了编译器后端的工作 — 中间代码生成 和 机器码生成 了,这里会介绍 Go 语言编译的中间代码生成阶段。 中间代码 是一种应用于抽象机器的编程语言,它设计的目的主要是帮助我们分析计算机程序,在编译的过程中,编译器会在将语言的源代码转...阅读全文

博文 2019-03-19 12:20:16 draveness.me

兄弟连区块链入门教程以太坊源码分析p2p-dial.go源码分析

dial.go在p2p里面主要负责建立链接的部分工作。 比如发现建立链接的节点。 与节点建立链接。 通过discover来查找指定节点的地址。等功能。dial.go里面利用一个dailstate的数据结构来存储中间状态,是dial功能里面的核心数据结构。 // dialstate schedules dials and discovery lookups. // it get's a chance to compute new tasks on every iteration // of the main loop in Server.run. type dialstate struct { maxDynDials int //最大的动态节点链接数量 ntab discoverTable /...阅读全文

博文 2018-10-25 16:34:43 兄弟连区块链培训

Go语言经典库使用分析(五)| Negroni 中间件(一)

Go语言经典库使用分析,未完待续,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续系列。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 上一篇介绍的Gorilla Handlers中间件,严格来说不能称之为一个库或者框架,他只是一系列包装http.Handler的中间件函数,并且他们之间没有任何关系,也没有定义一种规则如何让我们基于它来开发我们自己的中间件,总之它是孤立的,中间件之间没有关系的。 我们这篇文章介绍的Negroni中间件库,是一个非常经典的库,非常小,但是功能强大,因为他定义了中间件的框架和风格,让我们可以基于它开发出我们自己的中间件,并且可以集成到Negroni中。 Negroni还兼容原生的http.Handle...阅读全文

博文 2017-09-02 01:38:37 飞雪无情

高性能消息中间件——NATS

前 言这段时间我的主要工作内容是将公司系统中使用的RabbitMQ替换成NATS,而此之前我对Nats一无所知。经过一段时间紧张的学习和开发之后我顺利的完成了任务,并对消息中间件有了更深的了解。在此感谢同事钟亮在此过程中对我的帮助。NATS属于比较小众的一款中间件产品,中文资料基本上是没有的,故写以记之,为想学习Nats的同学提供一点帮助。 在介绍NATS之前先了解下什么是分布式系统和消息中间件对于分布式系统的定义,一直以来我都没有找到或者想到特别简练而又合适的定义,这里引用一下Distributed System Concepts and Design (Thrid Edition)中的一句话A distributed system is one in which components l...阅读全文

博文 2019-01-16 20:34:42 中间件