问题|“三行代码,确实需要耗上一整天!”
作者 |Adam Berg 译者 | 弯月
出品 | CSDN(ID:CSDNnews)
我先后曾在五家软件公司工作 , 其中既有游戏开发、移动开发 , 也有 Web 开发 。 回顾以前的工作经历 , 我认为 有一个问题始终未能得到应有的重视 , 那就是:迭代时间 。 本来我打算写一篇有关构建时间的文章 , 但我认为迭代时间能够更准确地表达我的想法 (注:本文中的迭代时间指的是 , 看到修改后的代码能够按照预期工作所需的时间) 。
这篇文章的目的是帮助我们反思当前的开发流程 。 想一想 , 在你们的流程中 , 哪些环节占据的时间超出了实际的需要?我们都知道单元测试的好处 , 但因为前提的投入太大 , 所以很多人都不想做 。
每次都需等待 15 秒 , 才能看到代 码错在哪里
2014 年 , 我以一名实习生的身份加入了 FIFA 团队 , 对于当时的我来说 , 3A 游戏开发完全是一个陌生的新世界 。 我记得当我看到我的电脑有 16 个 CPU 核心时 , 十分惊讶 。 我还记得 , 当时我按照说明进行了设置 , 并得知第一次构建需要 30 分钟的准备时间 。 不过 , 据说之后的增量构建会快很多 。
虽然增量构建确实快了许多 , 但每修改一行代码仍然需要花费 10 秒来编译 。 当时的我还是一名 C++ 开发新手 , 犯的语法错误数量很多 。每次修改完代码 , 都需要等待 15 秒 , 才能看到究竟哪里错了 。
修改三行代码确实需要一整天的时间
我会在等待期间找一些别的事情做 , 比如上网查资料 , 修改其他代码 , 或者检查邮件等 。 因此 , 难免会分心 , 往往一个不小心就过了几分钟 , 才想起来检查编译状态 。
然而 , 编译只是第一步 。 接下来 , 我还需要打包应用程序 , 并部署到我使用的游戏机 。 最初 , 我使用的是 PS Vita、Nintendo 3DS 和 Nintendo Wii , 这就又需要花费半分多钟才能完成游戏的加载 。 接着 , 我需要启动游戏 , 找到我负责的游戏区域 , 然后才能看到代码的修改结果 。
当时我负责的是竞技逻辑部分 。 为了测试前后变化 , 我需要在生涯模式中进行至少几个赛季 , 才能测试自己的修改 。
所以 ,不是开玩笑 , 修改三行代码确实需要一整天的时间 , 才能知道是否可以正常工作 。
调试工具
后来 , 我开始使用较新的游戏机 , 并开始接触 testbed 。 这些 testbed 不过是一些精简的游戏包 , 仅包含特定的代码 , 目的是缩减迭代时间 。 在找到生涯模式的 testbed 后 , 我几乎再也没有运行过整个游戏 。 这个 testbed 可以在几秒内构建完毕 , 而且还包含各类调试功能 。 testbed 可以在 PC 机上运行 , 因此可以大幅提高效率 。
在发现这款工具后 , 我非常激动!但我发现周围的很多人都不知道如何使用这个工具 。 他们只是按照原有的方式启动完整的游戏 , 手动找到所需的位置 , 然后测试代码的变更 。 很快 ,我就熟练地掌握了 testbed , 并添加了很多新功能 , 大幅地减轻了开发新功能的负担 。
推荐阅读
- 市场资讯|“真·网红”马斯克:一个特斯拉哨子30万,大红内裤遭秒光
- Samsung|三星电子延迟发布最新智能手机AP“Exynos 2200”
- 安全|温州一超市遭“比特币勒索病毒”攻击,储值系统瘫痪
- 大餐|把温暖“爱心餐”送到防疫一线 美团助力天津抗疫
- 一财网|28页文件“上书”英国监管机构 英伟达收购Arm进入最后博弈
- 产业|“抢早”打下第一桩!上海三大先导产业强势开局
- 识别|外卖界又一黑科技 饿了么计划2022年覆盖100000顶智能头盔
- 张江|人工智能岛:洞见未来,高能“岛核”带动周边
- 建设|上海徐汇漕河泾开发区将建“AI公园”
- 架构|一“融”解千愁,SASE因何成为未来网络安全的新范式?