软件工程

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

2
有没有人成功地将Windows Workflow用于业务规则/验证引擎?
我想知道是否有人成功将Windows Workflow Foundation用于BusinessRules / Validation引擎,或者您是否知道一些示例代码或与此相关的文章。 如果您曾经使用过它,您怎么看?与其他BusinessRule / Validation系统相比如何? 我在想类似的规则 if (A, B, and C) AllowAccess(); 要么 if (Value between X and Y) return true;

4
在整个软件开发生命周期中管理需求的工具
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在寻找一种工具来管理软件开发项目的需求或功能。一个由5-10人组成的小型地理位置分散的小组将使用它来提出,讨论和跟踪需求。因此,它将需要: 支持多个用户 基于网络 支持需求之间的层次结构,例如父/子关系 提供讨论个别需求的方法 支持文件上传 具有成本效益。理想情况下免费或 可用的某些项目管理工具过大或过分专注于任务或资源调度,而不是功能/需求。 有没有人有办法解决吗?

8
您从一个因多线程不良而几乎/实际上失败的项目中学到了什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 您从一个因多线程不良而几乎/实际上失败的项目中学到了什么? 有时,框架会采用某种线程模型,使事情难以正确处理一个数量级。 对于我来说,我还没有从上一次失败中恢复过来,我觉得最好不要在该框架中处理与多线程有关的任何事情。 我发现我擅长处理多线程问题,这些问题具有简单的fork / join,并且数据仅在一个方向上传播(而信号可以在圆形方向上传播)。 我无法处理GUI,其中某些工作只能在严格序列化的线程(“主线程”)上完成,而其他工作只能在除主线程(“工作线程”)之外的任何线程上完成,并且数据和消息必须在N个组件之间完全传播(完整连接的图表)。 在我将该项目移交给另一个项目时,到处都有僵局问题。我听说2-3个月后,其他几位开发人员设法解决了所有僵局问题,以至于可以将其交付给客户。我从未设法找出我所缺少的知识。 关于项目的一些事情:消息ID(描述事件含义的整数值,可以将其发送到另一个对象的消息队列中,而与线程无关,而已)达到数千。唯一字符串(用户消息)也有大约一千。 添加 我从另一个团队得到的最好的类比(与我的过去或现在的项目无关)是“将数据放入数据库”。(“数据库”指的是集中化和原子更新。)在分为多个视图且全部在同一“主线程”上运行且所有非GUI繁重工作都在单个工作线程中完成的GUI中,应用程序的数据应可以将其存储在一个像数据库一样的单一文件中,并让“数据库”处理涉及非平凡数据依赖项的所有“原子更新”。GUI的所有其他部分仅处理屏幕绘图,而没有其他内容。UI部分可能会缓存内容,并且如果设计正确,用户将不会注意到它是否过时了不到一秒钟。此“数据库”也称为“文档” 在文档视图体系结构中。不幸的是-不,我的应用程序实际上将所有数据存储在“视图”中。我不知道为什么会这样。 会员贡献者: (贡献者不需要使用真实/个人示例。如果您自己认为可信的轶事示例,也欢迎他们提供经验教训。)

3
将新的JVM编程语言引入已建立的企业环境
想象一下,您当前的工作场所是一家Java商店。有很多有关Java语言的丰富知识,并且有一个完善的构建和部署过程来以流畅,敏捷的方式处理所有事情。 有一天,一个项目问世了,它大声疾呼要用Ruby编写。只有高级开发人员才有关于Ruby的任何线索,但有一个普遍的概念,因为JRuby存在于JVM中,所以可以继续使用和支持现有的基础结构。同样,JRuby可以展示一种以更少的代码实现更好的方式来实现当前应用程序的方法,因此这可能表示正在进行的迁移。 请记住,JRuby只是一个示例,它可以等效地是Clojure或Groovy或在JVM上运行的任何其他程序。 问题是,您将如何引入这种变化-如果有的话?

1
有人知道MonoDroid是否真的死了吗?
我公司最近投资了Visual Studio 的Mono for Android工具,因为我们有很多.NET开发人员,并且对Monodroid工具的强大功能印象深刻。阅读《ZDNet帖子》后,我很伤心地看到这个项目可能已经死了。除了该文章中列出的内容之外,还有没有其他人对此有更多了解?显然,许多开发人员从mono项目中解脱出来,但我想知道这是否是真的。任何信息将不胜感激。我们刚刚购买了Enterprise 5许可证,这是非常昂贵的,如果我刚购买并开始学习它后就死了,我会非常生气!
11 c#  .net  monodroid 

4
我应该花时间学习Coffeescript吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 8年前关闭。 我是一名自由职业者,我通过帮助他人编写更好的Java脚本代码来赚钱。我对大多数JavaScript框架都有很好的经验。 我想知道是否值得花时间学习咖啡脚本。谁应该学习它,谁不需要?

