手撸golang 行为型设计模式 策略模式

手撸golang 行为型设计模式 策略模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 策略模式 策略模式(Strategy Pattern)又叫作政策模式(Policy Pattern), 它将定义的算法家族分别封装起来, 让它们之间可以互相替换, 从而让算法的变化不会影响到使用算法的用户, 属于行为型设计模式。 (摘自 谭勇德 <<设计模式就该这样学>>) 场景 某学员成绩管理系统, 需要对学员成绩进行排序 码农王二狗根据<<我的第一本...阅读全文

DDD Lite:DDD 领域驱动设计微服务简化版

DDD LiteDDD 领域驱动设计的大名大家应该都有所耳闻,但是实际项目完整落地 DDD 的很少。因为 DDD 概念繁杂,领域、子域、核心子域、通用子域、实体、值对象、领域服务、应用服务、领域事件、上下文等一大堆概念,直接把人绕晕,对应到实际业务模型时,横看成岭侧成峰,开发人员内部都难以达成一致。因为 DDD 设计之初目标是作为复杂软件解决之道,但我们大部分应用并没有那么复杂,一个简单的应用使用这么一套复杂的概念,有点弄巧成拙。在微服务时代,设计原则就是根据领域划分上下文,单体应用复杂度大大降...阅读全文

Segmentfault 2021-02-08 22:32:32 .container .car 等

手撸golang 行为型设计模式 策略模式

手撸golang 行为型设计模式 策略模式缘起最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔记拟采用golang练习之策略模式策略模式(Strategy Pattern)又叫作政策模式(Policy Pattern), 它将定义的算法家族分别封装起来, 让它们之间可以互相替换, 从而让算法的变化不会影响到使用算法的用户, 属于行为型设计模式。 (摘自 谭勇德 <<设计模式就该这样学>>)场景某学员成绩管理系统, 需要对学员成绩进行排序码农王二狗根据<<我的第一本算法书>>里的描述...阅读全文

Segmentfault 2021-02-08 16:32:32 .container .car 等

Go基础编程:数据类型

参考链接: C++ STL-math.fdim()函数原文链接: http://oldchen.iwulai.com/index.php/2019/01/10/go%E5%9F%BA%E7%A1%80%E7%BC%96%E7%A8%8B%EF%BC%9A%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/ Go语言内置以下这些基础类型:  布尔类型:bool。 整型:int8、byte、int16、int、uint、uintptr等。 浮点类型:float32、flo...阅读全文

51CTO博客 2021-02-05 10:38:17 wx592a7561e9493

记一次goroutine泄漏的问题

Golang因为有着比线程更加轻量级的协程的出现,使得并发编程的上手难度一下子变得亲民起来。而channel的引入,使得goroutine之间的通信变得异常的便捷。 但好用并不意味着毫无风险,go channel使用不当,也极易引起goroutine泄漏。 何谓goroutine泄漏?就是开启了goroutine,却并没有及时回收,导致goroutine越积越多,如果程序及时关闭还不会出现问题,如果是在服务器中,程序长期运行,就会导致资源占用十分恐怖。 虽然goroutine比线程更轻量级,但每...阅读全文

简书 2021-02-05 23:33:08 侯童鞋

交叉编译arm版tcping

windows版的tcping比较强大 https://www.elifulkerson.com/projects/tcping.php 但是原来的linux版就很烂了 https://github.com/mkirchner/tcping github上面看到一个golang重写的tcping,应该可以交叉编译到海思板子上面用 https://github.com/cloverstd/tcping 需要先搭建golang的开发环境,参考 https://www.cnblogs.com/yiyi...阅读全文

简书 2021-02-05 23:32:48 叶迎宪

Docker 架构

图解 Docker 架构 01 Docker 的总体架构 Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职。下图是它的总体架构图: 图片 1、用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。 2、Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的请求。 3、Docker Engine 执行 Docker 内部的一系...阅读全文

简书 2021-02-05 23:32:47 iamChel

go link

1、数据库 http://go-database-sql.org/ 2、算法 (1)https://github.com/hoanhan101/algo (2)极客时间;动态规划专栏 3、设计模式 https://golangbyexample.com/all-design-patterns-golang/ 4、博客 https://golangbyexample.com// 5、web https://astaxie.gitbooks.io/build-web-application-with...阅读全文

简书 2021-02-05 23:32:44 少年不惑

手撸golang 行为型设计模式 模板方法模式

