Featured image of post 记忆

记忆

本文阅读量

docker

在工作中使用docker干什么?

面向开发:

环境配置,保证开发环境与正式环境一致。

  1. 环境配置,保证了我们的开发环境与正式环境是一致的,这样就不会出现环境不一致导致的各种问题了。
  2. 进入新的工作环境,我们需要搭建php环境,以及各种配置文件,拓展等等是比较麻烦的,并且很难达到与正式环境一致
  3. 快速部署。
  4. 获取比虚拟机更小的资源浪费

面向测试

多版本测试

面向运维

比较适合微服务。我们可以启动20个容器来跑订单业务

自动化扩容。

git

工作流是什么样的?

有4个基础分支,master(主分支),develop(开发分支),hotfix(热更新分支,主要用于修复线上bug),release(预发布分支,用于测试新增功能)

其他功能分支

go

1、go run 与go build执行流程的方式区别?

  1. 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以执行
  2. 如果我们是直接go run,那么如果要在另一个机器上这么运行,也需要go开发环境,否则无法运行
  3. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多

2、+号的应用?

  1. 当左右两边都是数值类型时,则是加法运算
  2. 当左右两边都是字符串,则做字符串拼接

3、字符串操作

用加法操作符拼接字符串时,每次都必须重新分配内存。如此,在构建“超大”字符串时,性能就显得极差。

注意:

  1. 字符串一旦被定义就无法被修改,即:字符串是不可变得,如果想修改,参照6.1节。
  2. 字符串操作通常在堆上分配内存,这会对web等高并发应用会造成较大影响,会有大量字符串对象要做垃圾回收。建议使用[]byte缓存池,或在栈上自行拼装等方式来实现。

字符串底层是一个byte数组,所以可以和[]byte类型相互转换

字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码

1
2
var  n1 = 10 + 'a'
fmt.Println(n1) // 输出 107

要修改字符串,需要先将其转换成[]rune[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。

使用 Hugo 构建
主题 StackJimmy 设计