软件工程

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

4
Qt的危险之处是什么?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 阳光下没有完美的事物。Qt也不例外,它也有局限性:我们不能在GUI以外的线程中使用像素图,我们不能使用每通道16位图像格式的QImage等。 由于Qt的限制,哪些情况迫使您破坏了设计? 最讨厌的怪癖是什么? 在项目中使用Qt时应避免哪些设计决策?

3
是否正在逐步淘汰Objective-C ++?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 苹果是否正在逐步淘汰对Objective-C ++的支持?请注意以下几点: 在Objective-C语言手册中,曾经有一节介绍了Objective-c和c ++的混合。该部分现在丢失了。 链接在苹果开发者网站上的Objective-C ++文章似乎被打破,现在又重新定向,比如这一次,我就发现了这个问题计算器。 在apple dev网站上搜索c ++不会带来当前信息。 我应该担心使用c ++进行iOS开发吗?
10 c++  objective-c  apple 

5
激励团队-创业公司-现实世界中的问题
我2年前加入了我的公司,这是一家成立5年的初创公司。从一开始,我就一直在研究一种Microsoft技术。刚加入公司几天后,我得知公司在整个软件开发生命周期中都没有适当的工作流程。员工处于不受监控的状态,日程安排,截止日期,里程碑和质量均未达到预期。 我一直对编程充满热情,更重要的是对技术和非技术领域的模式和实践充满热情,并让自己忙于学习曲线。同时,公司的生产率每天都在下降。管理层和员工之间(只有12岁)没有相互理解。管理层并不十分在意员工的福利,工作环境,现实的时间表等。由于管理层的错误计算,开发人员团队被迫疯狂工作多次。这使员工不高兴,使他们对工作失去兴趣。所以他们开始生产很烂结果影响了公司的成长。管理层和员工双方总是存在同样的错误。我发现的一个重要原因是,管理层没有对员工进行有关流程,质量重要性,软件开发模式,实践等方面的教育。 最近,我被提升为团队负责人(我刚刚完成了两年的工作),因为管理层认为我具有处理一批产品的技术能力和管理能力。我与同事之间的亲密关系多于专业关系。因此,我发现很难在公司内采用一些规则并建立工作模型。到目前为止,如果再加一点,就会收到不良结果。 此外,我需要让自己有资格担任这个角色,并对我提出的工作模式充满信心,因为我没有很好的指导。我有点书本知识,而不是实际经验。 在这种情况下我该怎么办?我应该放弃公司还是应该花更多的精力来纠正问题? “在拥有10,000名员工的公司中,如果5名员工不能正常工作,公司可以承受。但是在拥有10至15名员工的公司中,即使一个人的表现不佳,也会极大地影响公司的成长。”
10 team 

2
FitNesse是否会提高产品质量和协作能力?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我听说过一个名为FitNesse的工具,该工具应该可以促进开发,测试和产品组之间更好的协作。 您有什么经验?确实提高了程序质量吗?使用它有什么缺点吗?

1
Zend与PHP有什么关系?
Zend与PHP的关系到底是什么?我的意思不是框架,而是公司本身。他们是看门人还是类似的监护人? 我刚刚阅读过PHP,除了需要了解C来扩展它之外,您显然还需要学习Zend API。但是,当您刚开始使用PHP时,您不需要了解任何“ Zend”,对于非Zend框架(例如Cake和CodeIgniter)也是如此。 因此,当我知道Zend开始使用PHP变得重要时,我感到困惑和好奇。

