软件工程

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

5
冲刺提早完成该怎么办?
冲刺提早完成该怎么办? 目前,如果冲刺较早完成,我们的Scrum团队会处理积压的故事。 从待办事项中提取的故事会怎样?故事会添加到当前的Sprint中吗?如果是的话,如果这些故事不能及时完成怎么办。冲刺失败了吗?
10 scrum  sprint 

1
在Android上使用FragmentManager的有用设计模式
在处理片段时,我一直在使用由静态方法组成的类,这些方法定义对片段的操作。对于任何给定的项目,我可能都有一个名为的类FragmentActions,其中包含与以下类似的方法: public static void showDeviceFragment(FragmentManager man){ String tag = AllDevicesFragment.getFragmentTag(); AllDevicesFragment fragment = (AllDevicesFragment)man.findFragmentByTag(tag); if(fragment == null){ fragment = new AllDevicesFragment(); } FragmentTransaction t = man.beginTransaction(); t.add(R.id.main_frame, fragment, tag); t.commit(); } 通常每个应用程序屏幕上只有一种方法。当我使用小型本地数据库(通常是SQLite)时,我会执行类似的操作,因此我将其应用于片段,这些片段似乎具有相似的工作流程。我没有嫁给它。 您如何组织应用程序以与Fragments API交互,您认为适用什么设计模式(如果有)?

4
是否应该从页面本身抽象数据库查询?
当用PHP编写页面生成时,我经常发现自己写了一些乱七八糟的数据库查询文件。例如,我可能有一个查询来直接从数据库中获取有关帖子的一些数据以显示在页面上,如下所示: $statement = $db->prepare('SELECT * FROM posts WHERE id=:id'); $statement->bindValue(':id', $id, PDO::PARAM_INT); $statement->execute(); $post = $statement->fetch(PDO::FETCH_ASSOC); $content = $post['content'] // do something with the content 这些快速的一次性查询通常很小,但是有时我最终会遇到很大一部分数据库交互代码,这些代码看起来看起来很混乱。 在某些情况下,我通过创建一个简单的函数库来处理与帖子相关的数据库查询来解决此问题,并将该代码块简化为简单的代码: $content = post_get_content($id); 那太好了。或者至少直到我需要做其他事情为止。也许我需要获取五个最新帖子才能显示在列表中。好吧,我总是可以添加另一个功能: $recent_posts = post_get_recent(5); foreach ($recent_posts as $post) { ... } 但这最终会使用SELECT *查询,无论如何我通常通常并不需要它,但是它通常太复杂而无法合理地抽象。最终,我将获得针对每个用例的庞大的数据库交互功能库,或者在每个页面的代码中包含一系列混乱的查询。即使建立了这些库,我也会发现自己需要做一个以前从未使用过的小联接,而且突然我需要编写另一个高度专业化的函数来完成这项工作。 当然,我可以将这些功能用于一般用例和特定交互的查询,但是,一旦我开始编写原始查询,我便开始回落到直接访问所有内容的位置。要么这样做,要么我会变得懒惰,并且将开始在PHP循环中执行操作,无论如何,它们实际上应该直接在MySQL查询中直接完成。 我想问一下那些具有编写Internet应用程序的经验的人:可维护性的提高是否值得额外的代码行以及抽象可能带来的低效率?还是简单地使用直接查询字符串是处理数据库交互的可接受方法?

11
我必须学习html和javascript才能创建Web应用程序吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我是一位经验丰富的Java程序员,并且我想创建一个需要动态页面,图形等的复杂Web应用程序(以SO为例)。创建此类应用程序是否需要学习javascript / html? 并不是我不想学习另一种语言(我之前已经做过),但是javascript环境上的技术似乎变化如此之快,以致于当您完成学习一个框架时它已经过时了。我已经检查了许多用于Web开发的java框架(spring,play),但没有深入探讨。那么可以在不学习html / javascript的情况下使用这些框架(或我可能不知道的其他可能的Java框架)吗?我也有一些python经验。因此,如果我可以用python做该应用程序,那也是一种选择。



4
在Subversion中,应如何设置应用程序的新主版本?
我即将开始开发我的商业应用程序的新版本(版本4)。我使用Subversion。 根据您的经验,错误和成功,您将如何建议我在Subversion中设置新版本? 这里是一些信息:在版本4发布之后,我打算在版本3中继续发布重要更新。但是,所有新功能的开发都将仅在版本4中进行。 如果相关的话:我是该产品的单独开发人员,而且情况可能仍然如此。 编辑:我知道SVN的标签和分支。我想我需要的是在我的情况下使用标签和分支的最佳策略。

6
当您不熟悉语言时,如何评估代码质量?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 作为一个假设,如果我在.NET中工作时要面试某人以担任新的PHP开发人员职位,那么我如何确定他们提供给我的代码示例是否高效且质量良好? 换句话说,如果您不熟悉该语言,评估程序员代码的最佳方法是什么?

4
为什么不在C#中使用非托管安全代码
C#中有一个选项可以执行未经检查的代码。通常不建议这样做,因为托管代码更加安全并且可以解决很多问题。 但是我想知道,如果您确定您的代码不会引起错误,并且您知道如何处理内存,那为什么(如果您喜欢快速代码)遵循一般建议? 我想知道这一点,因为我编写了一个用于摄像机的程序,该程序需要非常快速的位图处理。我自己制作了一些快速的图形算法,并且使用非托管代码在位图上效果很好。 现在,我通常会怀疑,如果您确定没有内存泄漏或崩溃的风险,为什么不更频繁地使用非托管代码? PS我的背景:我有点涉足这个编程领域,而且我一个人工作(我从事了几年),所以我希望这个软件设计问题不会那么奇怪。我真的没有其他人像老师那样问这些事情。

