工作一年总结
系统上手篇
一个线上系统(应用)至少会经过如下几个过程:开发、编译、测试、灰度和发布等。作为新手,要快速入手负责内容,快速融入团队,熟悉掌握上述几个方面是必不可少的。我就从自己的角度,分别说明下每个部分需要注意的内容。
一、开发(开发、编译、运行)
构建系统开发环境,是开始工作的基础。先让系统动(活)起来,通过交互、反馈,不断的加深对项目的了解,此时再去看项目架构及其他内容,就可以去思考架构设计等方面的内容,避免让自己刚上手就接触和思考很空的东西。构建过程主要有一下几个方面:
* 首先要获取代码库(一般是`git`仓库)。所以这个前提是要熟练掌握git的相关操作
* 代码构建工具:maven/gradle
* IDE,使用比较多的就是idea
* 启动:启动参数/启动方式
* 验证&交互:rest接口可以使用postman进行验证
通过上述步骤,我们应该可以构建出本地开发环境,赶紧看看自己以后的亲儿子长啥样吧。多读读代码,多想想这是在做什么,为什么要这么做,还能怎么做~
二、测试(单元测试、模块测试、联调、系统测试---TDD相关的内容)
开发者测试
对于刚入职的新人来说,有一个错误的认识就是测试是由测试人员来完成的,开发人员只负责功能模块的设计与实现,至于实现之后的事情就交给测试同学,测出问题然后自己再去修改。甚至完全不回去写单元测试用例。这样下去,往往会严重影响自己的开发效率
,甚至会拖慢整个项目组的交付进度,使自己成为瓶颈。
开始可能不明白是为什么,慢慢就会发现,其实我们大部分时间都花费在问题定位上(包括debug、本地跑程序、联调等)。其实这些所有的工作就是在做开发者测试,只不过是在用手动的低效的方式来完成,那如何才能提高效率呢?这就要依靠自动化的方式,利用计算机帮我们来提高效率。 工作中一个重要的进步标志就是 定位问题的速度
。
开发者测试的目的
开发者测试的目的就是定位问题
。
TDD
对TDD的一点理解:TDD不是一种开发or测试技术,而是一种做事方式,是一种处理问题的分析思考能力。它的核心就是对任务的分解,得到
最终的问题列表
。
(1).TDD的主要步骤
- 分解任务-> 对需求进行分解,分解为一个任务列表,列表中任务可以转化成15min内完成测试代码及15min内完成功能代码,否则就对任务再进行细分。
当分解的所有任务都完成了,该功能也就完成了。这就做到了TDD的第一步:可测试性驱动
。
- 分解任务-> 对需求进行分解,分解为一个任务列表,列表中任务可以转化成15min内完成测试代码及15min内完成功能代码,否则就对任务再进行细分。
- 选一个任务写测试
- 选一个任务写实现
(2).在工作中如何控制好测试代码的粒度呢?
没必要去规定一个粒度,要结合团队的一个开发情况来定。
可以设定一个目标:缩短bug的平均定位时间,作为提升目标,持续改进,指导达到项目组的开发节奏要求。
三、发布(本地发布、联调环境发布、测试、现网发布)
发布的步骤
- 手动出包or自动出包
- 构建工具 maven /gradle
- 配置及对应不同环境的值
发布的注意事项
在发布过程中出现的问题,大部分都是配置问题及环境问题
网友评论