手撸golang 行为型设计模式 模板方法模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 模板方法模式 模板方法模式(Template Method Pattern)又叫作模板模式,指定义一个操作中的算法的框架, 而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤, 属于行为型设计模式。 模板方法模式主要包含2个角色。 (1)抽象模板(AbstractClass):抽象模板类,定义了一套算法框架/流程...阅读全文

2021-02-05:给定一个数N,想象只由0和1两种字符,组成的所有长度为N的字符串。如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标。请问有多少达标的字符串?

福哥答案2021-02-05: 举例: N=6 [1 0 1 0 1 0] [1 0 1 0 1 1] [1 0 1 1 0 1] [1 0 1 1 1 0] [1 0 1 1 1 1] [1 1 0 1 0 1] [1 1 0 1 1 0] [1 1 0 1 1 1] [1 1 1 0 1 0] [1 1 1 0 1 1] [1 1 1 1 0 1] [1 1 1 1 1 0] [1 1 1 1 1 1] 总共13种。 这道题是斐波那契数列。代码不用斐波那契数列,用递归最直观。 代码用gola...阅读全文

简书 2021-02-05 23:32:43 福大大架构师每日一题

Go读书社区web开发与高性能架构优化

download:Go读书社区web开发与高性能架构优化 课程以开发在线读书社区为背景,先使用Go语言及Beego框架进行项目开发,快速迭代上线,然后进行包括主从和分表分库、搜索优化、页面静态化、动态缓存、下载优化、服务负载均衡等一系列架构优化,最后实现Web应用的高可用&高并发,扛住千万PV。通过课程学习,不仅能帮你掌握快速开发web应用的技巧,同时也能获取架构设计的思想。授之以鱼,更能授之以渔。 适合人群对Go语言有浓厚兴趣不满足于CRUD开发,有兴趣开发大型的Web应用 技术储备要求熟悉G...阅读全文

51CTO博客 2021-02-05 00:55:18 mb60197fa41eb9f

手撸golang 行为型设计模式 模板方法模式

手撸golang 行为型设计模式 模板方法模式缘起最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔记拟采用golang练习之模板方法模式模板方法模式(Template Method Pattern)又叫作模板模式,指定义一个操作中的算法的框架, 而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤, 属于行为型设计模式。 模板方法模式主要包含2个角色。 (1)抽象模板(AbstractClass):抽象模板类,定义了一套算法框架/流程。 (2)具...阅读全文

Segmentfault 2021-02-08 10:32:32 .container .car 等

手撸golang 行为型设计模式 委派模式

手撸golang 行为型设计模式 委派模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 委派模式 委派模式(Delegate Pattern)又叫作委托模式,基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式,可以理解为全权代理模式,但是代理模式注重过程,而委派模式注重结果。 委派模式有3个参与角色。 (1)抽象任务角色(ITask):定义一个抽象接口,它有若干实现类。 (2)委派者角色(Delegate):负责在各个具体角色实例之...阅读全文

golang中main中panic和后续panic处理,以及新开协程的影响

今天刚好有人问这个问题,就记录一下(讲了老半天说了这么多,一句‘嗯好的’就把我打发了·~~~~~,一点都不带客气的) 先看第一段代码 func main() { defer func() { if err := recover(); err != nil { log.Println("err:", err) } }() go out() time.Sleep(time.Second * 3) panic(errors.New("stop test")) log.Println("123") se...阅读全文

简书 2021-02-05 14:40:36 哆啦在这A梦在哪

推荐一个小工具:flog

一直以来,小白在Kubernetes集群中测试Loki的日志采集都是在容器内执行echo命令输出到控制台。这种方式操作起来既不方便无法大规模做日志测试。直到小白遇到一个好用的日志输出小工具flog。 flog是一个golang开发的测试日志生成器,它可以生成一些常见(如Apache、Nginx、RFC3164或Json)格式的日志 在Mac下用homebrew可以直接安装 brew tap mingrammer/flog brew install flog 或者直接用docker来运行 dock...阅读全文

简书 2021-02-05 14:40:36 云原生小白

精心整理!9个 Python 实用案例分享

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 1. 整理字符串输入 整理用户输入的问题在编程过程中极为常见。通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作。但是如果问题很复杂,可能有更好的方法来解决: user_input = "This\nstring has\tsome whitespaces...\r\n" character_map = { ord('\n') : ' ', o...阅读全文

简书 2021-02-05 14:32:39 小凶许打小脑斧