软件工程

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

11
在商业软件中使用lambda函数\方法是否可以接受?
我注意到这里的帖子演示了使用proxys \ lambda函数来解决中间思想上的漏洞而无需大量重复:http : //www.markhneedham.com/blog/2009/04/04/functional-c中间图案的孔/ 问题似乎是初级开发人员和其他开发人员不一定了解函数指针\委托\ lambda函数概念是什么,这似乎使阅读(并可能调试)代码更加困难。 我们是否应该避免或严格限制在编写商业软件时使用此工具,特别是在小型团队或唯一的开发商商店中? 还是可以在适当的注释中使用它,并期望当我不再使用它时,下一个开发人员将理解或了解lambda函数?
26 lambda 

4
MapReduce不仅是分而治之的应用程序吗?
将问题划分为较小的问题,直到可以独立解决各个问题,然后将它们组合起来以回答原始问题,这就是所谓的分而治之算法设计技术。[请参阅:CLR算法简介] 最近,这种解决计算问题(特别是在非常大的数据集领域)的方法被称为MapReduce,而不是分而治之。 我的问题如下:MapReduce仅仅是依赖于分而治之方法的专有框架吗?还是在某些方面有使其独特的独特之处?
26 algorithms 

9
我对软件工程有错误的想法吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我最近的工作(而不是实习生)提出了一个问题。 只是为了说明背景-我21岁,我已经完成了第二年的大学学习,在此之前,我拥有大约2年的从事系统管理员/质量检查工作的经验,基本上我可以说我已经看到了与众不同IT部门运作。回顾现在,这是我在英国一家主要研究机构之一从事实习工作。 我要做的是使用多种技术(主要是AWS / Java / Bash)创建一些内部工具,您就会明白。一切都很好,我正在做我的工作,但我不高兴。为什么会这样-因为希望我可以临时工作。那就是快速创建事物,而无需花费时间进行设计。我的经理明确表示,希望从出现的问题中“匆忙”解决,而本质上是我们。结果,结果是必须重新做事和重新设计,它们仍然不是完美的。就测试而言-将其保持在最低水平,只要看起来可行,就可以了。 我是否有责任不同意这种工作方式?想对整个系统进行思考,然后关注不同的组件并了解它们如何互操作,将不同的“关键点”归零,这在将来会带来问题,这是错误的吗?做好工作而不是“快速工作”是犯罪吗?想要研究适用于问题的数据结构,以便您可以根据特定问题集选择最佳方案,这是错误还是错误的态度?据我所知,“软件工程”中的“工程”部分与此完全相关-研究您的问题领域并提出一个明智的解决方案,然后根据需要进行改进? 我去过英国某军械库办公室的一次采访,他们给我看了他们的SCRUM室,看起来他们对如何管理他们的项目有很好的主意-他们积压,他们有关于每个人待多长时间的指标这个问题可能需要解决-SCRUM的常规操作-与“在这里”运行的方式完全不同 我对软件行业总体上是否建立了错误的观念?我想听听您的意见。我的意思是说我“进入”软件开发纯粹是因为我想创建简单而简单的东西,但我想创建高质量的东西。我想查看我的软件在各种情况下使用的情况,我想查看它的防弹功能-这不是所有软件工程师的动力吗?我认为每个人都可以通过学习语法来成为一名程序员/编码器,但对我而言,真正的乐趣始于当您实际上不得不提出一种在现实世界中可行的设计时。 我过去只是看大学就直接做编码,然后很容易就获得了75%以上的分数,而且从来没有真正欣赏过“软件开发生命周期”模块。但是现在,当我看到在现实世界中,没有任何正式流程就工作有多么糟糕,以及在明天不知道需求是否会改变的情况下固有的沮丧感(哦,我是否说我们不没有明确定义的需求分析?) 我真的很想相信我刚刚担任的职位,有些人只需要一个代码猴子来完成他们的肮脏工作,而软件世界的运作情况却并非如此。

20
将C#作为第一语言学习是错误的吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我知道这里也有类似的问题,我已经阅读过,但是最近我读了Joel Spolsky的这篇文章: 如何教一个没有编程经验的聪明人,如何编程? 这让我开始思考自己的学习方式,从长远来看是否真的有害。 我已经涉猎各种语言,但是C#是我的第一个认真的语言,我读过“ Head First C#”并创建了一些项目。但是,在阅读了上面的文章之后,我发现我可能全都错了,这让我有些沮丧,很显然,我尊重乔尔的观点,这让我有些不满。 我已经开始按照阅读清单中的建议阅读“代码”,尽管很难过,但我发现它很难。我觉得它已经摆脱了我在Visual Studio中“愚蠢的骇客”的光芒。 所以现在我不确定应该走什么路?我应该退后一步,按照乔尔的建议开始阅读吗? 我想我的主要目标只是像其他所有人一样成为一名优秀的程序员,但是当我尊重的人认为这是有害的时,我不希望通过学习.NET语言而陷入不良实践。 有什么想法吗?
26 c# 

