软件工程

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

7
计算机科学属于什么学科?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 是计算机科学,应用数学,工程学,艺术,哲学吗?“其他”? 为了提供背景知识,这是史蒂文·沃蒂克(Steven Wartik)在《科学美国人》上发表的博客文章,标题是“ 我不是真正的科学家,没关系。” 本文涵盖了该问题的一些不错的主题,但开放性远远超出了答案。 如果您能想到该学科,计算机科学将如何适应其定义?计算机科学的学科应该基于程序员的工作还是学者的工作?您从似乎对此有深刻思考的人那里得到什么样的答案?他们给出什么原因?

8
很棒的午餐和学习主题[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 最近,我们为我工作的公司的编程部门恢复了学习午餐。我们都被问到是否对会议有任何想法,以及是否有兴趣进行演示。我有一些想法,涉及各种主题,例如: 设计UI时如何像用户一样思考 或HTML5中的差异 我把一些想法抛在脑后,似乎很喜欢。但是,在深入探讨创建演示文稿之前,我还需要更多想法。 什么是很棒的午餐和学习主题?

10
编译器警告
许多编译器都有警告消息来警告程序员有关潜在的运行时,逻辑和性能错误,大多数情况下,您可以快速修复它们,但是不可修复的警告呢? 您如何处理不可修复的警告?您是重写代码的一部分,还是以“漫长而无用的方式”重写代码,还是一起禁用警告?最佳做法应该是什么? 如果您正在编辑别人的代码并且他的代码有警告,该怎么办? 这是一个很好的例子:由于检测到Mozilla类浏览器,jQuery有很多JavaScript警告,为什么jQ开发人员不解决这些警告?如果您对jQuery有所贡献,您是否会解决它们?
15 compiler 

6
您的团队在不遵循工作方法(例如Scrum)的情况下运作良好吗?
在过去的9年中,我曾在许多小型团队中工作。每个人都有明显的良好做法,例如短期会议,版本控制,持续集成软件,问题跟踪等。 在这9年中,我从未听说过很多开发方法。例如,从来没有过“我们在做Scrum”,“让我们敏捷”,或者是传递引用。所有团队的运作似乎都很好,没有经过很多程序,我们只是自由流动,自然就很好。 有没有其他人长时间进步而没有遇到混乱/敏捷/等问题? 我唯一接触过这些内容的地方就是通过此类网站。我读过诸如Sprint Meetings之类的问题-谈论什么 ...,所有的讨论似乎都描述了几乎机器人,就像遵循方法论有限状态机的人一样。真的(尽管有些夸张)吗?我想知道在互联网上发布的人们是否只是“最佳实践”的拥护者,具有类似的教科书观点,没有真正反映人们的工作方式吗?或者我遇到过一些团队自然地制定自己的流程。 此外(我在英国,这可能是相关的)...我认为,如果将一种方法论引入我要研究的任何团队中,他们只会拒绝它是愚蠢且不必要的...然后上。我倾向于同意,遵循流程似乎有些不自然。这是典型的还是常见的?

9
衡量语言流行趋势的最佳客观方法是什么?(有什么比TIOBE更好?)
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 11个月前关闭。 我知道,获得有关计算机语言流行程度的数据的最佳方法是TIOBE索引。但是每个人都知道 TIOBE毫无瑕疵。(如果有人提供了支持此操作的链接,我将在此处添加它。) 那么,是否有关于编程语言流行度的任何数据通常被认为有意义?我知道的唯一另一种选择是查看确实存在的缺陷,确实基于工作职位的确有误。 好像我不会仅根据索引来决定将来的语言,但是它可以平衡与朋友和同事交谈所获得的偏见。 为了说明这种偏见,我将指出,根据我个人的经验,当今(按流行程度排序)当今专业使用的唯一语言是Java,C#,Groovy,JavaScript,Ruby,Objective C和Perl。(尽管很明显,过去使用了C,C ++和PHP。) 所以我的问题是,每个人都取材于TIOBE,但是还有其他东西吗?如果是这样,谁能解释我们如何知道替代方法具有更好的方法?谢谢。

11
在进行其他操作时,是否应该修复先前存在的缺陷?
难题:在使用新功能或修复缺陷的过程中,您会在代码中发现遗留问题。你该怎么办?对其进行修复,并有可能改变代码的行为。直到现在为止,由于某种偶然原因,它一直在工作,或者还没有发现缺陷,或者值得任何人报告。您是否应该不理会它,并允许该问题使以后的代码难以使用?解决问题只会增加原始任务的时间,并迫使您进行回归测试。很少有人会欣赏这项工作。但是,以某种方式修复它似乎正确。问题较少的代码更易于重构和构建。 当我们致力于使Web应用程序现代化时,我一次又一次地发现自己处于这种情况。当我不切实际地处理这些旧错误时,我无法分辨自己是痴迷还是光荣。您如何处理这些情况? 谢谢,科里

8
面试中的白板“测试”:备份(白板)代码的合法方法?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 据我所知,白板代码中有错误(甚至是错字或“;”错字)通常会花费您一些面试分数。避免这种情况将不可避免地使一个校对代码一次又一次地(浪费时间,并可能浪费神经能量/集中力),甚至使用更简单(因而效率较低)的算法-这两种方法都再次“昂贵”! 因此,为什么不只是快速编写出像拥有一个(单元)测试框架一样又优雅又有效的代码,然后正常地对其进行测试(仅在白板上)呢? 有没有人尝试过/见过这种方法?整个想法值得吗? [当然,这也适用于笔和纸的情况]

2
什么是钩子?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我在各种编程文章中都经常遇到这个术语。但是我不明白它们是什么,以及如何使用它们。所以我只想知道钩子的概念是什么?如果有人可以将我链接到一些示例,尤其是在Web开发的情况下,那将是很好的。

6
您如何组织项目文件夹?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 下午好 我想知道你们如何组织您的项目文件夹? 我曾经有个老板建议我按客户组织。 Projects | |----Customer 1 |---- A Cool Solution 1 |---- source |---- version1.0 |---- version1.1 |---- docs |---- analysis |---- meetings |---- manuals |----Customer 2 |----Customer 3 我的一个朋友告诉我按技术组织时间 Projects | |----.NET |---- C# |---- Customer 1 |---- A Cool Solution 1 |---- source |---- …

13
异步并等待-轮询替代方案
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 既然我们知道了c#5的存储内容,显然还有一个机会可以影响我们由Anders Heijsberg昨天在PDC10上宣布的两个“ 异步 ” 新关键字的选择。 async void ArchiveDocuments(List<Url> urls) { Task archive = null; for(int i = 0; i < urls.Count; ++i) { var document = await FetchAsync(urls[i]); if (archive != null) await archive; archive = ArchiveAsync(document); } } 埃里克·利珀特(Eric Lippert)对当前两个关键字的选择以及在可用性研究中被误解的方式进行了解释。这些评论还有其他一些主张。 请-每个答案一个建议,重复将被取消。
15 c#  naming 

3
具有通用编程支持的第一语言
哪种语言是第一种具有通用编程支持的语言,什么是第一种主要的具有泛型支持的静态类型语言(广泛使用)。 泛型实现参数化类型的概念以允许多种类型。术语“泛型”的意思是“属于或适合于大型类”。 我看过以下提到的“第一”: 一阶参数多态性现在是静态类型编程语言的标准元素。从系统F [20,42]和函数式编程语言开始,这些结构已进入主流语言(例如Java和C#)中。在这些语言中,一阶参数多态性通常称为泛型。 摘自《高级泛型》,阿德里安·摩尔,弗兰克·皮森斯和马丁·奥德斯基 通用编程是一种计算机编程风格,其中,算法是根据以后要指定的类型编写的,然后在需要将其作为参数提供的特定类型时实例化。这种方法由Ada于1983年提出 来自维基百科通用编程

6
演讲者会为技术演讲获得报酬吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我很好奇演讲者(博客作者,Matt Cutts等Google员工)是否可以在会议上发言而获得报酬。如果这样做,多少钱?如果他们不这样做,或者他们得到的报酬太少,就好像他们没有那样,为什么呢?除了金钱以外,还有哪些吸引开发人员进入公众场合的吸引力?

18
在编程中发音?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您如何正确或错误地发音编程术语?您发现需要对早期CS文化进行严格的纠正或有历史吗? 程式设计 char =“ tchar”不在乎吗? ! =砰不惊叹吗? #=磅不算哈希?例外#!= shebang * =摔得痛不是明星? regex =“ rej ex”不是“ regg ex”? sql= “ sq l”不是“ sequel”(已经回答,就是这样) Unixen | =管道不垂直吗? bin = bin与pin一样,而不与bin一样? lib = lib像在库中一样,而不像在解放中一样? etc=“ ett see”,而不是“ et c”(例如,/etc而不是“&c”) 烦恼 / =斜线不反斜线 LaTeX =“ laytek”不是“ lay teks”

9
总体而言:我们将如何维护遗留系统?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 纽约-爆炸使摩天大楼震颤,一条已有83年历史的蒸汽管发出了强有力的信息,即纽约和美国其他城市下方的管道,电线和铁条的英里数正在老化,并且可能变得危险地不稳定。 2007年7月关于曼哈顿爆裂的蒸汽管的故事 我们听说过软件腐烂和技术债务。 我们已经收到以下消息: “鲍勃叔叔”马丁-谁警告过我们“ 弄乱的后果 ”。 迈克尔·C·费瑟斯(Michael C. Feathers)-谁为我们提供了“有效使用旧版代码”的指南。 因此,软件工程界当然可以意识到这些问题。 但是,我觉得我们整个社会都不喜欢这些问题如何困扰工作系统和应用程序。 正如史蒂夫·麦康奈尔( Steve McConnell)所说: ...与金融债务不同,技术债务不那么明显,因此人们可以轻松地忽略它。 如果这是真的,我相信是这样,那么我担心政府和企业可能会推迟对黑客的定期维护和防御,直到为时已晚。[很像纽约市和蒸汽管。] 我的问题: 有没有一种方法可以避免使用等效于NYC和蒸汽管道的软件?

7
如何提倡对私有代码进行单元测试?
我试图在工作组中倡导单元测试,但我经常遇到的反对意见是,它只能用于外部导出的API(这只是我们系统的最小和非关键部分),而不能用于内部和专用代码(现在仅具有功能测试)。 虽然我认为单元测试可以并且应该应用于所有代码,但是我如何说服我的同事?

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.