网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

golang标准库reflect的魔法运用
2020-06-10 04:10 admin golangreflect

本文要解决什么问题?有时候我们为了简化代码,需要包装使用一些参数数量可变的函数,例如数据库查询用的Query、Exec等函数,你的SQL语句中有多少个“?”,后面就要对应提供多少参数。要包装这样的函数,使用reflect库是唯一的选择。实现方法废话不多说,下面就说说实质性的内容。思路总体上就是依靠_reflect.Va...
阅读全文

第八章 并发
2020-06-10 04:10 admin 并发第八章

1\.并发和并行的区别并行:多核cpu在同一时间片内并行处理多个任务。并发:如单核cpu在多个任务间进行时间片切换,并非同一时间片执行多个任务,只是上下文切换时间很短,看似多个任务并行。多线程和多线程是并行的基本前提条件,单线程也可用协程做到并发。在golang中是通过goroutine来实现并发的,goroutine...
阅读全文

golang学习笔记:如何选择方法的receiver类型
2020-06-10 04:10 admin golangreceiver

在写代码的过程中,经常会会涉及到方法的receiver类型选择的问题,通常会纠结于用T还是*T,记住以下原则问题便迎刃而解:*要修改实例状态,用*T。*无须修改状态的小对象或固定值,建议用T。*大对象建议用*T,以减少复制成本。*引用类型、字符串、字典、函数等指针包装对象,直接用T。*若包含Mutex等同步字段,用*T...
阅读全文

Golang笔记-Plugin初探
2020-06-10 04:10 admin golangplugin

前言最近在学习fabric1.2版本的新特性,其中有一个是实现了交易背书和区块结果验证这两个原本由系统链码`escc`和`vscc`负责的模块的可插拔。它们的可插拔用到了Go的plugin技术,这也是我第一次知道GoPlugin的概念(虽然在Go1.8版本就有了),于是准备探一探究竟GoPlugin是什么,怎么用。什么...
阅读全文

Go语言实现的WebSocket
2020-06-10 04:10 admin goWebSocket

*最终的效果如下Web端上传的信息Web端得到的打印的信息服务端的代码的实现服务端的信息*WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。WebSocket通信协议于2011年被定为标准RFC6455,并被RFC7936...
阅读全文

Go 中关于方法的 receiver 的总结
2020-06-10 04:10 admin goreceiver

关于这部分内容,在写代码时一直都是用指针类型的receiver,但没有系统整理过规则,这里进行总结。首先是官方中说的那三条:*第一条也是最重要的一条,方法是否要修改receiver?*其次是效率的考虑,如果receiver非常大,比如说一个大`struct`,使用指针将非常合适。*接下来是一致性,如果该类型的某些方法必...
阅读全文

通过Nginx实现gRPC服务的负载均衡 | gRPC双向数据流的交互控制系列(3)
2020-06-10 04:10 admin nginxgrpc

前情提要本系列的第一篇文章通过一个例子介绍了,第二篇文章介绍了如何。通过这两篇文章,我们可以一窥gRPC双向数据流的开发方式,但是在生产环境当中一台服务器(一个服务端程序)是不够的,我们往往会面临各种复杂情况:访问量上来了一台服务器不够怎么办?服务器挂了怎么办?有实战经验的读者肯定知道答案:上**负载均衡**(Load...
阅读全文

golang 设置 http response 响应头与坑
2020-06-10 04:09 admin golangHTTP

**1、设置WriteHeader的顺序问题**之前遇到个问题,在一段代码中这样设置WriteHeader,最后在header中取Name时怎么也取不到。__w.WriteHeader(201)w.Header().Set("Name","mynameissmallsoup")用golang写httpserver时,可...
阅读全文

rpcx+zipkin
2020-06-10 04:09 admin rpcxzipkin

最近工作中常用到golang,学习了下golang的rpc框架,目前比较流行的有1.rpcx()类似dubbo,不用定义protobuf文件客户端支持跨语言2.go-micro()没有啥优点3.gRpc()跨语言,需要二次开发服务注册发现***现在开发一般都是服务化的口号,把一个大的服务拆分成N个独立的小服务,划分领域...
阅读全文

beego开发轻博客——第七讲 文章的显示、修改与删除
2020-06-10 04:09 admin beego博客

【小鸡创作】beego开发轻博客>_本章目标:添加“文章的显示、修改与删除”功能_>_github:_>_视频教程:_***文章显示1\.功能分析文章的显示功能,首先我们需要添加路由,约定文章显示的路由路径为"/details/[文章的key]",再添加路由对应的控制器,我们需要根据key查找到文章的记录,返回给页面。...
阅读全文

Docker 部署golang程序
2020-06-10 04:09 admin golangdocker

问题我写好了一个基于gin的web程序,另外还有一些依赖。我费了千辛万苦才把依赖下载下来,我不想在docker镜像里面在下载一次依赖,如何能够快速的给我构建一个镜像。有问题的解决方法`golang`作为编译型语言,运行的是编译完成的二进制可执行文件,该文件是与运行系统有关的。我的开发系统是ubuntu1604。所以我的...
阅读全文

golang 阳历和农历转化 阳历和农历节假日计算
2020-06-10 04:09 admin 阳历农历

发一个之前写的**_golang_**的阳历和农历的库,GitHub链接:支持1900到2049年的阳历农历之间的相互转化和阳历与农历的节假日计算,节假日的计算可以自己添加规则,看下边示例中的festival.json下面给出例子创建工程festival.json的内容是这个文件农历和阳历相互转化的demo代码运行结果...
阅读全文

Golang Tag
2020-06-10 04:09 admin golangTag

我们可以通过`Tag`来增强结构体的定义,Tag会带上一些meta信息,在本文中我们将通过几个例子来深入了解`Tag`的用法。结构`Struct`是由一组`field`组成,每个`field`包括了名字(可选)和字段类型__packagemainimport"fmt"typeT1struct{f1string}type...
阅读全文

Golang笔记-浅谈interface
2020-06-10 04:09 admin golang浅谈

前言`class`和`interface`在高级语言中是很重要的概念。`class`是对模型的定义和封装,`interface`则是对行为的抽象和封装。Go语言虽然没有`class`,但是有`struct`和`interface`,以另一种方式实现同样的效果。本文将谈一谈Go语言这与别不同的`interface`的基本...
阅读全文

golang grpc+consul
2020-06-10 04:09 admin golanggrpcconsul

最近在学习研究golang的rpc框架,这两天学习了grpc,学习demo,目前两大主流跨语言的RPC框架:gRPC,Thrift算是屠龙刀跟倚天剑吧,萝卜青菜各有所爱,就看各位看官的实际需求和兴趣了。***开始主题,[gprc-go](https://github.com/grpc/grpc-go)官方未提供目前主流...
阅读全文
顶部 底部