前言
这里是记录一周的学习情况,了解到的新知识,新想法、新见解的地方,每周我都会来整理一下、调整一下。期望自己能够有改变。
上班生活
这周也进入了公司的开发状态了,也了解到了很多新的东东,日志监控平台、自动化部署、数据库开发规范等,对技术的收获还是很多的。不过每天上下班挤地铁,大小周还是有点烦人的/(ㄒoㄒ)/~~,下面就来学习一下相关知识把。
编程知识
gitlab-ci自动化部署工具
通过在项目根目录下配置.gitlab-ci.yml文件,可以控制ci流程的不同阶段,例如install/检查/编译/部署服务器。gitlab平台会扫描.gitlab-ci.yml文件,并据此处理ci流程。
通过gitlab-ci,我们提交完代码后就可以不用管了,ci流程会自动部署到测试或集成环境的服务器。很大程度上节约了开发时间,不然我们还要在开发和部署之间的状态切换。下面就来了解一下gitlab-ci.yml中常用的关键字把!
- stages
- stage
- script
- tags
stages &stage
stages定义在YML文件的最外层,它的值是一个数组,用于定义一个pipeline不同的流程节点。
stage是一个字符串,且是stages数组的一个子项,表示的是当前的pipeline节点。
1
2
3
4
5 stages: # 分段
- install
- eslint
- build
- deploy
script
它是当前pipeline节点运行的shell脚本(以项目根目录为上下文执行)。
这个script是我们控制CI流程的核心,我们所有的工作:从安装,编译到部署都是通过script中定义的shell脚本来完成的。
如果脚本执行成功,pipeline就会进入下一个Job节点,如果执行失败那么pipeline就会终止
tags
tags是当前Job的标记,这个tags关键字是很重要,因为gitlab的runner会通过tags去判断能否执行当前这个Job
依赖Jar包中的版本更新问题
在引用内部库中的时候,经常会出现需要更新依赖的库,但这个时候你sync并不能及时将最新的依赖库拉下来,这是因为gradle为了加快构建的速度,对依赖的库会缓存24小时,缓存之后就不在请求远程仓库了,这个时候我们可以设置一下。
1 | configurations.all { |
在开发依赖库发布的时候最好加上SNAPSHOT快照来发布,这样发布的时候每次都可以覆盖旧的依赖版本,这样不用每次都修改版本号。
生活知识
海姆利克急救法
如果是成人,救护者站在受害者身后,从背后抱住其腹部,双臂围环其腰腹部,一手握拳,拳心向内按压于受害人的肚脐和肋骨之间的部位;另一手成掌捂按在拳头之上,双手急速用力向里向上挤压,反复实施,直至阻塞物吐出为止。
当无人在场时
可采用上图所示的方法,稍稍弯下腰去,靠在一个固定的水平物体上(如桌子边缘、椅背、扶手栏杆等),以物体边缘压迫上腹部,快速向上冲击。
《被讨厌的勇气》
TODO 代写