当你遇到棘手的问题时你会怎么做?

时间:2009-08-31 23:56:39

标签: theory

当您遇到一个难以解决的编程问题时,您会怎么做,而您还不知道? 通常,你最后如何解决它?

备注: 有人可以介绍解决问题的方法吗?

7 个答案:

答案 0 :(得分:19)

如果可以的话,我会暂时搁置一段时间。当我最不期望的时候,解决方案通常会突然出现在我脑海中。 (如果我们总是有等待的奢侈 - 通常我们不会。)

编辑:另一个非常有用的事情是向其他人描述问题。即使他们无法帮助,向不熟悉问题的人解释它的行为也常常会澄清你的想法。有时你会直接找到解决方案,而不会让对方说一句话。 8 - )

答案 1 :(得分:4)

我只是想一下铅笔和纸。

  • 将其细分为每个部分
  • 看看我知道哪些部分
  • 研究部分我不
  • 全部放在一起
  • 利润

对我而言,诀窍是将其分解为可管理的位。

- 编辑

我必须同意以上关于与别人交谈的海报。即使你没有任何人可以与之交谈,也可以将它解释为一个蓬松的玩具,答案往往会变得很明显。

答案 2 :(得分:3)

我发现使用白板向其他人解释问题非常有用。

答案 3 :(得分:1)

有时我会搜索Stack Overflow以查看是否有人遇到过相同或类似的问题;如果他们没有,我有时会发一个问题。

答案 4 :(得分:0)

“Peopleware”这本书以一种很好的方式表达了它,尽管它是一个不同的背景,但也适用于此。

  

他们写道,经理的职能是   不是让人们工作而是为了成功   人们可以工作。

在这种情况下,您是自己的经理,所以由您决定是否可以自己工作。如果你遇到困难,那么你需要倾听自己......为了开始解决它你需要什么。

对我来说,可能是项目中的一个主要类别名称错误且不够优雅。为了以优雅的方式解决问题,需要首先解决这些问题,否则它将最终成为半生不熟的解决方案。

10美分

答案 5 :(得分:0)

对于许多问题,编写单元测试可能有所帮助。分解(如丝般暗示)并尝试为各种作品编写测试。然后编写代码以使测试通过。查看有关TDD的一些文献。

编写一次性“尖峰”代码也是找出新事物的便捷方式。

答案 6 :(得分:0)

嗯,这取决于问题的类型,是否是你可以研究的东西。对于你不能做的事情,通常是特定的设计问题,我有问题同时记住所有因素,我发现有两种方法可以很好地运作:

  • 摆脱所有可能的干扰(电脑,电话,人),例如找一个空的会议室。拿起笔和纸,绘制问题所涉及因素的自由格式图;有时桌子也很好用。我发现能够在没有分心的情况下集中注意力和图形表示通常使我能够找到解决方案。
  • 对于真正难以解决的问题,请睡一觉。也许那只是我,但是当我在睡着之前想到处于半昏迷状态的某些事情时,我有时会想出最好的想法 - 奇怪的是,我可以在早上记得它们。