有很多小公司,因为前期就是为了快速出产品,所以什么东西都从简。大厂的同学们来分享一下,你觉得虽然有点耗费成本,但是很有必要的技术或者是开发理念吧。我先从自己经历说两个抛砖引玉
- git hooks 里面的 pre-push 。我们现在是把 pipeline 上的几乎所有检查都放在 pre-push 里面,这样就可以很大程度杜绝有人 push 代码前不跑 unit test ,之后也不检查 pipeline 是否挂掉。虽然 push 一次要十多分钟,不过每天大概一到两次 push 也就够了,而且有一个状态缓存的机制,如果有一些 test 的 coverage 没有动过,并且上次跑过了,就不用再次检查。所以整体也是可以接受的。
- 跨系统开发环境。所有的开发环境都配置好相关的 docker image 。写好脚本,里面有各种 task ,什么 debug ,lint ,unit test ,secret check ,vulnerability check 都可以不考虑本地环境,在 docker 里面执行。这样对新人极其友好,配置环境只需要下载 IDE+docker 。之后只要 clone 代码就能跑。同样这些可以放在前面说的 pre-push 以及 pipeline 里面直接使用。我们现在用的是 batect ,半内部的一个工具,可以帮助快速配置管理 docker 。
其实还有很多,比如 TDD ,UI test(automation + screenshot),微服务+bff 模式,可能小公司也没有。只是抛砖引玉,希望大厂同学不吝赐教,分享一些好的东西,让小公司的同学也都有机会了解一些更高级的东西。毕竟网上宣传的技术不一定好用,还是得真的在环境里面用过才有发言权。