软件工程

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


3
有用于安排比赛对战的已知算法吗?
只是想知道是否已经有一个比赛调度算法可供我使用,甚至可以稍作调整。 这是我的要求: 属于不定数量的球队/俱乐部的不定数量的对手必须与一个对手配对 两个对手不能来自同一个俱乐部 如果有奇数个玩家,则随机选择其中之一进行再见 与这种需求集相关的任何算法都将受到赞赏。 编辑:我只需要最多运行一次,为比赛的第一轮创建对战。
10 algorithms 

2
从ASP.NET背景出发,什么是使自己熟悉PHP的好方法?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 目前,我对在ASP.NET环境中构建工具/ Web应用程序非常满意。我并不是真的想离开tbh,因为我真的很喜欢C#,ASP.NET,MVC 3,Visual Studio等。 但是,现在我对PHP几乎一无所知,这似乎是我想纠正的缺陷。 是否有任何书籍(或其他学习方法)将是学习PHP的好资源?显然,有很多入门的PHP书籍,但我已经对构建网页所涉及的许多内容感到满意,并且对关注PHP本身(可能与某些入门的PHP书籍的范围不兼容)感兴趣。 我仔细阅读了《 PHP手册》,但看起来似乎不太顺利。有没有适合的PHP入门书?当翻阅这些样本时,我想念大多数书籍所包含的凝聚力。还有很多信息,但是与初级学习工具相比,它更像是编码时的参考。

5
分析编程语言
在SICP中,作者声明(第1.1节)有三种编程语言的基本“机制”: 基本表达式,表示语言所关注的最简单的实体 组合的手段,由较简单的要素构成复合要素 抽象手段,通过这种手段,复合元素可以被命名和操纵为单元。 如何从这些元素或机制方面分析主流编程语言(例如Java)?

3
BitBucket-有什么收获?(TANSTAAFL,对吧?)
BitBucket的功能和定价(最多可免费使用5个用户)让我想知道捕获的是什么……毕竟没有免费的午餐。 除了一个英俊的男人(根据服务条款)自由地包含在宣传材料中之外,BitBucket还可以从我的无偿参与中得到什么?

4
LINQ与数据访问层
我自学成才,始终在业务逻辑和UI代码的完全独立的“层”中处理任何数据访问代码。对于我而言,这一直是一个非常好的架构,并且我看到的任何“规则”或最佳实践仍设法适应这种编码风格,尤其是“ 单一责任原则”。 对于我的大多数家庭项目,我将使用自己创建的ORM,我一直打算将其制作为开源代码。但是从那时起,LINQ可用了,这与我的ORM的工作方式非常相似(但更好)。 我以前无法使用自己的ORM进行我现在无法使用LINQ进行的任何操作(REST集成的某些功能除外)。所以我的问题是;LINQ是我的新数据访问层吗?我是否需要此层了?我的BLL应该直接与LINQ对话吗?还是这种不良做法? 编辑: 最初的问题是指LINQ to Entities,但是有关LINQ to SQL的答案很多。人们对他们两个都有什么想法?我收集到的信息比LINQ to SQL不能真正替代DAL,但是可以使用实体框架吗?

6
时间估计是否等于Scrum中的承诺?
如果估算不是一个保证,那么作为产品所有者,我如何在不知道需要多长时间的情况下交付项目? 如果我们将时间估算视为诺言,Scrum团队会更有效地工作吗? 故事中需要进行多少研究(准备工作,理解问题的努力)才能得出正确的估计? 估算工作后出现的意外技术问题(可能会严重干扰您的初始估算)会如何?

1
多个Zend应用程序代码组织
在过去的一年中,我一直在研究一系列基于Zend框架的应用程序,并集中于一个复杂的业务逻辑,即所有应用程序即使不使用全部也必须具有访问权限(比每个应用程序具有多个库文件夹更容易)应用程序,因为它们都通过一个公共中心链接在一起)。 在不深入讨论项目具体目的的情况下,我正在寻找一些有关如何“分组”我的代码的输入(因为我正在单独处理项目)。我试图将其拆分为尽可能消除依赖项的方式。 我试图在逻辑上尽可能地保持分离,因此在12个月的时间内,其他任何人都可以毫无疑问地扩展我的作品。 示例结构: applicationStorage\ (contains all applications and associated data) applicationStorage\Applications\ (contains the applications themselves) applicationStorage\Applications\external\ (application grouping folder) (contains all external customer access applications) applicationStorage\Applications\external\site\ (main external customer access application) applicationStorage\Applications\external\site\Modules\ applicationStorage\Applications\external\site\Config\ applicationStorage\Applications\external\site\Layouts\ applicationStorage\Applications\external\site\ZendExtended\ (contains extended Zend classes specific to this application example: ZendExtended_Controller_Action extends zend_controller_Action ) applicationStorage\Applications\external\mobile\ …


