Android打造专有hook,让不规范的代码扼杀在萌芽之中

俗话说 , 无规矩不成方圆,同样的放在代码里也是十分的贴切,所谓在代码里的规矩,指的就是规范,在一定规范约束下的项目,无论是参与开发还是后期维护,都是非常的直观与便捷 , 不能说赏心悦目,也可以用健壮可维护来表示;毕竟协同开发的项目,每个人都有自己的一套开发标准 , 你没有一套规范,或者是规范没有落地执行,想想,长此以往,会发生什么?代码堆积如山?维护成本翻倍增加?新人接手困难?等等,所谓的问题会扑面而来 。
正所谓规范是一个项目的基石,也是衡量一个项目,是否健壮,稳定,可维护的标准,可谓是相当重要的 。我相信,大部分的公司都有自己的一套规范标准,我也相信 , 很多可能就是一个摆设,毕竟人员的众多,无法做到一一的约束,如果采取人工的检查 , 无形当中就会投入大量的时间和人力成本,基于此,所谓的规范,也很难执行下去 。
介于人工和时间的投入,我在以往的研究与探索中,开发出了一个可视化的代码检查工具,之前进行过分享 , 《一个便捷操作的可视化规范检查》,想了解的老铁可以看一看,本篇文章不做过多介绍,当时只介绍了工具的使用,没有介绍相关功能的开发过程,后续,有时间了,我会整理开源出来 , 一直忙于开发,老铁们,多谅解 。这个可视化的检查工具,虽然大大提高了检查效率,也节省了人力和时间,但有一个潜在的弊端 , 就是,只能检查提交之后的代码是否符合规范,对于提交之前没有进行检查,也就说,在提交之前,规范也好,不规范也罢,都能提交上来,用工具检查后,进行修改,更改不规范的地方后然后再提交,只能采取这样的一个模式检查 。
这样的一个模式,比较符合,最后的代码检查,适用于项目负责人 , 开发,对组员提交上来的代码进行规范的审阅,其实并不适用于开发人员,不适用不代表着不可用 , 只不过相对流程上稍微复杂了几步;应对这样的一个因素,如何适用于开发人员,方便在提交代码之前进行规范检查,便整体提上了研发日程 , 经过几日的研究与编写,一个简单便捷的端Git提交专有hook,便应运而生了 。
说它简单 , 是因为不需要编写任何的代码逻辑,只需要寥寥几步命令,便安装完毕,通过配置文件,便可灵活定制属于自己的检查范围 。
为了更好的阐述功能及讲述实现过程,便于大家定制自己的开发规范,再加上篇幅的约束,我总结了四篇文章来进行系统的梳理,还请大家,保持关注,今天这篇,主要讲述最终的开发成果,也就是规范工具如何使用,规范这个东西,其实大差不差,大家完全可以使用我自己已经开发好的这套 。
这个工具的开发,利用的是git 钩子(hook),当然也是借助的是Node.js来实现的相关功能,下篇文章会详细介绍,我们先来安装程序,来目睹一下实际的效果,安装程序,只需要执行几步命令即可,无需代码介入,在实际的开发中需要开发人员,分别进行安装 。
安装流程
1、安装 Node.js , 如果已经安装,可直接第2步:
Node.js中允许使用开发服务端以及命令行程序,我们可以去官网
下载最新版本的安装程序,然后一步一步进行安装就可以了,这个没什么好说的,都是开发人员 。
2、安装
是最终的工具,里面包含着拦截代码判断的各种逻辑,在项目根目录下执行如下命令:
npm install android_standard --save-dev
执行完命令后,你会发现,你的项目下已经多了一个目录,还有两个json文件,如下图所示:
 , 用来存放下载安装的包文件夹,里面有我们要使用到的功能,其实和中lib目录很类似,都是一些提供功能的库 。
.json文件,是配置文件,比如应用的名字,作者,介绍,还有相关的依赖等 , 和中的build.文件类似 。
3、创建git配置文件 , 执行如下命令
node node_modules/android_standard/gitCommitConfig
命令执行成功会返回如下信息:
此命令执行完后,会在项目根目录下创建文件,这个文件很重要,是我们执行相关命令的配置文件 , 内容如下,大家可以根据自己实际项目需要进行更改 。
项目下生成.文件,.是我自己定义的,至于什么格式,等你自己开发的时候,完全可以自定义,是个文件就行 。
打开后 , 文件内容如下 , 此文件是比较重要的,后续所有的规范检查,都要根据这个文件里的参数来执行,大家在使用的时候,就可以通过这个文件来操作具体的规范检查 。
4、更改执行文件,执行如下命令
执行文件,就是需要在上边生成的.json文件,添加运行程序,使其在git提交时进行hook拦截 。
node node_modules/android_standard/package
5、添加git过滤
因为执行完上述命令后,会产生几个文件,而这几个文件是不需要我们上传到远程仓库的,所以我们需要在.文件里添加忽略,直接复制即可 。
/node_modulespackage.jsonpackage-lock.jsongitCommitConfig.android
6、后续如果有更新,可操作命令进行操作:
注:此命令在更新时执行
npm update android_standard --save-dev
7、删除操作
注:后续不想使用了,便可执行如下命令:
npm uninstall android_standard --save-dev
具体使用
通过上述的安装流程,短短几个命令,我们的规范检查便安装完毕 , 后续只需要通过.文件 , 来动态的更改参数即可,是不是非常的方便,接下来,我们来实际的操作一番 。
关于配置文件的相关参数 , 也都有注释,一看便知,这里简单针对最后的参数,做一个说明,也就是这个参数,true为工具,false为命令方式;true也好,false也好 , 在主要的功能验证上,没有区别,唯一的区别就是,命令行的方式提交,会有颜色区分,后面有效果 。
我们先来看下命令行下的执行效果,当配置文件开关已开,并且为false,其他的配置参数,大家可以根据需要进行改动,在代码提交的时候如下效果:
在 中提交代码执行效果
提交代码执行效果:
目前呢,针对端的规范检查,无论是java还是,还是资源文件 , 都做了一定的适配,经过多方测试 , 一切正常,如果大家的公司也需要这样的一个hook工具 , 欢迎使用 , 也欢迎继续关注接下来的相关实现逻辑文章 。
【Android打造专有hook,让不规范的代码扼杀在萌芽之中】好了各位老铁 , 这篇文章先到这里,下篇文章会讲述,具体的实现过程,敬请期待!