九居荣欣工作室

逐梦之心不言老 笑看江湖浪涛涛


BRIAN VANDERWAL MAY 5, 2024

想象一下,你的任务是修复一个错误。或者您在实现功能时发现了问题。在没有明显解决方案的情况下,你四处打听,看看是否有人有想法。没有人这样做。或者他们的想法都行不通。看起来你是独自一人。

你潜入并尝试你能想到的一切。几个小时过去了,没有明显的进展。几小时变成几天。最后期限迫在眉睫。你需要一些东西来展示你所有的努力,但没有任何效果。你讨厌这个问题,只想让它消失。现在怎么办?

深吸一口气

你的爬行动物大脑在这里不会帮助你。它提高了你的压力水平,绷紧了你的肌肉,并且通常让你难以思考。深呼吸听起来很陈词滥调,但当你面临压力时,很容易忘记。当时间不多时,似乎唯一的行动方案就是屏住呼吸,直面问题。

一旦你已经做了一段时间,仅仅喘口气并试图“理清思路”可能还不够。相反,试着暂时将你的注意力转移到其他事情上。看看你能不能在休息室的填字游戏上填写几个方块。

对某人说话

即使你没有一个可以积极配对的人来解决问题,通过它说话也可以帮助你自己的大脑处理事情。一个好的倾听者可以是一个人、一只橡皮鸭或你选择的聊天机器人。

聊天机器人正在迅速取代搜索引擎来解决深奥的编程问题。虽然搜索 Google 或 StackOverflow 取决于其他人是否经历过(并解决了)同样的问题,但聊天机器人通常可以更快地为您提供更直接的答案。即使机器人不能立即解决您的问题,它至少会为您提供一些尝试的想法,这是值得的。

获取更多信息

一旦你用尽了所有最好的猜测,就很容易陷入尝试任何事情的蛮力循环中。这种在黑暗中刺伤有时会奏效,但大多数时候,你需要更多的信息。

错误复制中是否存在一些似乎不可能的行为?尽可能多地添加日志记录,以便拼凑出正在发生的事情的全面图片。或者暂时删除代码,直到问题消失以缩小原因范围。

系统的某些方面是你不太熟悉的吗?值得花一些时间来了解与手头问题最相关的系统部分。即使代码本身是可读的,在脑海中保持复杂系统的地图也很困难。画一张图表来帮助自己记住重要的部分。从源代码生成函数调用树等图形的工具很简洁,但通常包含太多的噪音,实际上没有用。

阅读文档

阅读文档是乏味的。而且,当您现在需要解决这个问题时,很难考虑花费数小时仔细研究文档。但是,除非你是手头工具/框架/语言的专家,否则你的知识会有差距。答案可能就藏在这些缝隙中。

阅读文档的价值怎么强调都不为过,尤其是当你陷入猜测和检查的循环中时。令人讨厌的是,问题的解决方案经常是一个我从未想过要寻找的配置设置。

“给我六个小时砍一棵树,我会用前四个小时磨斧头。”——通常被认为是林肯说的。

花一些时间巩固您对围绕问题的领域的理解。这样你就更有可能在不猜测的情况下解决问题。您还可以更轻松地理解您在调查过程中观察到的任何内容。

保留日志

如果你不记得你尝试过什么,或者你已经解决了哪些子问题,那么找到解决方案将需要更长的时间。想办法记录你的进度。保留有关您尝试过的内容的详细信息,尤其是复制任何错误消息的确切文本。当您不可避免地不得不回溯并尝试不同的东西时,您可能会再次面临相同的错误。

如果我正在解决代码问题,我喜欢在 Git 中进行“检查点”提交。这些很像 WIP(正在进行的工作)提交,但往往更精细。检查站就像一个岔路口,如果我走到死胡同,我可能会回到这里。如果我要放弃我刚刚写的一堆代码,我会确保它首先在检查点中被捕获。部分代码最终可能仍然有用,很高兴有我尝试过的内容的参考。

回到中心

定期提醒自己您要解决的原始问题。几个小时后,你可能会意识到你已经走了几条兔子的踪迹,完全被困在杂草中。但是到达那里可能会给你一些新的信息来解决原来的问题。花点时间集思广益,看看接下来要尝试什么。你甚至可能意识到你一直在试图解决错误的问题。


联系我们

QQ群:745044669