随笔分类 -  go语言

摘要:proxy [TOC] 一、简介 代理设计模式是一种结构设计模式。这种模式建议为控制和访问主要对象提供额外的间接层。 在这种模式下,将创建一个新的代理类,该类实现与主对象相同的接口。这使您可以在主对象的实际逻辑之前或者之后执行某些行为。 二、代码 三、参考资料 1、https://golangbye 阅读全文
posted @ 2019-12-22 14:46 0pandas0 阅读(206) 评论(0) 推荐(0)
摘要:过滤器模式 [TOC] 一、简介 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 二、代 阅读全文
posted @ 2019-12-22 13:49 0pandas0 阅读(860) 评论(0) 推荐(0)
摘要:适配器模式 [toc] 一、简介 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。例如: 在现实生活中,我们的笔记本电脑的工作电压大多数都是2 阅读全文
posted @ 2019-12-15 17:52 0pandas0 阅读(405) 评论(0) 推荐(0)
摘要:建造者模式 [TOC] 一、简介 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 二、代码 完 阅读全文
posted @ 2019-12-15 17:30 0pandas0 阅读(782) 评论(0) 推荐(0)
摘要:抽象工厂模式 [TOC] 一、简介 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们 阅读全文
posted @ 2019-12-15 16:48 0pandas0 阅读(262) 评论(0) 推荐(0)
摘要:工厂模式(Factory Pattern)是软件设计中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。在每增加一种类型时,只需要修改工厂函数即可。 在产品较多时,工厂函数代码逻辑将会非常复杂。 阅读全文
posted @ 2019-12-14 18:14 0pandas0 阅读(193) 评论(0) 推荐(0)
摘要:原型模式 [TOC] 一、简介 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一 阅读全文
posted @ 2019-12-14 09:06 0pandas0 阅读(253) 评论(1) 推荐(0)
摘要:单例模式 [TOC] 一、简介 单例模式(Singleton Pattern)是软件设计中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式, 阅读全文
posted @ 2019-12-13 17:41 0pandas0 阅读(396) 评论(2) 推荐(0)
摘要:go mod都会去下载第三方包很耗费时间。在网上找了一些资料发现athens正好满足我的需求,就把这个服务给部署到和gitlab-runner一起了,这样就可以完美解决了下载慢的问题。毕竟局域网内下载还是很快的。 阅读全文
posted @ 2019-12-09 23:34 0pandas0 阅读(1171) 评论(1) 推荐(0)
摘要:go channel处理高并发请求 [TOC] 最近看了一篇文章讲解怎样使用go channel的,周末就花了点时间学习了一下,文章原文地址: http://marcio.io/2015/07/handling 1 million requests per minute with golang/ , 阅读全文
posted @ 2019-12-08 16:57 0pandas0 阅读(2080) 评论(0) 推荐(0)
摘要:文章目录一、踩得坑二、break的使用1、break用于for循环2、 break用于select3、break用于嵌套循环4、break label 、 goto label 、continue label5、官方解释参考文章 一、踩得坑 for { time.Sleep(p.Cfg.WatchI 阅读全文
posted @ 2019-08-20 15:22 0pandas0 阅读(423) 评论(0) 推荐(0)
摘要:文章目录go实践之swagger自动生成api文档1、安装需要用到的包2、接口代码支持swagger3、 生成swagger接口 go实践之swagger自动生成api文档 作为一个后端开发,给前端提供api接口是必须的。手动去写文档不是一个程序员的风格。swagger就是一个很好的api文档生成该 阅读全文
posted @ 2018-12-08 21:13 0pandas0 阅读(1850) 评论(0) 推荐(0)
摘要:文章目录go实践之apiserver搭建1、配置文件读取2、数据连接3、日志初始化4、server初始化5、接口编写 go实践之apiserver搭建 本文主要记录下博主用gin搭建app server的过程,方便后续学习。web框架用的gin,日志用的zap,数据库连接用的mysql driver 阅读全文
posted @ 2018-12-08 11:31 0pandas0 阅读(441) 评论(0) 推荐(0)
摘要:1、Goroutines是轻量级线程 2、channels的同步通信 1、Goroutines是轻量级线程 go语句在单独的线程中运行一个函数。 你可以使用go语句启动一个新的执行线程,即一个goroutine。它在一个不同的,新创建的goroutine中运行一个函数。 单个程序中的所有gorout 阅读全文
posted @ 2018-07-03 09:43 0pandas0 阅读(141) 评论(0) 推荐(0)
摘要:go基本的数据结构有数组、slice、map,高级数据结构为结构体为用户自定义类型。本片文章主要讲解三大基本数据结构。 数组 slice Map 数组 数组是包含单个类型的元素序列,但是长度固定的数据类型,一个数组声明时需要指定数据类型和长度进行。例如定义长度为6的整形数组 var x [6]int 阅读全文
posted @ 2018-07-01 15:36 0pandas0 阅读(339) 评论(0) 推荐(0)