软件工程

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

5
ReSharper对编码面试的影响[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 任何使用过R#或CodeRush的人都知道,您可以通过简单的键盘快捷键将简单的结构(并重构复杂的结构)组合在一起有多快。但是,这些生产力插件在面试过程中是否会导致对能力的错误评估? 成为高效的代码编写者(并在面试中留下良好的第一印象)的一部分是快速地编写出色的代码。 如果我有两个候选人: 不使用插件。她考虑了这个问题,坐在面试PC上的一个股票IDE上,看上去和她完全一样,并且像往常一样在一两分钟内输入了代码。做完了 通过。 使用插件。他考虑了这个问题,坐在采访PC上的一个股票IDE上,意识到“ fe + tab”不再自动编写一个foreach循环,所有快捷方式都消失了。然后,他在键盘上大跌眼镜,敲了一下正常的热键,弹出了奇怪的窗户,心慌。他花了3分钟才能写出通常需要30秒的内容。做完了 看起来他们有时不知道如何绕过IDE。必须是该IDE的新手,因此对它或语言没有太多经验。通过,但名字旁边有“ meh”标记。 根据您的经验,在面试过程中您如何以面试官或被采访者的身份处理插件?获得候选人真正了解的最佳实践是什么?可能有一些候选人不懂代码,而将R#用作拐杖。也可能有一些候选人知道进出代码并使用R#,因为它比内置VS或Eclipse模板快得多。最好是根本不使用IDE?让他们带上自己的电脑吗?其他?

4
什么时候应该读“代码完成”?
我很确定,Who但是什么时候? 是一位精通编程和软件开发知识的人,还是仅仅是网络(准确地说是编程)领域的初学者? 我现在正在说服单身汉,什么时候对我(和像我这样的人)来说更适合阅读这本《程序员必读 》?

8
Systems Hungarian的吸引力是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在什么命名规则,你跟着?,作者说: 另外,我更喜欢使用Charles Simonyi的匈牙利符号进行编码。 我碰到过一些仍然喜欢使用匈牙利语的程序员,大多数都是Petzold / Systems匈牙利语风格的。想想dwLength = strlen(lpszName)。 我已经阅读了使代码看起来错误的代码,并且了解Apps Hungarian的基本原理,其中变量名中包含域类型信息。但是我不理解将编译器类型附加到名称中的价值。 为什么程序员仍然坚持使用这种样式?只是惯性吗?有什么好处可以弥补可读性下降的困扰吗?人们在阅读代码时是否只是学会忽略装饰器,如果是的话,他们如何继续增加价值? 编辑:很多答案都在解释历史,或者为什么它不再相关,在我引用的文章中都涵盖了这两个问题。 我真的很想听听仍然使用它的任何人。为什么使用它?是否符合您的标准?如果不需要,您会使用吗?您会在新项目上使用它吗?您认为优势何在?

9
Scrum对于开发人员本身的优势?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 Scrum是一种项目管理方法,您如何将其“出售”给对当前状况相当满意的团队中的开发人员? 对我来说,向我们的产品经理解释Scrum如何使他能够定期发布,修改需求并让团队首先专注于高优先级的故事似乎很容易。我发现很容易解释TDD或持续集成在开发人员的日常生活中带来了什么。 但是,如何说服开发人员接受Scrum?Scrum如何使他们的生活更轻松?
18 scrum 

15
面向对象编程是复杂性的解决方案吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 您是否认为面向对象编程是解决复杂性的一种方法。为什么?这个话题可能有点争议,但是我打算从这里的专家那里了解“为什么”的答案!

9
“绷带”修复有多普遍?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 想象以下情况: 您已经检测到您的(或其他人的)程序存在错误-给定特定输入时,函数产生错误的结果。您检查了一下代码,找不到任何错误:输入该命令后,它似乎就会陷入困境。 您现在可以执行以下两项操作之一:您可以进一步检查代码,直到找到实际原因为止;或者 或者您通过添加一条if语句检查输入是否是此特定输入来打绷带-如果是,则返回期望值。 对我来说,使用绷带是完全不能接受的。如果代码在此输入上的行为异常,那么您错过的其他哪些输入会对它产生奇怪的反应?这似乎根本不是一个解决办法-您只是把问题抛在了脑后。 由于我什至不考虑这样做,我对教授和书籍经常提醒我们有关如何使用“绷带”修复方法不是一个好主意感到惊讶。因此,这使我感到奇怪:这些“修复”到底有多普遍?

8
从基于控制台的编程过渡到基于GUI的编程时,主要区别是什么?
我和其他许多人一样,都是从基于控制台的(例如在终端中,而不是在Playstation中)开始编程的。但是迟早,无论您是否愿意,都需要接触基于GUI的编程。这种过渡使您需要考虑前端(以及后端)的方式发生了许多变化。 那么,从基于控制台的编程过渡到基于GUI的编程时,主要区别是什么?
18 gui 

8
“哥德尔,埃舍尔,巴赫”今天仍然有效吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我刚刚完成了有关可计算性和逻辑的课程,这是一个有趣的课程。讲师在他的幻灯片上推荐了几本书,其中包括“哥德尔,埃舍尔,巴赫”。我可以看到这本书非常有名,并且看起来很有趣。但是关于它的内容,我有几个问题要问。 内容今天仍然有效吗?我想大多数理论上的事情不会在一夜之间发生变化,但是有什么要注意的主要观点今天不再存在了吗? 我认为在过去30年左右的时间里,我们实际上已经取得了一些进展。你们中的任何人都可以推荐一本包括该进展(逻辑,人工智能,可计算性)的书吗? 另一个问题:我是否需要了解埃舍尔和巴赫?

11
您应该为继任者留下什么?
假设您是唯一一名辞职的开发人员。您应该在代码本身之外创建什么样的信息/材料并留下来替换? 显而易见的答案是“肯定会想得到一份新工作”,但是距我开始新工作已经有一段时间了,而我忘记了当时最需要的最重要的东西。 我在想: 帐号/密码 设备,备份,软件CD的位置 还有什么?

7
每个函数是否有最佳的代码行数?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 函数不仅用于最大程度地减少代码重复,而且还用于将长函数拆分为较小的函数以提高可读性,并使代码具有自注释性。但是,这种增益与每个函数或方法的LOC数量并不成反比;否则,我们将拥有大量功能,所有功能仅包含一行或两行代码。 这使我想知道:每个功能是否存在最优数量的LOC?如果是这样,那是什么,它在语言之间是否有差异?
18 functions 

8
什么构成了无效的编程语言?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 想象一下,您当选为IEEE或类似机构的死因裁判官,而您不得不说一种编程语言已经死了。您会寻找什么迹象?是否有不知道它们已经死了的僵尸语言?
18 languages 

12
带注释的简短代码与无注释的较长且易于理解的代码-哪个是首选?
有时可以用两种方式编写算法: 一种简短的幻想方式;要么 更长的,易于理解的方式。 例如,这是一种将字符串复制source到destC中的更长,更简单的方法: *dest = *source; while (*source != '\0') { source++; dest++; *dest = *source; } (true); 这是一种简短的幻想方式。 // Copy string source to dest while (*dest++ = *source++); 我一直听到并读过,应该避免使用花哨的代码,我倾向于同意。但是,如果我们考虑到评论该怎么办?假定像上面的示例一样,我们有一个未注释的,较长的并且据说更易于理解的代码,以及一个注释良好的,简短的,精美的代码?非花哨的代码还是首选吗? 编辑:许多人对变量名发表了评论,所以我修改了示例代码,以免在优先选择其他变量时使它成为一个因素。我试图在第一个示例中删除双重分配,但这只会使代码的可读性降低。 也许这不是最好的示例,因为许多人发现“花哨的”代码比较长的代码更具可读性和可理解性。这个想法是要有一个更长的代码,比一个简短但复杂的代码更容易理解。 EDIT2:这是我从SO获得的一个新例子: 评论版本: //direct formula for xoring all numbers from 1 to N int Sum = (N & …

6
为什么没有客户端HTML包含标记?
前几天,另一个程序员向我提出了一个问题。我记得(很久以前)想知道同样的事情。 为什么从不考虑浏览器端的include标签?还是吗? 特别是带有指示浏览器包含其他来源的HTML的标记。例如<include src="http://server/foo/bar.html">。innerHTML当浏览器可以完成javascript引擎外部的调用时,许多人会进行javascript调用并填充以完成相同的操作。 嵌套<HTML>s 会很痛苦,<BODY>但是无论如何我们都必须考虑这个方面。
18 history  html 

9
代码格式准则有多重要?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 编码标准在任何软件开发组织中都很常见,但是遵循这些标准有多重要?我可以理解需要一些一致性,但是当处理简单的事情(例如花括号的位置,行长等)时,我不确定过于严格的标准会对软件开发做出很大的贡献。 您的代码可读性不是更重要,不符合预先定义的标准吗?无论如何,它们似乎更像是……准则。

20
IDE可以通过代码带来的最令人印象深刻的技巧是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 现代的IDE有很多技巧可以帮助编写代码,重构和搜索。所有这些都非常有帮助,但是几乎没有一个看起来像真正的“魔术师”,让我觉得“哇!它是如何解决的?” 您能否命名任何令人印象深刻的IDE代码自动化(或其他)功能,这些功能在您第一次看到它们时就大为震惊?
18 ide  automation 

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.