作者头像
Madman

GitLab 是用 Ruby 和 Go 开发的开源版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,方便团队协作开发、管理,同时还可以实现完整的 CI(持续集成)、CD(持续发布)流程

Golang.jpg

并发(concurrency)不是并行(parallelism),并行是让不同的代码片段同时在不同的 CPU 核上执行。并行的关键是同时执行多个任务,而并发是指同时管理很多任务,这些任务可能只做了一半就被暂停去做别的任务了。在很多情况下,并发的效果比并行好,因为操作系统和硬件的总资源一般很少,但能支持系统同时处理很多任务。这种 [使用较少的资源做更多的事情] 的哲学, 也是指导 Go 语言设计的哲学。Go 语言里的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数被创建为 goroutine 时,Go 会将其视为一个独立的工作单元

Golang.jpg

接口是用来定义行为的类型,这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。在 Go 语言中,只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要接口。当新的类型出现时,更简单方法的、更小的接口更容易满足需求,对于接口设计的一个好的标准就是 ask only for what you need