5
检查与未检查与异常……相反信念的最佳实践
系统正确传达和处理异常有很多要求。还有多种语言可供选择以实现这一概念。 例外要求(无特定顺序): 文档:一种语言应具有文档API可能引发的异常的含义。理想情况下,此文档介质应可在机器上使用,以允许编译器和IDE为程序员提供支持。 传输异常情况:显然,这允许功能传达阻止被调用功能执行预期动作的情况。我认为这类情况分为三大类: 2.1代码中的错误导致某些数据无效。 2.2配置或其他外部资源问题。 2.3本质上不可靠的资源(网络,文件系统,数据库,最终用户等)。这些有点极端,因为它们不可靠的本性应该让我们期待它们的零星失败。在这种情况下,是否将这些情况视为例外? 为代码提供足够的信息来处理它:异常应向被调用者提供足够的信息,以便被调用者可以做出反应并可能处理这种情况。这些信息也应该足够,以便在记录该异常时将为程序员提供足够的上下文,以识别和隔离有问题的语句并提供解决方案。 向程序员提供有关其代码执行状态的当前状态的信心:软件系统的异常处理能力应足够强,以提供所需的防护措施,同时又不影响程序员,因此他可以专注于执行以下任务:手。 为涵盖这些内容,以下方法已以多种语言实现: 受检查的异常 提供了记录异常的好方法,并且从理论上讲,如果正确实施,应该可以确保一切都很好。但是,这样做的代价是,许多人认为通过吞下异常或将它们作为未检查的异常重新抛出来绕过它更具生产力。如果使用了不适当的检查异常,则几乎失去了它的全部用处。同样,检查异常使创建时间稳定的API变得困难。在特定域内实现通用系统将带来特殊情况的负担,这些特殊情况将变得难以使用单独检查的异常来维护。 未检查的异常 -比检查的异常通用得多,它们无法正确记录给定实现的可能异常情况。他们完全依赖临时文档。这就造成了一种情况,即介质的不可靠特性被提供可靠性外观的API所掩盖。同样,当抛出这些异常时,它们会在抽象层中向上移动,从而失去其含义。由于它们的文献记录不充分,因此程序员无法专门针对它们,并且经常需要投放比必要范围更广的网络,以确保辅助系统(如果发生故障)不会导致整个系统崩溃。这使我们又回到了吞咽问题检查提供的异常。 多状态返回类型 在这里,它依赖于不相交的集合,元组或其他类似的概念来返回预期结果或代表异常的对象。这里没有堆栈展开,没有代码切入,一切正常执行,但是必须在继续之前验证返回值是否存在错误。我还没有真正使用它,因此无法从经验中发表评论,我承认它解决了绕过正常流程的异常的一些问题,但是仍然会遇到与已检查的异常几乎相同的问题,既麻烦又不断地“面对您”。 所以问题是: 您在这方面的经验是什么?根据您的看法,您是为语言提供良好的异常处理系统的最佳人选? 编辑:写完这个问题后几分钟,我遇到了这个帖子,怪异的!

6
为Windows桌面应用程序选择运行时/语言时要考虑哪些因素?
我的用户都有Windows。他们中的一些人使用Linux或Mac,但是如果这样做,他们通常能够使用Mono,Wine,Parallels或双引导之类的东西。 我的开发团队(包括我自己)在以Java编写Swing应用程序以及以C#编写Windows窗体方面都有丰富的经验。“广泛”意味着我们在两个运行时上都开发并交付了三个应用程序。这些应用程序是技术分析应用程序,因此对数据库交互的影响很小,但是对自定义UI和数据集大小的关注却很大。 我们已经到了真正要决定从现在开始关注哪个平台的地步,因为这已经成为同时支持这两个平台的负担(如果您在Swing中工作了半年,那就太麻烦了以便再次适应Windows窗体等),我们希望我们团队中的每个人都能够处理我们所有的应用程序。 Windows窗体通常花费较少的工作来制作可识别的Windows应用程序。多年来,Java中没有任何外观和自定义控件能够解决这一问题。同时,我们从来没有一个客户无法使用Swing应用程序。 就库和自动构建工具而言,Java过去拥有更加丰富的生态系统,但是这种变化正在迅速发生(Java并没有失败,.NET的追赶更多。) 对于罕见的首选跨平台的情况,Java击败了.NET。Mono很棒,但是它比Java还要工作。 如果选择.NET,则可以开始关注WPF,也可以开始使用F#。如果选择Java,我们可以开始关注RCP,也可以开始使用Scala。 是否有人必须做出类似的决定?如果是这样,那是什么?对您影响最大的是什么?有什么我最想念的问题吗? (请注意:Programmers.SE上已经存在一些类似的问题,但是它们不是建设性的,或者是不同的角度。)

7
C语言可移植性
如何准确确定像C这样的语言的可移植性?我了解到编译器是特定于ISA的。如果是这样,那么C如何移植?还是仅仅是用C编写的源代码是可移植的,而不是可执行文件?特定于x86示例应用程序的可执行ISA是否与Apple的应用程序分开(假设Apple使用Motorola / PowerPC微处理器)?
10 c  languages 

