docker
在工作中使用docker干什么?
面向开发:
环境配置,保证开发环境与正式环境一致。
- 环境配置,保证了我们的开发环境与正式环境是一致的,这样就不会出现环境不一致导致的各种问题了。
- 进入新的工作环境,我们需要搭建php环境,以及各种配置文件,拓展等等是比较麻烦的,并且很难达到与正式环境一致
- 快速部署。
- 获取比虚拟机更小的资源浪费
面向测试
多版本测试
面向运维
比较适合微服务。我们可以启动20个容器来跑订单业务
自动化扩容。
git
工作流是什么样的?
有4个基础分支,master(主分支),develop(开发分支),hotfix(热更新分支,主要用于修复线上bug),release(预发布分支,用于测试新增功能)
其他功能分支
go
1、go run 与go build执行流程的方式区别?
- 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以执行
- 如果我们是直接go run,那么如果要在另一个机器上这么运行,也需要go开发环境,否则无法运行
- 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多
2、+号的应用?
- 当左右两边都是数值类型时,则是加法运算
- 当左右两边都是字符串,则做字符串拼接
3、字符串操作
用加法操作符拼接字符串时,每次都必须重新分配内存。如此,在构建“超大”字符串时,性能就显得极差。
注意:
- 字符串一旦被定义就无法被修改,即:字符串是不可变得,如果想修改,参照6.1节。
- 字符串操作通常在堆上分配内存,这会对web等高并发应用会造成较大影响,会有大量字符串对象要做垃圾回收。建议使用[]byte缓存池,或在栈上自行拼装等方式来实现。
字符串底层是一个byte数组,所以可以和[]byte
类型相互转换
字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码
|
|
要修改字符串,需要先将其转换成[]rune
或[]byte
,完成后再转换为string
。无论哪种转换,都会重新分配内存,并复制字节数组。