很多次我忘记了有关我的应用程序的事情。我不记住表名或查询的内容,而是搜索得到想要的东西。我的团队负责人告诉我,我应该记住我使用的表名。
开发人员是否需要记住数据库中的表名,类名等?如果答案是“一直是”,我该怎么做才能记住那些事情?
很多次我忘记了有关我的应用程序的事情。我不记住表名或查询的内容,而是搜索得到想要的东西。我的团队负责人告诉我,我应该记住我使用的表名。
开发人员是否需要记住数据库中的表名,类名等?如果答案是“一直是”,我该怎么做才能记住那些事情?
Answers:
您无需明确记住这些内容。我的意思是坐下来学习它们,就像您要进行拼写测试的单词列表一样。在第一种情况下,名称应易于记忆和发现,以便您无需花费太多精力即可再次找到它们。
您还应该可以使用一些工具来帮助您完成自动完成等工作。
在一个由100多个表组成的大型系统中,您无法真正记住每个表名和每个列名,但是,凭借令人难忘,可发现的名称和常规用法,您应该会记住最重要的细节,而您使用的每个细节天。
爱因斯坦说:“永远不要记住你可以在书本上查找的内容”,我完全同意。
将您的记忆用于抽象的东西(开发技术和原理),而不是需要时可以找到的事实。
令人尴尬的承认-我已经使用C已有30年了,但是却不记得如何声明函数指针-我总是必须退出K&R来检查语法。
更尴尬的是,我必须认真思考typedef的工作原理-是:
typedef foo int;
要么
typedef int foo;
这些是我个人的盲点。如果您有类似的产品,我也不会担心。
记忆很重要
强大的记忆力确实是开发人员可以拥有的顶尖人才之一。实际上任何人都可以拥有。这确实是一件特别的事,我羡慕和钦佩那些幸运的人。它绝对可以帮助一个人成为一个更强大的开发人员,律师,机械师,或者(在此处插入选择的工作)。
应该需要多少?
但是我认为要求记住所有事物并不是一个公平的要求。我确实相信您会开始将事情作为做事的自然部分来进行记忆。这就是为什么读一本关于语言的书并在生产环境中使用它不是一回事的原因。当您每天处理某些事情(有些人称之为“练习”)时,您将开始使某些事情成为第二天性。
与其他海报一样,我相信记住应用程序的关键部分确实有帮助。但是,当您可以利用智能感知等功能(在现代工具中越来越常见)时,我不确定要花多少钱来记住所有这些投资是否值得。
您如何改善?
我不是记忆专家,但有些人认为您确实可以通过脑力锻炼(填字游戏,数独游戏,拼图游戏等)来提高记忆力。从理论上讲,您的大脑就像一块肌肉,如果您以不同方式使用它并进行锻炼,那么您可以增强它。
有趣的是,研究关于做脑游戏,编程和互动活动等事物如何随着时间影响大脑的研究。这样的事情能否帮助对抗因年龄或痴呆症而引起的记忆力减退的发作?
我来自哪里,有句老话,用英语是这样的:“一个笨蛋会记住,一个聪明的人会写下来”。基本上,无论您的记忆力如何,您都会忘记。你只是人类。结果,这使得依赖人类的记忆……非常不可靠。即使您认为自己记得这些表名,也可以100%确定吗?您只需要几秒钟即可查找表名,但可能需要数小时甚至数天来查找由拼写错误引起的错误。
总之,不,这是一个荒谬的要求,尤其是在大型项目中,因为该项目可能具有数千个表和类。
如果您正在从事某项工作并且是一项长期任务,那么可以,您应该努力学习并能够记住各种表和列名,类,变量和方法。当您与他们一起工作时,这会随着时间的流逝而发生。您不会一overnight而就地学习它们,但您应该努力尽可能多地了解正在使用的系统。此外,在大型系统中,您不可能记住所有内容,但是没有理由不去学习和记住尽可能多的内容。
始终必须查找所有内容只会提高生产力-如果您正在执行任务并且每隔几分钟必须停止并查找所有内容,那将是专心的休息。使用适当的工具为您提供帮助,并了解/记住您的能力。它将大大提高您的生产率。
除了强大的内存以外,对领域有很大帮助的还有域驱动设计,并遵循简单的约定,例如表名和类名相同。如果您的企业主与您讨论此要求,则代码中应包含其使用的特定领域术语。在这种情况下,我们不必记住代码中业务术语和名称之间的映射。这个习惯需要一段时间才能被接受,但是它非常有用,因为它还可以减少业务所有者和开发人员之间的来回翻译错误。
如果项目持续时间很长,那么在一段时间内熟悉代码库将在潜意识中帮助您记忆。
domain driven design
吗?