在互联网公司,代码质量是个很重要的事,它关系到线上服务的稳定性,因此各个公司、各个团队也都做了大量代码质量相关的工作,网上也能搜到很多大厂的代码质量相关实践的分享。对于代码质量的维护,无非是三个阶段的事情:编码前、编码时、编码后。
编码前
- 制定详尽且严格的代码规范和风格指南,从语法层面规避掉一些低级错误,并且保证团队所有人的代码风格尽量一致;
- 文档先行,做好技术方案设计,开发前就对项目整体框架有个清晰的认知,而不是开发过程中不断地推翻重来;
编码时
- 严格遵守团队的代码规范和风格指南,如果没有,也要遵守业界最佳实践;
- 编写高质量且完备的测试用例,确保代码的可靠性;
编码后
- 严格的 Code Review,借助他人视角重新审视代码,也可以换个角度去思考问题;
- 引入工具进行代码质量评估,如代码复杂度、重复率、测试覆盖率等;
- 持续重构,好的代码或架构不是一次成型的,只有不断重构才能不断完善架构,偿还一些技术债,有助于提升代码的可维护性和安全性;
以上都是理想中的情况,实际情况却是:
- 每个人都有自己的代码风格,都喜欢放飞自我,谁也说服不了谁;
- 开发时间不够,基本不写测试用例,技术方案也是没有,或者不够详尽;
- 重构?能跑的代码就不要去改它;
- Code Review?没那么多时间,直接跳过或者象征性地看一眼吧;
这些问题公司或领导不知道吗?当然知道,所以就搞了各种流程规范要求大家去遵守,制定了各种指标,试图用这些指标去衡量代码质量,然而实际情况却是代码质量更差了。
各种冗长繁琐的流程浪费了大量的开发时间,你的会开完了,那我的代码呢,只能随便写写,草草了事了;至于重构,能有什么可以量化的收益吗,好像并没有,那就不要动它了;Code Review?还是前面那个问题,时间都浪费在其他地方了,哪还有时间啊;至于各种指标,那就面向指标编程,提升指标的办法多的是,但对代码质量没什么用。
其实最根本的问题是关注代码质量时,没人关注代码本身,而是关注各种可以撇清责任的流程和可以提高业绩的指标。至于代码本身谁关心呢,又不是不能跑,如果真跑不了,那人可以跑的嘛。
技术
面向未来的 Vue 和 Vite
本文是尤雨溪近期在深圳 VueConf 上做的分享,主要介绍了 Vue 的发展历程、开源社区的重要性和目前遇到的一些挑战与解决方案,使用 Vue 的开发者可以详细了解一下。
ITCSS: Scalable and Maintainable CSS Architecture
这是一篇 2016 年的文章,比较老了,介绍了一种可扩展和可维护的 CSS 架构。虽然近些年各种 CSS 方案层出不穷,但回头看 ITCSS 这种架构依旧是个不错的方案,并且目前的 CSS 方案或库里面也会有些它的影子。
开源
QR-X
一个用于生成二维码的库,支持 React、Vue、Solid 和原生 JavaScript,与其他同类库不同的是,它可以自定义程度很高,可以自定义各种样式。
Nestia
一个用于 NestJS 的工具库,主要包含路由、参数校验和转换的装饰器,以及 Swagger 文档生成工具,性能和功能性都比较强,比较有意思的是作者自称是韩国最好的程序员。
gridstack.js
一个拖拽式的网格布局库,可以用来构建 Dashboard 页面,比较好的一点是它是框架无关的,可以用于任何框架或原生 JS 的应用中,并且对移动端支持比较好。