go 工程化项目结构
最近几篇文章与 Go 工程化方面有关,算是我们 Go 语言学习的第二部分,了解一门语言的惯例,即最佳实践。无论是做什么开发,在做之前先 google 一下 best practice 是一个非常好的习惯。今天这篇文章与 go 工程化项目结构有关,知识来自于 极客时间-毛剑老师的 Go 工程化实践。
最近几篇文章与 Go 工程化方面有关,算是我们 Go 语言学习的第二部分,了解一门语言的惯例,即最佳实践。无论是做什么开发,在做之前先 google 一下 best practice 是一个非常好的习惯。今天这篇文章与 go 工程化项目结构有关,知识来自于 极客时间-毛剑老师的 Go 工程化实践。
K8S Visitor 模式,这篇文章摘录自耗子哥博客-Go编程模式
本篇文章主要想讨论一下,Kubernetes 的 kubectl 命令中的使用到到的一个编程模式 – Visitor 。本来,Visitor 是面向对象设计模式中一个很重要的设计模式,这个模式是一种将算法与操作对象的结构分离的一种方法。这种分离的实际结果是能够在不修改结构的情况下向现有对象结构添加新操作,是遵循开放/封闭原则的一种方法。这篇文章我们重点看一下 kubelet 中是怎么使用函数式的方法来实现这个模式的。
Go 流处理编程模式,这篇文章摘录自耗子哥博客-Go编程模式
对于Pipeline用过Unix/Linux命令行的人都不会陌生,他是一种把各种命令拼接起来完成一个更强功能的技术方法。在今天,流式处理,函数式编程,以及应用网关对微服务进行简单的API编排,其实都是受pipeline这种技术方式的影响。
Go 的泛型和代码生成,这篇文章摘录自耗子哥博客-Go编程模式
接下来我们学习一下Go语言的代码生成的玩法。Go语言代码生成主要还是用来解决编程泛型的问题,泛型编程主要解决的问题是因为静态类型语言有类型,所以,相关的算法或是对数据处理的程序会因为类型不同而需要复制一份,这样导致数据类型和算法功能耦合的问题。泛型编程可以解决这样的问题,就是说,在写代码的时候,不用关心处理数据的类型,只需要关心相当处理逻辑。泛型编程是静态语言中非常非常重要的特征,如果没有泛型,我们很难做到多态,也很难完成抽象,会导致我们的代码冗余量很大。
反转控制,这篇文章摘录自耗子哥博客-Go编程模式
反转控制IoC – Inversion of Control 是一种软件设计的方法,其主要的思想是把控制逻辑与业务逻辑分享,不要在业务逻辑里写控制逻辑,这样会让控制逻辑依赖于业务逻辑,而是反过来,让业务逻辑依赖控制逻辑。