3
软件开发中是否存在“伪实现”这样的概念?
我正在寻找一个标签来描述使用基于人的计算方法或其他“伪造”算法手段的实践,以便快速推出产品或演示而无需花费时间来开发技术/可扩展/解析解决方案?例如:使用Amazon Turk来计算一家餐厅中空桌子的数量。 我也希望了解有关此主题的更多信息,但不确定要搜索什么。基于人的计算只是一种方法,我对伪实现的一般概念感兴趣。有什么想法,建议阅读?

5
如何减少两个数据源之间的紧密耦合
我在寻找以下架构问题的适当解决方案时遇到了一些麻烦。 在我们的设置(如下所示)中,我们有2个数据源,其中数据源A是Foo类型项目的主要来源。存在辅助数据源,可用于检索Foo上的其他信息。但是,此信息并不总是存在。 此外,数据源A可用于检索Bar类型的项目。但是,每个Bar都指一个Foo。这里的困难在于每个Bar应该引用一个Foo,如果有的话,它还包含由数据源B扩充的信息。 我的问题是:如何消除SubsystemA.1与DataSourceB之间的紧密耦合?

4
使用机器学习瞄准太阳阵列中的镜子?
我一直在思考太阳能收集器,其中几个独立的镜将光聚焦在太阳能收集器上,类似于Energy Innovations的以下设计。 由于此太阳能电池阵列的组装会有缺陷,因此,我在进行以下假设(或缺乏假设): 该软件知道每个镜像的“位置”,但不知道此位置与现实世界或其他镜像的关系。这将说明反射镜校准不佳或其他环境因素可能会影响一个反射镜,而不会影响其他反射镜。 如果镜子在一个方向上移动10个单位,然后在相反方向上移动10个单位,则它将在最初开始的位置结束。 我想使用机器学习来正确放置镜子并将光线聚焦在收集器上。我希望我将其作为一个优化问题,优化反射镜的位置,以最大化收集器内部的热量和功率输出。 问题是在嘈杂的高维空间中找到一个小的目标(考虑到每个反射镜都有2个旋转轴)。我预期的一些问题是: 多云的日子,即使您偶然碰到了完美的镜子对准,在当时也可能是多云的 噪声传感器数据 太阳是一个移动的目标,它沿着一条路径移动,并且每天遵循不同的路径-尽管您可以随时计算太阳的确切位置,但是您不知道该位置与镜子之间的关系 我的问题不是关于太阳能电池板,而是可能的机器学习技术,它可以帮助解决“嘈杂的高维空间中的小目标”问题。我提到太阳能电池板是因为它是这个问题的催化剂和一个很好的例子。 哪种机器学习技术可以在嘈杂的高维空间中找到如此小的目标? 编辑: 一些其他想法: 是的,您可以计算太阳在现实世界中的位置,但是您不知道镜子的位置与现实世界之间的关系(除非您以某种方式了解了它)。您可能知道太阳的方位角是220度,太阳的仰角是60度,并且您可能知道镜子在位置(-20,42);现在告诉我,那面镜子与太阳正确对准了吗?你不知道 假设您进行了一些非常复杂的热量测量,并且知道“在此热量水平下,必须正确对齐2个反射镜”。现在的问题是,哪两个镜子(25个或更多)正确对齐? 我考虑的一种解决方案是使用神经网络来逼近正确的“对准函数”,该神经网络将太阳的方位角和仰角作为输入并输出一个大型数组,每个数组的2个值对应于每个镜子的2轴。我不确定最好的训练方法是什么。 更多想法: 镜子确实具有软件可以访问的坐标系,但是软件不知道该坐标系与现实世界之间的关系。假设镜子位于位置(4,42);这意味着什么?我不知道,软件也不知道。但是我确实知道,如果我移动镜子,然后再将其移回(4,42),镜子将处于以前的位置。另外,两个镜子可能在位置(4、42),但在现实世界中指向相反的方向。 是的,有了很多高质量的传感器,这个问题很容易解决。据我所知,Energy Innovations停业了,这可能是因为它们使用了一堆非常棒的传感器,而且人们说:“我只买太阳能电池板,它们更便宜。” 系统中唯一的传感器在收集器头中。

1
如何改善应用程序的内存使用率?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我正在编写一个C#应用程序,并且可以看到随着应用程序运行时间的增加,内存使用量也在增加。 有什么工具或技术可以监视我的应用程序的内存使用,识别内存泄漏并总体上改善我的应用程序的内存使用?
10 c#  memory-usage 

5
我应该将退出成本纳入选择解决方案中吗
我目前正在两种可行的软件设计/解决方案之间进行选择。解决方案1易于实现,但会以专有格式锁定某些数据,以后将很难更改。解决方案2难以实现,但以后将更容易更改。 我应该选择YAGNI还是应该将退出成本纳入决策?还是换个角度问,退出成本是TCO的一部分吗? 我正在考虑再回头问客户,他是否认为退出成本是相关的,但我想知道社区首先想到的是什么。 PS退出成本是否正确?

6
估算源代码值的方法有哪些?
在过去的几个月中,我一直在从事一些空闲时间的项目。最近,有朋友联系我来建立一家初创公司,该源代码对我们而言非常有价值。 作为联合创始人,此代码可以算作公司资本中的一部分,并可以用来交换股票。但是,您如何估算其价值?您只是将行业标准的工资乘以我花在上面的时间,还是还有其他方法?

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.