工程化思想总结
- 2019 年 10 月 21 日
- 筆記
前言:本人和Jack两人创立Wonder科技两年已久,虽然公司还没注册,但我们的项目已经开发到1.2版本,由于种种原因项目停止了开发。Jack开始了写书的道路,而我,也面临了找工作的事情,在找工作之前,我想先把这两年学习的东西进行总结和复盘,如若能帮助大家,也算是做了件好事。
先给大家介绍下我们的项目,以及我们如何使用工程化思想进行项目重写和重构。
我们开发的是Web端3D WebGL引擎和在线编辑器,其中Jack主要负责引擎,我主要负责3D编辑器以及公司官网、论坛、托管平台等系统开发。在这期间我也熟悉引擎并开发了引擎中的自由相机功能,以及集成到编辑器中使用,为此,我想总结下这两年来跟随Jack学习到的工程化思想。
一、中大型项目的根基:测试驱动开发
刚接触TDD的时候我想大家肯定也和我一样迷茫,到底花费那么多时间写测试有没有必要,尤其是前端开发同学,很多公司不要求你写测试,所以大环境下前端程序员基本不会写测试。我先列举自动化测试的优点:
- 降低成本:程序员以自动化测试捕捉到bug,成为一个测试用例,就把这个bug固定住,以后有任何重构让这个bug重现都能报错,这样我们不需要测试团队
- 减少时间:只需要写一遍测试就可以一直复用,效率肯定比人工高
- 正确性:只要测试代码覆盖越多的产品代码,就能保证产品代码的正确性
- 代码复用性、可扩展性:当项目发展到一定量级,没有自动化测试支撑的项目,很难进行代码维护和重构
- 测试可读性:良好的测试也可以当做文档方便阅读
- 增加信心:帮助我们增加对软件的信心,也让用户更放心使用我们的产品