自从我开始担任入门级软件开发人员以来,已经有几个月了。现在我已经通过了一些学习曲线(例如语言、行话、VB和C#的语法),我开始专注于更深奥的主题,比如编写更好的软件。
我向同事提出了一个简单的问题,回答是:“我把注意力集中在错误的事情上。”虽然我尊重这位同事,但我并不认为这是一件值得关注的“错误的事情”。
下面是代码(在VB中),然后是问题。
注意:函数GenerateAlert()返回一个整数。
Dim alertID as Integer = GenerateAlert()
_errorDictionary.Add(argErrorID, NewErrorInfo(Now(), alertID)) 相对于..。
_errorDictionary.Add(argErrorID, New ErrorInfo(Now(), GenerateAlert()))我最初写了后者,然后用"Dim alertID“重写了它,这样其他人可能会发现它更容易阅读。但我的担心和问题是:
如果用Dim AlertID写这个,它实际上会占用更多的内存;有限但更多,这个方法应该被多次调用吗?它会导致问题吗?.NET将如何处理这个对象AlertID。在.NET之外,应该在使用后手动释放对象(在子的末尾附近)。
我想确保我成为一个知识渊博的程序员,而不仅仅是依靠垃圾收集。我是不是想太多了?我是不是把注意力集中在错误的事情上了?
发布于 2012-07-10 17:19:26
“过早的优化是编程中所有邪恶(或至少大部分)的根源。”-唐纳德·克努斯
当涉及到您的第一次通过,只需编写您的代码,以便它是正确和干净的。如果稍后确定您的代码是性能关键的(有一些工具可以确定这个称为分析器),则可以重写它。如果您的代码没有被确定为性能关键,那么可读性就更重要了。
值得深入研究这些性能和优化主题吗?当然,但如果没有必要的话,也不能用贵公司的钱。
发布于 2012-07-10 17:22:00
对于你的普通.NET程序来说,是的,这是过度思考。在某些时候,您可能会想要深入了解.NET内部到底发生了什么,但这是相对罕见的。
我遇到的困难之一是从使用C和MASM切换到90‘年的经典VB编程,我习惯于优化所有的大小和速度。我不得不放弃这种想法,让VB去做它的事情,以使其有效。
发布于 2012-07-10 17:27:19
正如我的同事常说的:
换句话说,永远记住亲吻(保持简单愚蠢)。因为过度工程,过度思考某些代码逻辑可能是下一次改变逻辑的一个问题。然而,保持代码的整洁和简单总是很好的实践。
但是,根据时间和经验,您将更好地了解哪些代码会有哪些气味,并且很快就需要进行优化。
https://softwareengineering.stackexchange.com/questions/156290
复制相似问题