6
如果我不喜欢敏捷方法论,这会让我成为一个糟糕的程序员吗?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 我喜欢小迭代。我喜欢单元测试。我喜欢代码审查。我不喜欢的是很少或根本没有文档的开始。我一个人吗?我是否只是对该过程有误解? 任何想法将不胜感激。

6
我需要一个真正的随机数生成器Web服务[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 Random.org 每天每个IP提供来自模拟世界(cf.)的200k免费随机位(仅6250个32位整数!)。 有谁知道每天提供更多按需随机比特的替代Web服务? (只要价格在每美元美分1000×1024bits的“预期范围内”就可以付款)(random.org的付费服务收费为该价格的100×)


9
应对无法解决的无尽项目
我们有一个大型的(1200多个小时)网站,其中包含很多技术债务。这主要是由以下(通常)原因引起的。 在开发过程中来来往往的多个程序员。 在开发过程中更改规格。 (在短时间内)添加了许多附加功能。 客户需要大量新功能,这基本上归结为每周进行10多个小时的项目开发。 由于技术债务,我们花费了大量时间来修复或调查问题,这些问题通常是由以下原因之一引起的: 一个无耻,愚蠢的虫子,让人哭泣。 以上是产生新功能的原因,因为我们并未预见到新功能会在所有地方产生影响。 我们面临的其他一些问题(服务器迁移,升级) 我们每天都有问题,我们试图采取以下措施来阻止这种情况: 创建有关网站导入,付款和一般工作的技术文档。 一周开始时开会-讨论当前的问题或改进以及应如何解决。 有一个测试计划。程序员A测试B,B测试C和C测试A。然后我们的项目经理将进行一些测试。关于此功能的影响,我们将其投入到临时环境中,并让客户自行检查。 问题在于问题一直在发生……而我们却无法控制它。新功能仍然会导致错误,而旧错误会一直打招呼。不知何故-也许由于项目的规模-我们似乎无法控制这个项目。 我假设有很多程序员正在从事更大的项目。这就是为什么我要问我的问题: 在大型项目中,我们应该怎么做,或者您如何避免这些问题? 较小的修改,更多信息: 我们使用版本控制(SVN)。 我们有DTAP开发过程。

4
向开发团队负责人推荐资源[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 最近,我被任命为数据库(95%MS SQL Server,5%misc-Oracle,Sybase,Access)开发团队的负责人,该团队在公司环境中管理和开发大量数据库。我正在寻找资源(清单,实用程序,最佳实践,过程,网站,书籍等),这些资源将帮助我实现过去该开发小组所缺少的基础知识,例如代码审查,交叉培训,文档,执行标准,知识共享,指导等。 我发现的大部分内容都是一般管理技能资源,但是我想找到一些可能对于领导开发团队来说是特定的。公司流程是“标准”瀑布型SDLC,因此面向敏捷的资源几乎没有相关性。
10 team  team-leader 

4
不同类型的NoSQL数据库的缺点
这是我的问题:不同类型的NoSQL数据库有哪些弱点?具体来说,键值存储,图形数据存储和文档存储的弱点是什么? 我一直很容易找到优点,但是有关缺点的文档似乎很少。 编辑:相互比较,以及与关系数据库比较。

4
开发人员可以从研究恶意软件中学到什么吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 恶意软件使用有趣的技术对反恶意软件等隐藏自己。他们可以自己“实现多态”:实际上是在更改代码的同时,它对执行机器的含义仍然几乎相同,从而使防病毒定义无效等。 我想知道是否有(非恶意)开发人员可以从研究此类源中学习到任何东西,或者在没有可用源的情况下将它们逆转并研究从该过程中得到的任何东西,这在此之外是否有用(黑暗?)领域。 我对编写恶意软件不感兴趣。(至少不是出于非教育目的)这个问题并不意味着有关如何编写恶意软件等问题,而是您可以从已经编写的恶意软件中学到什么。 另外,也许有点不道德(我希望不是),编写自己的恶意软件有什么好处,只是为了更好地了解漏洞/漏洞/安全性或底层操作系统?

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.