
Go语言编程
文章平均质量分 69
UsherYue
进入研发行业10年,曾任职与多家创业公司,负责核心研发工作,团队建设管理工作。
展开
-
Docker快速搭建Node.js Express运行环境
docker中包含三个概念 容器(Container)、镜像(Image)、仓库(Repository) ,我们可以在一台宿主机上创建 无数个容器用于运行 PHP、Node.js 等等服务, 这些容器都是以 镜像(Image) 为模板来创建的, 这些镜像统统存储与 仓库(Repository) 中。原创 2022-01-12 17:12:08 · 2072 阅读 · 0 评论 -
Strings, bytes, runes and characters in Go
本文翻译自golang官方 ,英文文章原地址 https://blog.golang.org/strings ,主要介绍了 go中的 strings 、bytes、 runes 、characters。介绍之前的文章介绍了go中的切片是如何工作的,我们使用了大量的例子来解释其背后实现的原理和机制. 在这个背景下, 我们在这篇文章讨论go中的字符串.首先 ,字符串对于一个博客文章的主题来说似乎翻译 2017-06-04 10:36:42 · 2404 阅读 · 0 评论 -
golang简单实现一个基于TLS/SSL的 TCP服务器和客户端
简单实现一个基于TLS/SSL的 TCP服务器和客户端本篇文章介绍一下使用TLS/SSL创建安全的TCP通信,首先我们要准备一个数字证书和一个密钥关于如何产生密钥,请看下面文章: 简单实现一个基于TLSSSL的 TCP服务器和客户端通过Openssl创建数字证书和密钥TLS服务器端代码TLS客户端代码通过Openssl创建数字证书和密钥关于如何通过Openssl创建证书和私钥 TLS服务原创 2017-06-21 09:27:09 · 20437 阅读 · 2 评论 -
golang中解决tcp传输中的粘包问题
golang中解决tcp传输中的粘包问题什么是粘包?最近在写https://github.com/UsherYue/ActivedRouter (一个http/https反向代理服务)的时候遇到了粘包问题, 如果有做过网络编程的小伙伴应该都知道粘包问题,举个例子: 比如客户端在和服 务器进行通信采用的是json格式的数据包。那么此时Client和Server的数据交互流程应该如下:原创 2017-05-18 22:57:31 · 20334 阅读 · 2 评论 -
golang 中的md5 、hmac、sha1算法的简单实现
package mainimport ( "crypto/hmac" "crypto/md5" "crypto/sha1" "encoding/hex" "fmt")func Md5(data string) string { md5 := md5.New() md5.Write([]byte(data)) md5Data := md5.Sum([]byte(""))原创 2017-06-20 13:31:07 · 9143 阅读 · 0 评论 -
golang中实现RSA(PKCS#1)加密解密
RSA非对称加密算法,基于PKCS#1规范, 我们在使用RSA的时候需要提供 公钥和私钥 , 我们可以通过openss来为我们生成对应的pem格式的公钥和私钥匙。关于pkcs相关标准如下,摘自百度:PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封[22]。PKCS#3:定义Diffie-Hellman密钥交换协议[23]。PKCS#5:描述一原创 2017-06-18 16:29:28 · 10215 阅读 · 3 评论 -
golang实现AES ECB模式的加密和解密
golang实现AES ECB模式的加密和解密原创 2017-06-17 23:29:40 · 15568 阅读 · 3 评论 -
golang解析数字证书
golang解析数字证书基础知识 在解析数字证书之前我们要学习一下数字证书的知识,明白一下数字证书中的一些概念。 下面这些知识是你所要了解的,PKCS#8、 PKCS#1、Certificate Chan、Openssl 将PKCS#1和PKCS#8进行转换 等等,基础我就不多聊了下面给几篇文章用于快速扫盲: pkcs1与pkcs8格式RSA私钥互相转换 证书链-D原创 2017-05-20 16:48:37 · 12716 阅读 · 1 评论 -
golang实现通过索引删除任意类型的slice元素
最近在写练手项目的时候,需求一个功能: 实现通过数组或者切片的索引删除 任意类型数组或者切片的内容,并且返回删除后的结果集,找了半天发现 官方package中没有Java.util.Arrays 这样的工具类的实现,只好自己写一个 ,由于golang中没有c++ 、java中泛型的概念,所以只能将工具方法通过 反射类实现一下,具体代码如下:package toolsimport ( "er原创 2017-05-05 14:19:07 · 7689 阅读 · 2 评论 -
golang实现md5、RSA、base64 加密解密
package toolsimport ( "crypto/md5" "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/base64" "encoding/hex" "encoding/pem" "errors")const ( base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcd原创 2017-05-08 09:16:00 · 7606 阅读 · 1 评论 -
golang使用vet进行语法检查
golang vet工具的使用 一般来说每一门语言都有一些用来进行语法检查的工具,vet就是golang中提供的语法检查工具,可以让我检查出package或者源码文件中一些隐含的错误,规范我们的项目代码,下面我简单讲解下该工具的使用. golang vet工具的使用vet工具的路径vet的使用对一个go源文件进行检查一个包下所有源文件进行检测对一个package进行语法检查原创 2017-05-16 13:56:11 · 13633 阅读 · 2 评论 -
golang实现自定义驱动的Cache
近期在写 ActivedRouter项目的时候需求一个缓存模型,要求缓存模型支持不同驱动,例如:memory、file、redis、mysql,实现思路代码如下:cache.go文件,定义缓存对外接口//ActivedRouter//Author:usher.yue//Amail:usher.yue@gmail.com//TencentQQ:4223665//缓存驱动接口定义//可以自定原创 2017-05-11 10:36:05 · 1930 阅读 · 0 评论 -
Golang- import 导入包的语法
Golang- import 导入包的语法原文 http://blog.youkuaiyun.com/zhangzhebjut/article/details/25564457主题 数据库import( "fmt") 然后在代码里面可以通过如下的方式调用fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,转载 2016-12-07 09:25:59 · 1960 阅读 · 0 评论 -
Go语言并发编程总结
Golang :不要通过共享内存来通信,而应该通过通信来共享内存。这句风靡在Go社区的话,说的就是 goroutine中的 channel .......他在go并发编程中充当着 类型安全的管道作用。原创 2015-03-16 17:56:39 · 21793 阅读 · 1 评论 -
Go语言面组合式向对象编程基础总结
Go语言的面向对象编程简单而干净,通过非侵入式接口模型,否定了C/C++ Java C#等传统面向对象编程语言的复杂度的必要性,我们发现在Go中即使简单的组合也能达到传统面向对象语言的效果,而且耦合度非常低,按照Go的作者之一也就是C语言的作者之一说的一句话:Go是更好的C语言。原创 2015-03-15 22:50:48 · 5442 阅读 · 0 评论 -
Golang基础学习总结
1、不支持继承 重载 ,比如C++Java的接口,接口的修改会影响整个实现改接口的类行为的修改,Go 设计者认为这一特点或许根本没用.2、必任何函数定义必须花括号跟在函数声明后面而不能换行 如 func funca(a int){},在Go语言中 函数也是一种类型 可以被推导 使用支持匿名函数 和闭包。 函数的返回值支持多重返回类似Python , 如果不赋值 整数类型默认 0原创 2015-03-14 22:59:14 · 10374 阅读 · 1 评论