6

现在,我非常沮丧,因为我正在开发一些很酷的机制来优化计算系统,将计算数量从大约 50 万减少到几千。我花了很多时间检查和分析数据,写下来,做一些测试,总的来说只是做我的工作。然后我们开了一个项目会议。我已经解释了我想要做什么,需要多少时间以及它可以在多大程度上改进项目,甚至可以创建新功能。然后决定在下一个截止日期之前完成这一切的时间太长了。(如果我被允许继续,则必须延长截止日期。)快速的头脑风暴清楚地表明,有一个简单的解决方法可以代替,

嗯,艰难!

好的...我刚刚把挫败感写下来了。现在的问题...我现在脑子里有了整个设计。其中大部分只是示意图和带有手写文本的论文,一些打印输出,甚至是SO这里的一些问题。这些想法会被冻结一段时间,但我需要在未来再次记住它们。我可以抽出一天,也许两天来清理笔记并开始记录事情。

所以我需要关于如何在例如 4 个月后最好地记住我的设计的建议。或者甚至可能是一年后……最重要的是要写下什么?还是文件?(考虑到我的时间很短......)有什么建议吗?

为什么?否则我会在四个月后再次感到沮丧。:-)

4

5 回答 5

7

以我的经验,旧设计在掸掉灰尘后总是显得陈旧。在接下来的几个月里,现有的代码会发生变化,需求也会发生变化,而你作为程序员也会发生变化。也许您应该写一个简短的解释,并假设您将来无论如何都需要完全修改它。

不要对特定项目感到沮丧,将精力集中在作为开发人员的改进上。并随身携带这种体验。

于 2009-09-02T12:20:39.000 回答
3

这取决于什么对你有用——以及你喜欢如何学习。我喜欢使用图表,所以在我设计了一个很酷的算法的情况下(尽管没有这么复杂!)我做了以下事情:

1)在纸上画出算法,或者写出来。

2)为其添加注释,使其对您完全有意义。

3) 仅根据您绘制的内容向其他人描述该算法。这会阻止您根据自己对算法的了解来填补空白。

4)如果你的描述有空白,你可以添加额外的细节,这样文档就成为你描述的全面记录。

5) 把这幅画放一个星期,看看它是否仍然有意义。在这一点上,它应该仍然足够熟悉,可以添加缺失的细节。

它是否会在一年内变得足够清晰——或者你是否甚至想使用它——还有待观察。

希望有帮助!

于 2009-09-02T12:26:08.813 回答
2

就挫折感而言 - 通常尝试将项目视为旅程而不是目的地。

如果你一直在关注,那么迄今为止,你会从项目中收获很多——你学到了有关技术和业务的知识,创建了可以重用的代码模块,你将与团队成员建立关系或用户,犯了你不会再犯的错误等等。它可能对您个人有所帮助,列出您现在知道的内容,而您在项目开始时并不知道。

最终,公司可能没有实施该项目,但作为个人和开发人员的大部分收益仍然存在。确实,与事情如梦如幻的情况相比,您通常会在出错的项目和不太好的公司中学到更多。

与其他生活一样,您从日常事务中获得的满足感越多,您越不专注于重大成就,您就会越快乐。

我并不是说交付项目不好——这显然是我们编码的原因——但这并不完全在我们的控制范围内,所以你需要现实和平衡你让它对你产生的影响。

(乔尔或杰夫写的东西的强制性链接:http: //www.codinghorror.com/blog/archives/001297.html

于 2009-09-03T08:34:27.010 回答
1

如果您曾经找到过解决方案,那么您很有可能会在相同问题的 4 个月后找到解决方案。你不能错过的是实际问题。

您应该记下所有作为问题来源或实际问题的优化问题。您必须整齐地记录这些问题。

现在,下次[说 4 个月后] 当你想再次回到这个时。你只需要从你的笔记中阅读问题,你的大脑就会像以前一样开始朝着直接的方向工作。

为了使它更好,您可以尝试在一两个月内浏览一次问题说明。这将训练你的大脑去解决问题,因为你每次都会像第一次那样得到解决方案。

此外,如果你能写下真正激励你为解决方案而奋斗的问题或担忧,那就太好了。

于 2009-09-03T08:57:19.230 回答
1

描述所有输入和输出的详细需求文档可能是最好的入门方法之一。如果它是一个非常独特的代码设计,元代码可能是一个很好的步骤。IE。

[Meta Object]

     [Return String(string param1, string param2)]

        Return param1 + " " + param2

     [Return Integer(integer param1, integer param2, integer param3)]

        Return (param1 + param3) / param2

[End Meta Object]

让它看起来与您的语言相似,无需测试或任何东西,只需将理论上的 logc 放到纸上(记事本),这样当/如果您不得不回到它时,您就有了一个跳板......然后记录日光出它。

于 2009-09-02T12:26:57.833 回答