4
业务逻辑真的属于服务器吗?
Web应用程序的典型堆栈是数据库,具有服务器端代码的服务器以及具有HTML / CSS / JavaScript的浏览器的用户。 在广泛使用AJAX之前,已将控制器作为服务器端代码的MVC删除了。服务器必须为动态网页路由答复请求(即,模板化的html解决方案,如JSP和ASP)。服务器协调对数据库的调用,并决定使用哪个动态页面来应答页面请求。所有这些的结果是,服务器最终包含了业务逻辑,即使业务逻辑与提供页面的想法没有紧密联系。 现在,我们正在向“ Web 2.0”迁移,服务器将使用JavaScript填充静态页面并更改其呈现的服务器。可以在JavaScript中。JavaScript通常实现RESTful服务,这意味着它正在指定数据库查询。 因此,服务器将承担提供实际文件和应答AJAX调用的角色。应答AJAX呼叫仅仅是会话管理和提供安全性。实际上,用户甚至应该能够看到的是应该在数据库中指定的数据。 因此,从那里开始,服务器是否应该只充当笨拙的中介角色,而这种中介只是偶尔发送电子邮件或启动Web服务之类的功能?业务逻辑可以全部存在于JavaScript中(不是秘密时)还是存在于存储过程中吗? 甚至将服务器和数据库结合在一起,或者使像SAP这样的ERP解决方案作为服务器,是否有意义?

5
配置类/结构:图案还是反图案?备择方案?
如果将新的配置选项添加到程序,则在将选项带到需要对其执行操作的位置时,它通常会产生大量涟漪效应。我知道有三种基本的处理方法: 将所有配置设置传递给程序中明确需要它们作为原语的部分。这是最明确的方式,也是最能使事物解耦的方式。缺点是这既冗长又脆弱。 将最常用的配置设置设为全局/静态。这是最简单的方法,但是会引入一定距离的操作,阻碍了可测试性,并假定该配置确实是全局的(您在任何给定时间只需要一个配置)。 创建一个包含整个程序或程序中每个主要问题的所有配置选项的配置类/结构,然后将其显式传递。它不如(1)明确,但比(2)更明确。如果只想更改一个函数调用的设置,则可以克隆config对象并更改该值。这在测试和实践中都是有用的。但是,您仍然可能最终将大量信息传递给它不需要的功能,并且更改config类/结构中的值仍会导致一定距离的操作。 您会考虑(3)模式还是反模式?如果是反模式,您该怎么办?

3
我们需要测试数据还是可以依靠单元测试和手动测试?
我们目前正在开发一个中型/大型PHP / MySQL项目。我们正在使用PHPUnit&QUnit进行单元测试,并且有两个全职测试人员正在手动测试应用程序。我们的测试(模拟)数据当前是使用SQL脚本创建的。 我们在维护测试数据脚本方面遇到问题。业务逻辑非常复杂,测试数据中的一个“简单”更改通常会在应用程序中产生多个错误(不是真正的错误,只是无效数据的产物)。由于我们不断创建和更改表,因此这已成为整个团队的一大负担。 我真的看不到在脚本中维护测试数据的意义,因为可以使用UI在大约5分钟内将所有内容手动添加到应用程序中。我们的PM不同意,并说拥有无法使用测试数据进行部署的项目是一种不良做法。 我们是否应该放弃使用测试数据来维护脚本,而只是让测试人员在没有数据的情况下测试应用程序?最佳做法是什么?

1
使用TFS构建过程模板(工作流)进行部署
我正在考虑将TFS Build工作流用于复杂的部署。我们有一些可能需要部署: Web应用程序和服务 数据库 SSRS报告 SSIS软件包 谁知道 我喜欢这样一个事实,我可以为工作流提供一些基本参数,例如要部署的构建以及它将运行的构建。潜在地,某些部分可能需要人工批准,而且我知道工作流也可以处理。一个示例是,我们可能使用工作流从Visual Studio数据库项目中创建更改脚本,但是DBA组希望在运行脚本之前对其进行批准。 我想知道过去是否有人为此使用过“构建”,以及发现了什么问题。

2
遵循SRP时,应如何处理验证和保存实体?
最近,我一直在阅读Clean Code和各种有关SOLID的在线文章,而我阅读的内容越多,我感觉自己一无所知。 假设我正在使用ASP.NET MVC 3构建Web应用程序。假设我有一个类似这样UsersController的Create操作: public class UsersController : Controller { public ActionResult Create(CreateUserViewModel viewModel) { } } 在这种操作方法中,如果输入的数据有效,我想将用户保存到数据库中。 现在,根据“单一责任原则”,对象应具有单一责任,并且该责任应由类完全封装。它的所有服务都应严格地与这一责任保持一致。由于验证和保存到数据库是两个单独的职责,我想我应该创建一个单独的类来像这样处理它们: public class UsersController : Controller { private ICreateUserValidator validator; private IUserService service; public UsersController(ICreateUserValidator validator, IUserService service) { this.validator = validator; this.service= service; } public ActionResult Create(CreateUserViewModel viewModel) { ValidationResult …

2
扩展类以重用单个函数是否合理?
我正在为wordpress网站开发一系列的帖子过滤器,并且已经用一个类构建了前四个。 最后两个在作用域上有足够的不同,以使其类中仅共享一个函数(用于产生最终链接的函数)。 在这种情况下或在任何数量的类似假设情况下,扩展原始类以具有该功能是否合理,还是有更好的方法?

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.