完成任务后,您还会忘记代码吗?[关闭]


13

我是一名新程序员,想问问高级程序员(在现实世界中有一定经验的程序员)。

我做我的工作,编码后,我的项目完成了,但老实说,我不记得代码,类和框架的名称及其属性。

有时,甚至我怀疑自己做了这个吗?

这对所有程序员都是正常的吗?或者我是最不记得代码和类/属性名称的最愚蠢的程序员?

编辑:

我认为许多程序员在这里误解了我的意思。我说过我忘记了框架名称,类名称,属性名称,但是一旦我再次开始使用它,便开始记住自己的代码。我的问题是您还记得语法和类/属性等名称吗?

Answers:


24

老实说,我不知道如果没有“忘记”您编写过的代码的能力,怎么可能成为一个长期的开发人员。项目数量和产生的代码最终将导致纯信息过载。

但是,我认为这种情况是干净,逻辑设计的支持理由。有时候,您必须支持自己的代码。如果您选择了强而有逻辑的编码约定,那么您的熟悉时间将大大减少。另外,从理论上讲,这将减少执行实际维护所需的时间。


我遇到了两个具有照片记忆的编码器,他们可以记住他们在编写某些代码时的想法。由于我的记忆能力低于平均水平,因此在使代码清晰并记录文档方面,我当然被迫尽力而为。
Job

我认为您是对的,只是因为我“忘记了”我可以在3-4个不同平台上编程的代码!
necixy 2011年

9

记住项目的所有语法和api并不比记住构建项目的概念重要。一旦您有经验,就可以阅读代码并找出含义,就像阅读这些文章一样。

如果您不断改进,随着时间的推移,您会发​​现,只要阅读旧代码(我建议您这样做),您就会发现过去编写的缺陷。通过这种做法,变得更加容易。就像其他技能一样

到目前为止,我职业生涯中可能已经编写了超过一百万行代码,而且我无法记住所有内容。我记得那些项目,以及他们试图解决的问题(以及解决这些问题的技术)。


5

使用完后,我会忘记很多东西,但会有所不同。

多年来,我一直在观察自己,得出的结论是我们的大脑(好吧,我的大脑)采用了某种缓存策略:

  • 学习,使用新信息,然后将其放入到期队列。几周后,一切都消失了。

  • 至少在几个月前就学会了重复访问这些信息,从而以某种方式提升了它们,以便可以记住它们几个月,直到它们过期。

  • 在几年的过程中重复访问知识块,以及几个月的使用空缺,将它们提升为某些优先级记忆,并在其中保留了多年。

PS我怀疑对计算机应用程序进行缓存的第一个想法来自观察人类如何学习和记忆事物的人。因此,我们还没有发明任何东西,只是拿走了已经内置的东西。


2

经常。注释已经过时了,但是我发现我通常可以通过注释来识别代码。

编辑:我并不是说我同意这一趋势。我只是说这就是今天的趋势。正如Dave指出的那样,肯定有一个突破点。这里有一个非常精彩的讨论:“注释是代码的味道”。我陷入“评论是为了在代码库之外提供有关世界的信息(需求,业务变更等)”阵营。


评论已通过?只是不正​​确。
史蒂夫

1
哦,我同意;我只是说似乎有一种趋势,认为不应要求发表评论。我采访了一些坚持认为该方法名称应为您所需要的注释的人。显然,它们在神话般的地方工作,而业务需求不会每半年更改一次。
迈克尔·布莱克本

2
我会争辩说,尽管PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation()是描述性的,但由于它破坏了流程,因此还会产生不可读的代码。
Dave Wise

1
同意x100。如果我没有认真记录自己在想什么,以及为什么通过认真措辞的评论做出自己的决定,那么我绝对不知道当我重新阅读几个月前编写的代码时会发生什么。我曾尝试过向建筑宇航员提出这一论点,他们说评论是喧闹的,过时的或过时的,但没人听过。每个人都认为我是个糟糕的开发人员,因为我必须在源代码中编写注释。我可以,但是。它对我和我之后的每个人都有帮助。
科迪(Cody Gray)

@戴夫:虽然我同意你的观点,但你确实有两种责任。您的pen悔是4个Hail Martins和2个GangOfFours。
Michael Blackburn

1

语法我通常记得几次使用。例如,当我第一次开始使用泛型或linq时,我很难正确地使用语法。

IntelliSense无疑使我的工作更容易记住属性和方法名称。


1

当我还是一名测试人员时,该公司的首席开发人员曾告诉我,代码是6个月前编写的,我的任何人都对此不负责。当时让我震惊。现在,我已经成为一名开发人员,我了解。我不记得我曾做过的代码细节,但是细节不存在。


0

几乎总是。我最近的(很小)项目是对自己(生锈)技能的测试。我自己用非常简单的C风格编写了一堆程序代码,然后使用一些设计模式将其重构为Java代码,并且如果可以的话,将每个方法的长度保持在不超过八行。

我把代码放了大约一个月。当我回到书中时,似乎花了一个小时才意识到我已经写了它。坦白说,即使我在评论栏中输入了我的名字,我也不确定它会说服我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.