纵观全局
根据您所处的职业生涯阶段,您可能听说过“了解大局”或“看清全貌”这样的术语。
通常(并非总是)经验不足的人无法理解这一点。这并不是坏事。这是随着经验的积累以及对所用系统的深入了解而产生的。这就是为什么会有经验丰富的同事来帮助和指导你。
我给你讲一个跟我的头像有关的趣事。我用这张照片作为我在 DEV、GitHub 以及所有社交媒体上的头像。
我穿着我的“开发署”(DEV)衬衫,微微抬头望着天空,仿佛在装腔作势,又仿佛在看着某面我本该敬礼的虚拟“开发署”旗帜。照片里你看不到的是,我正承受着巨大的痛苦。我的脚疼得要命,每只脚的几个脚趾上都起了水泡。
我不记得那天为什么决定拍这张照片并将其作为我的个人资料照片,但我确实这么做了。
这时你可能会问,他为什么这么疼?水泡是怎么起的?是长跑造成的吗?还是意外造成的?
等待它...
等待它...
等待它...
这是未裁剪的原图。现在你大概知道那天我的脚为什么会变成那样了吧。
我参加了当地一个大型筹款活动,为一家妇女庇护所筹款,名为“穿上她的鞋走一英里”,参与者真的要穿着高跟鞋走一英里。那么,这一切和软件有什么关系呢?
如果项目组给你一个功能并要求你实现它,不要直接开始写代码。要多提问!除了项目组给你的规格说明之外,还要花些时间认真思考这个功能。
- 这个功能会影响其他功能或代码库的其他部分吗?如果会,这会带来什么影响?这是一个受欢迎的改变吗?还是会造成破坏?
- 此功能是一些近期功能开发的基础(不是YAGNI,即“你不需要它”)。我们应该考虑到这一点,而不是采用这种草率而粗暴的方式发布它。
- 此功能需要更改数据库。这会导致停机吗?
所有假设性的问题和想法都与某个虚构的功能有关,但重点在于跳出功能或错误修复的思维框架。思考整个系统,并思考你的更改将如何影响它。
各位,现在就讲到这里,但在非常痛苦的一英里步行结束后,我会给你们留下一张有趣的动作镜头。