3
同一项目多个客户的分支模型建议
我们有一个非常大的项目,其中包含作为不同客户基础的几个应用程序。 每个客户都有自己的产品个性化,不同的里程碑,不同的要求等,因此每个项目将根据自己的需求独立发展。 项目的核心在每个项目中都是相似的(但不相等),并且组织的组成使得团队可以独立处理每个客户(但根据需要在他们之间进行沟通)。到目前为止,无论是通过搜索互联网还是提出一些绝妙的主意,我都找不到适合我们需求的方案:) 到目前为止,我们一直在努力使产品适应所有需求,并为需要的更改提供特定的分支,但是,尽管产品具有良好的体系结构,但它正逐渐成为一个大问题。这是我们面临的主要问题: 每个客户的里程碑不同:这意味着每个团队必须在不同的时间生产版本,而其余的提交都不会影响其稳定性或产品。 不同的要求,在某些情况下可能会或可能不会影响系统的核心。 大型团队(超过20个团队成员) 处理系统中的错误:如果团队发现其项目中的错误可能会影响其他客户,该怎么办? 注意:我们正在谈论的项目具有10 + M LOC。 注意:我们正在使用Team Foundation System,Visual Studio 2008和C#(主要)。 关于如何解决这种情况的任何建议,消息来源或想法?市场上是否有类似问题的模型?

2
为他人开发Android应用
我们已经开发了一些应用程序,并将它们发布在Android Market上。我们现在正在编写一个应用程序,另一家公司将通过自己的发布者帐户进行品牌推广和销售。另一家公司没有Android Market或Android开发方面的经验。我非常感谢其他面临类似情况的人的见解。我特别关注以下方面: 对应用程序进行签名 我们看到的替代方法是:用我们的常规密钥签名;创建特定于另一公司的签名密钥对并与之签名;或帮助其他公司安装开发系统,生成密钥对并自己进行签名。后者将要求我们向他们发送项目资源,这会带来其自身的问题。除了我们担心发送来源外,选择是否有任何关系? 许可 由于将针对其帐户进行许可检查,因此代码需要嵌入其公共密钥以解密许可响应。他们是否有理由担心与我们共享该密钥?他们是否有其他选择可以与我们共享密钥? 出版 另一家公司负责所有的市场营销和销售;我们负责应用开发。据我们所知,Android Market并未设置为完全分隔这些角色。(假设开发人员也将是发布者。)这使得很难为发布过程制定职责划分。我们最初的想法是将.apk文件交付给他们,然后让他们从那里处理。许可问题是我们对此幼稚的第一个迹象。发布过程本身是相当技术性的,我们看到了两种选择:引导他们完成所有步骤,或者让他们让我们访问他们的发布者帐户并自己完成。别人做什么?

4
简单地说,什么是神经网络[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 您能用一个例子简单地解释神经网络吗?


5
如何克服结构不良的软件开发模型?
我刚加入公司,现在正在从事工作。由于GIS软件开发领域的技术人才有限,而且由于我是其中之一,因此我被直接聘为项目经理。 我非常熟悉Java和GIS,并且我对基于位置的服务进行了自发性的研究,但没有进行项目管理和结构化软件开发。我是地质学专业的毕业后一年,而在前一年,我在大学里担任学者。 多亏了我在工作中的兴趣,出现了一个机会,最终我也被任命为公司的商务智能部门的负责人。公司相信我。我本人研究了数据仓库和BI概念,并成功地将GIS与BI相结合。 另外,我目前正在与两个开发人员一起使用C#WPF中的BI工具,在其中我有时也扮演开发人员的角色(我很喜欢)。 我非常努力地通过敏捷项目管理来采用良好的软件开发方法,但是这种方法并不是很成功。同样,尽管我相信就产品而言设计良好的代码,但由于我的首席执行官(直接在我之上)缺乏技术知识,所以我通常没有足够的时间来做。由于我们也缺乏整体上对特定编码语言的专业知识(例如,与Java相对的WPF),因此所花费的时间大大增加了。也没有适当的版本控制系统。 我对事物的运行方式非常无聊,因为它不是结构化的,我发现大部分时间都在思考如何使事物结构化。我希望你们有良好的专业经验,能够帮助我克服这种情况。


7
如何使程序员停止编写易受SQL注入攻击的代码?
有时您会很忙,将一些小任务委派给初级程序员。但是,如果您没有给予足够的关注,您就会在生产中使用这种代码: class DivtoggleController extends Zend_Controller_Action { public function closeAction() { /* ... code removed for brevity ... */ $req = $this->getRequest(); $formData = $req->getPost(); $d = $formData['div']; $i = $formData['id']; $dm = new Model_DivtoggleManager(); $rs = $dm->setDivToggleById($d, $i); } } class Model_DivtoggleManager extends Zend_Db_Table { public function setDivToggleById($div, $id) { …
11 php  sql  training 

4
对设计模式和OOP实践的思考如何在动态和弱类型语言中发生变化?
这些方面已经有了一个相当有用的问题(“ 非OOP设计模式? ”),但是我对于刚开始使用动态和弱类型语言的人的过渡观点感到更加好奇。 那就是:假设我已经使用C ++,C#或Java进行编程多年,并从GoF设计模式,Fowler 企业应用程序体系结构模式,SOLID原理等方面吸取了很多智慧。 m涉猎Ruby,Python,JavaScript等,并想知道我的知识如何应用。大概在很多情况下我都可以进行直接翻译,但是几乎可以肯定的是,这并不能充分利用我的新设置。仅仅靠鸭子打字就可以改变我很多基于界面的思想。 什么保持不变?有什么变化?是否有新手应该知道的诸如SOLID之类的指导原则或动态语言新手应该知道的规范模式(也许是全新的)?

11
如何向非程序员解释编程不是重复性的任务?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 有些人认为编程只是在键盘上重复键入而已。这些都不是真的。首先,除了实际键入代码外,您还有很多工作要做,例如设计架构等。其次,这可能是一个变化很大的,非重复性的任务,新挑战不断出现。 您应该如何解释编程对非程序员而言不是重复性任务?

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.