自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

范安崇的博客

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(10)
  • 收藏
  • 关注

原创 micro/go-micro 介绍与源代码分析(三): service 模块

service 模块service 模块表示一个微服务,包括了 Client 、 Server 对象,提供了统一、简明的使用面板因此它主要是:一些组织代码;一些接口的 wrapper (包装器)和 syntactic sugar(语法糖)没有实质性内容,但是很重要。因为使用 micro/go-micro ,基本上都是在调用 service 模块上相关接口相关文件service 相关文件集...

2019-06-25 20:37:06 470

原创 思考(五十七):一处 string 字段竞态问题引发的 crash

string 字段多协程竞态通常写代码比较注意一些数据结构、容器的多协程竞态,比如 slice 、 map对于 string 字段的多协程竞态,非常容易忽视这里举例说明,项目中遇到的问题竞态代码代码片段1 (协程1 中执行)func (s *Server) loginOnWindows(p *common.Proto, ch *Channel) (err error) { req :...

2019-06-24 18:34:39 364

原创 micro/go-micro 介绍与源代码分析(二):命令行参数与 Option 机制

( micro/go-micro 本系列,是根据代码阅读顺序,边看边写,因此暂缺一篇工程目录文件综合性的介绍,最后补上)Option 机制micro/go-micro 代码中,可以通过 Option 来显式配置微服务属性,来达成:初始化微服务设置添加微服务某些功能(通过 Option 来传递 middleware )替换微服务某些功能(通过 Option 来替换插件)具体例子,感性...

2019-06-23 16:59:33 1810

原创 思考(五十六):Golang 编程之工厂模式

工厂模式工厂模式: 在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象micro/go-micro 在插件的可插拔上使用了工厂模式micro/go-micro 工厂模式的应用以Registry的etcd 插件为例1. 接口摘自: https://github.com/micro/go-micro/blob/master/registry/registr...

2019-06-23 14:48:51 572

原创 micro/go-micro 介绍与源代码分析(一)

写在前面micro/go-micro 是一个微服务开发框架,github 地址: https://github.com/micro/go-micromicro/go-micro 非常合理的抽象提炼了微服务开发中必涉及到的八大模块,以及能使这些模块可插拔,制定化micro/go-micro 具有不少经典的框架开发时涉及的编码范例,是不可多得的 golang 编程代码参考与学习资料同时,mic...

2019-06-22 14:49:42 2796

原创 思考(五十五):Golang 编程之装饰器模式

装饰器模式装饰器模式:允许向一个现有的对象添加新的功能,同时又不改变其结构C++ 中典型例子是继承+多态,可以自己百度下这里介绍 golang 实际项目中用到的,达到装饰器模式同样效果的例子摘自作者自己的描述是:It’s a design pattern that allows the addition of new options without changing the metho...

2019-06-19 20:20:19 1629

原创 bilibili/discovery 介绍与源代码分析 (二)

bilibili/discoverygitbhub 地址: https://github.com/bilibili/discovery目录结构目录结构如下,旁边加了注释.├── CHANGELOG.md├── LICENSE├── README.md├── cmd│ └── discovery # discovery 程序目录│ ...

2019-06-09 22:32:16 2610

原创 bilibili/discovery 介绍与源代码分析 (一)

bilibili/discoverygithub 地址: https://github.com/bilibili/discovery该库定性为: 使用 golang 复刻了下 euerka介绍该库前,先看下 euerkaeuerkaeuerka 一个服务发现中间件与市场上其他产品的比较如下 (摘自 https://www.liangzl.com/get-article-detail-...

2019-06-09 18:49:47 6910

原创 思考(五十四):Golang 编程之责任链模式

责任链模式责任链模式:在处理核心业务前后,可能会有很多道自定义的工序,每道工序间存在线性依赖关系。简单粗暴的,是所有代码揉成一团责任链模式使得每道工序可以自由拼接,传递顺序明确,便于扩展典型的应用是 http 请求处理, github 上有一个项目使用了该模式,网址如下:https://github.com/gin-gonic/gin#using-middleware下面先给一个感性的例...

2019-06-08 14:31:17 1229

原创 urldecode && unicode2utf8 for c/c++

urldecode可以参考 openssl 官方的实现: https://github.com/openssl/openssl/blob/0770c882150ea0159cc2b0a2cea2e8ed8442f36f/apps/ocsp.c文中搜素 : urldecode 关键字我把它摘录出来整理下,就是如下代码:#include <ctype.h>#include &lt...

2019-06-07 17:37:46 776

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除