首页> 软件工程> 高效开发-VSCODE自动化任务配置

[文章]高效开发-VSCODE自动化任务配置

收藏
0 481 0

高效开发-VSCODE自动化任务配置

李元龙

   背景介绍

随着公司开发规范的不断推行,代码检查和单元测试,将成为每一个开发人员的必备技能,同时也将注入到每一个开发人员的工作流中,原来草莽式的开发将会被规范和系统的开发流程所取代。而对应的,规范开发和集成流程的同时,每个开发人员的工作内容范围也扩大了,原来可能只需要把代码写好就可以了,现在可能需要同时编写单元测试和手动格式化代码。一定程度上,规范开发流程影响了开发人员的开发效率,但长期上,规范开发流程对代码的维护好处是巨大的,我们不能拒绝规范开发的趋势的到来,因此作为一个开发人员,我们要使用浑身解数提高开发的效率。

提高开发效率的方法有许多种,工具链优化就是其中之一。在我的工具链中,VSCODE是我一直使用的编辑器,当然我也尝试过使用PYCHARM,限于电脑机能的原因,使用体验一直很差,VSCODE虽然没有PYCHARMpython强大的支持,但应对日常的工作也足够了,重要的是启动速度和流畅度都很棒(在我的T480上)。最近的使用过程中,我发现VSCODE的任务功能,是一个很方便的提高我的开发效率的功能,本文将结合我的实践分享一下VSCDODE任务功能的使用。

   任务配置

2.1       模板创建任务

进入vscode,选择 终端配置任务使用模板创建 tasks.json 文件类型选择Others

        

   因为我们使用的是蓝鲸开发框架,所以VSCODE是没有默认的任务模板的,此处需要我们完全手动配置一个测试任务

选择类型之后,VSCODE会自动为我们生成一个模板json文件,叫做tasks.json,初始的参数如下

        

这是一个最基础的任务,运行这个任务会在命令行输入Hello,其中label代表这个任务的名字,type是执行任务的类型,初始的是在shell中执行脚本,command是执行的命令,这里是echo Hello,意思是在shell中执行 `echo Hello`命令

这是一个很好的开始,tasks里面的每一个属性都是可以配置的,而且具有智能提示的功能,但仅凭这几个参数是不能帮助我们执行开发框架中的测试任务的

如下图是我的其他配置项


其中command:是当前路径的manage.py执行文件,中括号的都是变量,执行效果等效于python manage.py

args是执行python manage.py的具体参数,我这里是test,执行测试,—keepdb同时保留测试中生成的数据库

VSCODE的变量很强大,有很多个,更多内容在这里

         

2.2       配置默认测试任务

任务是支持类型的,我们可以配置默认的测试任务,这样以后你的测试默认执行的就是这个任务了,Ctrl+Shift+P,输入task,选择配置默认测试任务

        

   执行任务

    方式一:选择 终端运行任务选择你要执行的任务名字

          

    方式二:Ctrl+Shift+P,输入task,选择 执行任务,同方式一,选择你要执行的任务名字

           

    方式三:Ctrl+Shift+P,输入task,选择运行测试任务,因为之前配置了默认的测试任务

           

    以上三种方式,都可以执行我们配置的测试任务。

   总结

有人说,我直接在命令行输入命令不就可以了吗,搞这么麻烦好像也没有怎么提高效率的样子,确实,命令行可以完成许多任务,而且是几乎所有的任务都可以完成,但是要知道,不是所有的命令行的指令你都记得住,不是所有的测试任务参数都是很少的,如果你的参数很多,命令也记得不熟悉,肯定是要花时间百度的,相信我,同样的问题你可能会百度很多次才可能会记住,而这种固定的任务命令使用频率可能不是很高,这就意味着,上次你觉得记住了,下次再用发现又忘了,反反复复。

而任务的配置,将必要的参数固定下来,写道配置文件里面,用一个好理解的名字标记,每次遇到测试或者打包等固定流程的时候,只需要鼠标点一点就完成了,而且VSCODE的任务还支持任务组等其他扩展功能,你可以为你的测试任务进行多样化的配置,而不必每次去记忆全部的配置项,大大减少了维护的成本,起到了开发流程自动化的效果。

其实,VSCODE的任务还有许多可以发掘的部分,可以简单也可以很复杂,这里我只是结合自己工作中的实践,抛砖引玉,同时也是提醒自己,开发过程中有许多可以提高效率和自动化的地方,可能每一个地方提高的并不是很多,但是积少成多,不断优化,最后整体的效果就会非常显著。

软件工程
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}