说说几个对于小公司或者小团队开发来说能够提高效率早点下班的事情:
1. 搭建CI/CD流程越早越好。不论是用的GitHub Action 还是自建Gitlab或者Jenkins,早点把流水线加入到开发过程中可以省下不少部署、配置环境等所需要的工作量,这样搭配像k8s这样的集群容器可以做到合并代码后自动部署和上线
2. 引入Code Review和开发规范越早越好。一方面不论协作同事的水平怎么样,最起码大家能够遵循统一规范,如代码规范和分支提交合并规范等,减少屎山和分支错乱的问题;另一方面,Code Review 至少能在代码合并前检查看看是否存在什么问题,免得又重新返工和回退代码,毕竟三个臭皮匠顶个诸葛亮
3. 引入代码质量工具链越早越好。这里的工具链其实就指Formatter、Linter之类的东西,虽然可能项目都还没写起来,就花一大堆时间引入在配置工具链上会被人诟病,但这对于协作来说大有裨益。比如像Python动态语言,如果每个人都不写类型注解,一旦犯错排查起来就会十分头疼,即使加了类型注解就算错了代码一样可以跑起来,所以这时候就要引入pyright或者mypy之类的静态类型检查工具,避免在代码上线时出问题。所以我的做法是把工具链引入到git commit hook上(当然也可以放到CI中,但我更喜欢在每次推送代码前就发现问题然后修改,而不是推送代码后为了修CI而再提交一次)
4. 接入日志和告警通知越早越好。这通常是对于后端接口来说,毕竟大多数时候报错都是在后端接口部分。在微服务和容器化大行其道的时代,提早把日志工具配好,尤其是使用结构化日志记录方便,避免加了负载均衡和起多个节点后日志来源过多无法定位的问题;同时,即便小团队没有专门的资源做监控,也应该至少配一个企业微信或飞书机器人做告警通知,方便第一时间发现是什么问题。不管是日志记录还是通知都应该携带请求上下文,以便快速定位
5. 尽可能选择相对新的技术栈。可能有人对Java8和mysql5.7这些旧东西有别样的情怀,但在小公司里领导基本上不会太在意你的技术栈是什么,只要你能根据业务需要把东西做出来就好。所以尽可能选择相对新的技术栈在享受到新特性的同时能够面向未来,而不是明明没有历史包袱非要自己背一个。