软件工程

针对在系统开发生命周期中工作的专业人士,学者和学生的问答

10
是更好的Show()+ Hide()或SetVisible(bool可见)?
有什么更好的,为什么?(从界面设计的角度来看): a)具有两个Show()和Hide()函数 b)具有一项SetVisible(bool visible)功能 编辑:例如,某些对象具有可见性状态,并且可以使用此功能对其进行更改。 c)向有三个Show(),Hide(),SetVisible(bool visible)功能
59 java  c++  interfaces 

16
为什么在布尔值变量上使用!boolean_variable == false
关于此问题的评论:检查方法是否返回false:将结果分配给临时变量,还是将方法调用直接置于条件中?说应该在测试条件时使用!boolean而不是boolean == false。为什么?对我boolean == false来说,英语更加自然,也更加露骨。抱歉,这仅是风格问题,但我想知道是否还有其他原因导致这种偏好!boolean?

9
std :: shared_ptr作为最后的手段?
我只是在观看“ Going Native 2012”流,并且注意到有关的讨论std::shared_ptr。听到Bjarne std::shared_ptr对此持否定态度,以及他的评论是当物体的寿命不确定时应将其用作“最后手段”时,我感到有些惊讶(我认为,他认为这种情况很少见)。 有人愿意进一步解释这一点吗?我们如何std::shared_ptr在没有安全的情况下进行编程并仍然可以安全地管理对象的生命周期?


24
如何解释NULL和零之间的区别?
处理使用百分比变化公式的问题: percent change = 100 * [(new value - old value) / old value] 如果对new value or old value = NULL,而不是0对可能不是程序员的人,我该怎么解释? 我的老板想知道为什么TextBox中有一个空字符串而不是一个值,因为我们有旧值,但是没有新值。
59 null  tsql 

12
我应该重用变量吗?
我应该重用变量吗? 我知道许多最佳实践表明您不应该这样做,但是,稍后,当不同的开发人员调试代码并具有3个看起来相似的变量时,唯一的区别是它们是在代码中的不同位置创建的,困惑。单元测试就是一个很好的例子。 但是,我确实知道,最佳实践通常都是反对的。例如,他们说不要“覆盖”方法参数。 最佳做法甚至是反对使以前的变量为空(在Java中,Sonar会在您分配null给变量时发出警告,因为Java 6不需要调用它来调用垃圾回收器。您无法始终控制哪些警告已关闭;大多数情况下默认设置为开启。)

15
在当前的软件行业中,多线程有多重要?[关闭]
我有将近3年使用MVC框架(如struts)用Java编写Web应用程序的经验。尽管我已经为大型零售连锁店编写了代码,但到目前为止,我从未编写过多线程代码。 在面试过程中,我会遇到一些有关多线程的问题,我通常会回答它们(大多数是简单的问题)。这让我想知道在当前的行业场景中多线程有多重要?

13
未定义行为背后的哲学
C \ C ++规范为编译器以自己的方式实现提供了许多开放的行为。这里经常有很多问题被问到同样的问题,并且我们有一些很好的帖子: https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer-should-know-abo https://stackoverflow.com/questions/4105120/what-is-undefined-behavior https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points 我的问题不是关于不确定行为是什么,还是真的不好。我确实知道该标准的危险和大多数相关的未定义行为引用,因此请不要发布有关该标准有多严重的答案。这个问题是关于为编译器实现留出许多行为的背后的哲学。 我读了一篇很棒的博客文章,指出性能是主要原因。我想知道性能是否是允许它的唯一标准,或者是否有其他因素会影响将事情开放给编译器实现的决定? 如果您有任何示例可以引用某个特定的未定义行为为编译器提供足够的优化空间,请列出它们。如果您知道性能以外的其他因素,请提供足够详细的答案。 如果您不理解该问题或没有足够的证据/来源来支持您的答案,请不要发布广泛猜测的答案。

11
什么时候提交代码?
当在项目上工作时,可以在几天或一点点的时间内,以相当快的速度开发代码,并持续数周/月/年。随着代码提交已被视为衡量项目开发的标准,这并不意味着编写的代码要比提交次数少的项目多。 所以问题是什么时候真正对存储库进行提交,以便提交是合理的? 作为附加组件:根据提交的数量来衡量项目的开发是否正确?

12
计算机如何工作?[关闭]
这真是令人尴尬的问题...我拥有计算机科学学位(第二个学位正在进行中)。我已经担任全职.NET开发人员近五年了。一般来说,我似乎能胜任我的工作。 但是我不知道计算机如何工作! 拜托,让我呆一秒钟。快速搜索“计算机的工作原理”会产生很多结果,但是我很难找到一个真正能够满足我所寻找内容的工具。我意识到这是一个巨大,巨大的问题,因此,如果您能给我一些关键词或一些指导,那么我是真的。 我知道有组件...电源,主板,内存,CPU等...,我对它们的工作有一个“总体思路”。但是我真的不明白您如何从Console.Readline().NET(或Java或C ++)这样的代码行中真正地完成工作。 当然,我隐约意识到MSIL(对于.NET),并且JIT编译器发生了一些魔术,它变成了本机代码(我认为)。有人告诉我Java很相似,而C ++削减了中间步骤。 我已经完成了一些大型机的组装,这是几年前的事了。我记得有一些指令和一些CPU寄存器,我写了代码。。。然后发生了一些魔术。。。我的程序可以运行(或崩溃)。据我了解,“仿真器”将模拟您调用指令时发生的情况,并会更新CPU寄存器。但是,是什么使这些指令以它们的方式起作用? 这会变成电子问题而不是“计算机”问题吗?我想我没有任何实际的理由来理解这一点,但是我觉得我应该能够。 (是的,这就是当您带一个小孩花一天时间时发生的事情。花了他们大约10分钟的时间和五次反复的问“为什么?”,您才意识到自己不知道多少)

8
人们为什么禁用JavaScript?
我昨天问了一个问题,我应该为JavaScript禁用而烦恼吗?。我认为共识是:是的,我应该为JavaScript Disabled开发。现在,我只想了解为什么用户禁用JS。似乎许多开发人员(我想回答问题的人都是开发人员)都禁用了JS。这是为什么。用户为什么禁用JS?为了安全?速度?要不然是啥?


17
为什么使用OO方法而不是巨大的“ switch”语句?
我在.Net,C#商店工作,并且我有一位同事一直坚持认为,我们应该在代码中使用带有大量“案例”而不是更多面向对象方法的巨型Switch语句。他的论断始终可以回溯到以下事实:Switch语句会编译为“ cpu跳转表”,因此是最快的选择(即使在其他情况下,我们的团队被告知我们不在乎速度)。 老实说,我对此没有争议……因为我不知道他在说什么。 是吗 他只是在说他的屁股吗? 只是想在这里学习。


17
如果是块,则使用单个语句-大括号或否?[关闭]
哪个更好/更普遍被接受? 这个: if(condition) { statement; } 要么: if(condition) statement; 我倾向于第一个,因为我认为它可以更容易地判断if块中的实际内容,它可以避免其他人以后添加花括号(或忘记创建错误),并使所有if语句统一,而不是一些带有大括号,而另一些则没有。但是,第二个在语法上仍然是正确的,并且绝对更紧凑。我很好奇,尽管看到哪个更受其他人青睐。

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.