Category: Golang

3 Posts

自己动手实现 Docker 1
前言 之前有写过一个 OJ 业务项目放在简历上,那么 OJ 最重要的是评测模块,它的核心思想就是拿到用户代码,执行后,返回结果,当然这是从功能角度来说,从评测本身角度来说,我们更多考虑的是安全问题,因为用户代码是具有不确定性的,我们往往不能直接运行或者说起码要采取一些措施,否则不被信任的代码如果直接被运行很可能对我们的服务器造成损害:比如用户代码可能包含 fork 炸弹、恶意网络请求、死循环等,我们需要有一些手段去控制,那么就需要一个”黑盒“,它能够提供这么一种环境,对用户的代码进行一些限制。那么这个黑盒就是我们常说的“容器”。 提到容器我们都知道 Docker,理所当然的,我的评测也是利用了…
Web 框架设计概览
目前在 Go Web 领域有很多较出名的开源框架,Gin 、Hertz、Echo、Beego、Iris。它们都有各自的特点,并为开发者提供了很好的 API 支持,性能上都很好。 先来看看各个框架的抽象结构 Gin: Engine:…
DI(依赖注入)
DI (Dependency Injection)依赖注入,即将组件的依赖关系外部化,而不是由组件内部创建和管理这些依赖。这样可以提高系统的可测试性、可维护性和扩展性。 例如,考虑以下 Go 代码,为 UserCache 组件创建一个 Redis 客户端…