问题|“三行代码,确实需要耗上一整天!”( 二 )


不过 , 偶尔我还是需要运行完整的游戏 , 但这个 testbed 提供了很多便利性 , 我能够在 testbed 上快速实验 , 然后看看代码的运行 。 此外 , 我还能够借助 testbed 快速解决实际的问题 。
单元测试
后来 , 我又换了一个团队 。 我发现 , 这个团队已经全面实施了单元测试 。 虽然当时我有一些单元测试的经验 , 但从未在游戏开发中使用过 。
我简单地学习了代码、不同的测试 , 以及如何运行我们的游戏 。 我发现 , 实际上测试包只包含我们团队负责的特定游戏部分 。 第一次构建大概需要 10 秒 , 之后的增量构建可能不到 1 秒 。
这个数字对我的工作有非常重要的影响—— 因为编译和测试能在不到 1 秒的时间内完成 , 所以我就可以专注于一项任务了 。 编译和逻辑错误是不可避免的 。 但是 , 当我可以快速发现错误并重新编译时 , 整个工作状态就变得流畅起来 , 再也不会磕磕绊绊了 。
我第一次享受到在工作中编写代码的乐趣:重构和移动大块代码非常简单 , 修改别人的代码也非常容易 , 并且我的修改不会导致整个游戏崩溃 。 因此 , 修改代码的焦虑也就是消失了 。
我着手重写竞技模式的逻辑 , 并添加了单元测试 。 单元测试基本可以覆盖各种各样的边缘情况 。 在最终离开公司的时候 , 我感觉很放心 , 因为我的代码拥有自己的检查系统 。原本我需要花费大量时间确认的错误如今已经被编写到了测试规范中 。
总结
回顾这段工作经历 , 我心怀感激 。 在这个项目中 , 我亲身感受到长期的工程计划为开发人员的日常工作提供的便利 。 在某些时候 , 必须有人站出来说:“测试这些代码变更需要花费很长时间 , 难道我们就没有更好的方法了吗?”这也是我们每天都应该思考的问题 。
?给《新程序员》投票啦 , 2022 年做什么你来定!
?从硬件到 软件工程师 , 我用了 12 年实现了财务自由!
【问题|“三行代码,确实需要耗上一整天!”】?复旦教授:说好2个月修复400多个安卓漏洞 , 谷歌实际用了16个月

推荐阅读