你好,我是 winter。今天我们的主题是工具。
古语云:“工欲善其事,必先利其器”,程序员群体对工具的爱好和重视是一个悠久的传统。简单趁手的工具是程序员开发的好帮手。
但是在工程方面,工具不仅仅是简单的“趁手”即可,假如一个团队人人都自己发明几个小工具,那么后果将会是灾难性的:同一个团队的同学无法互相配合写代码,一旦有人离职,可能某一个项目就永远无法跑起来了。
所以我们今天从工程的角度谈一谈工具体系的规划。
工具总论
跟性能不同,工具体系并非业务结果,所以我们没法用简单的数据指标来衡量工具,它的结果更多程度是一种开发体验:帮助技术团队内的同学提升效率和体验。
作为工程体系,我们考虑工具的时候同样要遵循基本规则:现状与指标、方案、实施、结果和监控。
不过,对工具而言,指标和结果都是一种“软性指标”,也就是团队的开发效率和开发体验。这里我不太推荐把开发效率和开发体验过度数据化,我的经验是:开发效率提升 n 倍永远是一种臆想或者主观论断。
工具体系的目标
前面已经讲到,工具是为技术团队本身服务的工程体系,那么,工具的目标是什么呢?其实每一种工具的出现,必然都有一个非常具体的目标,比如 npm 帮助我们进行包管理,Yeoman 帮助我们初始化项目模板。