avatar
用Go实现Actor模型

用Go实现Actor模型

星期二,三月 22 日,2022 年

随着多核CPU的出现,我们需要能够利用这些额外内核的编程模式,以并发的方式处理任务。 Actor模型就是这样一种模式,它模拟了大量独立的工作,以任何顺序处理,不需要锁同步。 Actor模型的一个非常普遍的用法可以在网络服务器中找到,Java中的Play! Java中的框架就是一个例子。一般来说,任何并发的应用程序都可以建立在Actor模型之上。

在这篇文章中,我将实践如何用Go实现一个原始的actor模型。我们将利用Go为并发提供的工具–goroutines、channels和wait groups。

avatar归零
3 分钟阅读
Docker镜像的区别

Docker镜像的区别

星期二,三月 22 日,2022 年

我们在编写Dockerfile时,选择基础镜像时会困惑,带有标签Alpine、Slim、Stretch、Buster等的这些标准镜像到底有什么不同,该如何选择作为我们的基础镜像呢,如果你有这样的困惑,本文会给你答案。

avatar归零
1 分钟阅读
Go语言SOLID实践系列五之依赖反转原则

Go语言SOLID实践系列五之依赖反转原则

星期六,一月 22 日,2022 年

引用wikipedia上对依赖反转原则的解释:

在面向对象编程领域中,依赖反转原则(Dependency inversion principle,DIP)是指一种特定的解耦(传统的依赖关系创建在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。

该原则规定:

  • 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。
  • 抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。
avatar归零
4 分钟阅读
如何使用Kubernetes临时容器进行故障排查

如何使用Kubernetes临时容器进行故障排查

星期二,一月 4 日,2022 年

容器及其周围的生态系统改变了工程师部署、维护和排查工作负载故障的方式。但是,在 Kubernetes 集群上调试应用程序有时可能会很困难,因为你可能在容器中找不到所需的调试工具。许多工程师使用基于精简、发行版构建无发行版的基础镜像,其中甚至没有包管理器或shell。甚至一些团队使用 scratch 作为基础镜像,并且只添加应用程序运行所需的文件。这种常见做法的一些原因是:

  • 具有较小的攻击区域。
  • 为了获得更快的扫描性能。
  • 减小了镜像大小。
  • 为了有更快的构建和更短CD/CI周期。
  • 减少依赖关系。
avatar归零
2 分钟阅读
Go语言SOLID实践系列四之接口隔离原则

Go语言SOLID实践系列四之接口隔离原则

星期日,一月 2 日,2022 年

引用wikipedia上对接口隔离原则的解释:

接口隔离原则(英语:interface-segregation principles, 缩写:ISP)指明客户(client)不应被迫使用对其而言无用的方法或功能。接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署。接口隔离原则是在SOLID中五个面向对象设计(OOD)的原则之一,类似于在GRASP中的高内聚性。

avatar归零
4 分钟阅读
Go语言SOLID实践系列二之开闭原则

Go语言SOLID实践系列二之开闭原则

星期六,十二月 25 日,2021 年

引用wikipedia上对开闭原则的解释:

在面向对象编程领域中,开闭原则 (The Open/Closed Principle, OCP) 规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。

在本文中,我们将通过实践的方式深入探索这一原则。

avatar归零
3 分钟阅读
Go语言SOLID实践系列一之单一职责原则

Go语言SOLID实践系列一之单一职责原则

星期四,十二月 23 日,2021 年

什么是SOLID?

以下引用wikipedia上的解释:

SOLID指面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。SOLID所包含的原则是通过引发编程者进行软件源代码的代码重构进行软件的代码异味清扫,从而使得软件清晰可读以及可扩展时可以应用的指南。SOLID被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发的基本原则的重要组成部分

avatar归零
3 分钟阅读
Kubernetes最佳实践

Kubernetes最佳实践

星期三,十二月 22 日,2021 年

容器的使用越来越多,导致对Kubernetes等容器编排平台的需求随之上升。使用容器来打包应用程序,极大地简化了应用程序从开发到生产的部署过程。毫无疑问,Kubernetes作为一个平台协调器,通过引入其深奥的方式,进一步简化了这个过程。

今天,我想谈谈我在使用Kubernetes时学到的一些好的做法,这些做法可以实现安全部署并推动集群的效率。 那么,让我们开始吧。

avatar归零
1 分钟阅读

© 2014 - 2022 Lionel's Blog

Powered by Hugo with theme Dream.