10
如何通过PHP将ASP.NET推销给潜在客户?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我在一家Microsoft商店工作,主要从事Web开发。 我们有一个客户要求我们审查(改进)他的Web应用程序的数据模型,但是他说他想用PHP开发他的应用程序(他知道“谁能做到”)。 当我问他为什么他要使用PHP时,他给了我90年代的一组标准参数: 微软是邪恶的,PHP是免费的 编写ASP.NET应用比较昂贵(在软件方面) 如果这是个坏主意,Facebook为什么会使用PHP?[经典] 他对与使用.NET相关的成本还有更多评论。 事实是,“微软很昂贵”已不再存在,有了它们的“ Express”套件,您可以开发ASP.NET应用程序而无需支付任何软件费用。 关于托管,您可以通过.NET使用PHP节省几美元,但这只是预计开发成本的一小部分(我们引用了10-15k)。 回到我的问题,我会给客户端提供哪些参数以支持ASP.NET而不是PHP?[请提供定量要求的来源]


14
在软件公司工作与专注于另一个领域的公司有什么区别?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 最近,当地一家广告公司向我提供了工作机会。他们正在内部进行所有Web /交互式开发,并增加了他们的开发团队。 我已经厌倦了自己的活泼但乏味的公司工作,并且对此职位感到很感兴趣。 我只在主要业务是生产软件的软件商店工作过,但我担心他们可能不会重视质量软件实践,因为开发不是他们业务的重点。 在软件公司工作与在恰好拥有内部软件开发团队或部门的公司中进行比较/对比的任何人都可以吗?

10
帮助新程序员变得更加熟练,并且不问我那么多?
我目前正在与新程序员一起进行项目。我如何帮助他加快工作速度?他经常问我问题,并且我与他一起在ribs.js(项目的一部分)中编程。 现在,我希望他亲自处理项目,以便我可以专注于其他事情以加快流程。他不想Google的事情或不想在论坛上问问题是否出现。他只是来找我。他应该怎么做?我该怎么办?当我强迫他时,他很快就会做事。我如何激励他自己做更多的工作?

10
我应该花时间学习框架吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 阐明这种情况:我目前是在一家小型启动软件公司工作的两名程序员之一。我的部分工作要求我学习一个我目前不熟悉的Web开发框架。我按小时得到报酬。 因此,问题是:花一天的时间阅读文档和教程并在我不积极开发产品的时候付费,这是否完全合乎道德?还是应该在家里或在其他时间以外的时间里进行大量学习,以便在工作日内更全面地开发我们的应用程序?

3
您会给自由职业者什么建议?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我试图摆脱企业游戏,走向独立。我一直以自己是所有行业的杰作而感到自豪,因此我认为它很适合我。 如果您是自由职业者或独立人士,那么在我踏上这条路时,您能给我最好的建议是什么?

9
为什么要禁用编译器警告?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 这个答案和添加的注释显示了一种使用#pragma指令禁用多个编译器警告的方法。 为什么要这样做?通常,警告的存在是有原因的,我一直觉得它们是很好的理由。是否有应禁用警告的“有效情况”?现在我什么也想不出来,但也许就是我。
26 c#  c++  c  warnings 

5
受雇时对开源软件做出贡献对我来说合法吗?
我在一家大型公司工作,我想保持自己的技能新鲜。我认为为开源项目做贡献会有所帮助,特别是如果我想在创业公司工作的话。我听说,大公司通常拥有在工作以外从事任何开发的员工。我可以在不通知雇主的情况下通过参与开源项目来面对法律后果吗?如果我在受聘期间为开放源代码项目做出了贡献,是否可以将其置于风险之中?如果由于法律原因而拒绝捐款,而我又向另一家希望获得开源开发经验的公司提出申请,那么他们会理解还是将我的申请放入垃圾箱?


12
对代码的情感依恋[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 作为公司的员工,当您编写代码时,您是否觉得自己有附件?您是否觉得自己拥有该代码的所有权?还是您将它写成与它完全分离,而不用担心转移到其他内容之后会发生什么? 编辑:我不是在谈论编写错误的代码,然后运行...

9
注释代码的样式和建议
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 我想听听您在代码中编写注释的任何建议和经验。您如何以最简单,最有用的方式编写它们?注释部分代码时有什么习惯?也许一些异国情调的建议? 我希望这个问题能收集到最有趣的建议和建议,以供大家参考。 好,我开始。 通常,/* */即使我需要注释很多行,我也不使用注释。 优点:与在单行注释中混合使用这种语法相比,代码在视觉上看起来更好。大多数IDE都具有注释选定文本的功能,并且通常使用单行语法来注释。 缺点:没有IDE,很难编辑这样的代码。 在所有已完成评论的末尾放置“点”。 例如: //Recognize wallpaper style. Here I wanted to add additional details int style = int.Parse(styleValue); //Apply style to image. Apply(style); 优点:仅在您完成的注释中放置“点”。有时您可以写时间信息,因此缺少“点”将告诉您您要返回并在此注释中添加一些其他文本。 对齐枚举中的文本,注释参数等。 例如: public enum WallpaperStyle { Fill = 100, //WallpaperStyle = "10"; TileWallpaper …

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.