软件工程

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


2
“暴露”某物是什么意思?
因此,我正在创建Google App Engine应用程序,并且多次遇到“公开”一词,例如“您的第一个应用程序可以使用基于HTTP的API公开对象”和“通过REST API”。“暴露”是什么意思?是否有与之相关的特定动作,或者它是设计的抽象部分?

5
浮点舍入误差的解决方案
在构建处理大量数学计算的应用程序时,我遇到了某些数字会导致舍入错误的问题。 虽然我知道浮点数不是精确的,但问题是我如何处理确切的数字,以确保在对它们进行计算时,浮点数舍入不会引起任何问题?

1
美元符号蓝调:JavaScript和PHP
我从小就对C ++和Java进行编程,那里的一切都是安全而美丽的。编译器一定要检查我是否流浪。当然,每个人在大学里都做了一点Perl,但我没有吸气。这些天的孩子们全都在后端使用PHP,而在前端则使用Javascript。在尝试时髦时,我也这样做(用于Web开发)。我一直遇到的问题是,我不小心在Javascript的常规变量前添加了美元符号($),当然没有人说什么,因为这是jQuery对象经常使用的合法语法。 是否有任何调试工具或开发技巧来捕捉这种美元符号的混乱?您是否经常犯同样的错误,如何从情感上处理错误?Chrome开发者工具并不总是会看到这是Javascript错误。我使用PhpStorm和Emacs进行开发,但是这些并没有引起我的愚蠢,尽管我怀疑Emacs确实可以,但是选择不告诉我有关情况。 如果您认为这个问题很荒谬,我认为您是对的。但是我们生活在一个变量前面有美元符号的世界。在这样的世界里,没有什么是荒谬的。

2
WPF中的MVVM是否已过时?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我目前正在努力争取WPF MVVM的使用-我的意思不是让我的想法成为现实,而是围绕实际工作中的实际要点而不是愚蠢的CRUD做些超越常规的事情。 我注意到的是,很多框架以及大多数/所有博客文章都来自“时代”。 这是因为现在已经过时了,而博客作者已经转向Next Next Thing,还是仅仅因为他们已经说了所有要说的话? 换句话说,我这里缺少什么吗?
18 wpf  mvvm 


2
Strassen是如何提出他的矩阵乘法方法的?
著名的Strassen矩阵乘法算法对我们来说是一种真正的享受,因为它将时间复杂度从传统的O(n 3)降低到O(n 2.8)。 但是在我所经历的所有资源中,甚至是Cormen和Steven Skienna的书中,他们显然都没有提到Strassen是如何考虑的。 Strassen矩阵乘法算法的基本原理是什么?这是一次幸运的事故还是其中更深层次的事情?

3
将命令行参数命名为“ argv”的约定从何而来?
似乎Python,PHP和Ruby都使用名称“ argv”来引用命令行参数列表。名称“ argv”从何而来?为什么不使用“ args”之类的东西呢? 我的猜测是它来自C,其中v代表“向量”。维基百科的脚注说: 该变量名称中的向量术语在传统意义上用于指代字符串。 但是,此信息没有任何来源。真的,我很好奇它的根源可以追溯到更远的时候。C之所以使用它,是因为之前有东西使用过它?

6
零缺陷/缺陷策略保持敏捷
在我们的项目中,我们采用零缺陷(也称为零缺陷)方法。基本思想是,错误的优先级始终高于功能。如果您正在处理一个故事,并且有错误,则必须解决该问题才能使该故事被接受。如果在sprint期间发现了较旧的故事中的错误,我们需要将其放在待办事项列表上并加以解决-最高优先级。 我说解决的原因是我们并不总是修复该错误。有时我们只是宣布它“不会修复”,因为它并不那么重要。总而言之,这听起来很棒。我们正在运送高品质的产品,并且不会以积压大量错误的形式出现“驼峰”。 但是我不确定这种方法是否正确。我确实同意,我们总是需要尽快修复严重的错误,并且需要丢弃无用的错误。但是重要但不如新功能重要的错误又如何呢?我倾向于认为应将它们以适当的优先级提交待办事项清单。 为了使它更清晰,我将举一个示例-在我的项目中,我们使用用flex编写的UI。我们有一个向导屏幕,它以每种屏幕分辨率打开的大小相同。事实证明,当我们扩展向导窗口时,其中一个页面看起来并不好(虽然向导现在可以显示所有内容并且不需要滚动条,但是垂直滚动条并不会消失)。我认为这个错误很难看。我确定它一定要修复。但是我们的时间表很紧,我们有很多功能,我们担心这些功能不会成功并进入发行版。我觉得我们可以忍受这样的错误。它确实需要修复,但是优先级低于其他功能(因此,如果我们无法完成它,至少我们没有遗漏更重要的功能)。但, 我很想听听有关如何管理我不想标记为“无法修复”但也不是最重要的错误的意见。
18 agile  scrum  bug  backlog 

2
为什么C在TIOBE受欢迎程度索引中如此之高,而C ++也在此之下,却没有那么受欢迎?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我无法解决这个问题。如果使用了很多C,但不是C ++,有人可以向我解释使C比C ++更常用的最重要原因吗?这些C代码在哪里写? 这是否与高度依赖命令式编程但不能承受实现或调整C ++编译器的成本的工业部门有关?有那么多内核黑客吗? tiobe是否相关?我从没涉足任何文章,也没有发表评论或解释tiobe的排名是多少,它实际上表明了该行业的喜好,以及它可以表明该行业的实际用途,从而确定了该行业的实际需求。很难解释。 我只是觉得奇怪,即使这些C / C ++职位很烂,许多公司也想要C#,php,java职位,而不是C或C ++职位(只是与我的失业状况和我的采访有关)。我会选择那些。还是这意味着语言炒作在这里起着重要作用?

8
为什么书说“编译器为内存中的变量分配空间”?
为什么书会说“编译器为内存中的变量分配空间”。难道不是可执行文件吗?我的意思是,例如,如果我编写以下程序, #include <iostream> using namespace std; int main() { int foo; return 0; } 并编译它,并获得一个可执行文件(将其命名为program.exe),现在,如果我运行program.exe,该可执行文件本身将命令为变量foo分配一些空间。不是吗 请解释为什么书中总是说“编译器会执行此操作...”。
18 c++ 

1
垃圾收集器压缩堆中的对象时,是否会更改堆栈上的引用?
这似乎是一个简单的问题,但是在对该主题进行了大量阅读之后,我仍然没有找到明确的答案(也许是因为它是如此简单)。 我的问题是:当垃圾收集器压缩堆中的对象时,如何更新对堆栈中那些对象的引用?我可以想到两种可能的解决方案: 遍历堆栈(和堆中的引用)并更新引用以指向对象的新位置。类似于搬家,这就像给有您地址的任何人发送一封信,并要求他们用您的新地址更新他们的地址簿。 提供某种查找表。这就像在本地邮局留下转发地址。 垃圾收集器是否主要使用这两种方法之一?还有其他方法吗?都?

4
Git子模块与Git克隆
我正在GitHub上的一个开源项目。 它有一个/ vendor子目录,在其中有几个外部库的副本。项目的原始维护者有时会使用外部库的较新副本来更新此目录。 一位开发商送我的想法拉请求更换该副本由git的子模块。 我正在考虑这是否是个好主意。 Git子模块的优点: 子模块是为类似情况专门设计的 它消除了意外提交给供应商的可能性,该可能性在下次更新时将被覆盖 Git子模块的缺点: 看起来git子模块将复杂性从维护人员推向了要克隆/拉动项目的人员(克隆开始使用项目后需要执行的其他步骤:“ git submodule init”,“ git submodule update” 您对此有何看法? 还有一件事。这个问题是相当小的库,具有非常有限的外部依赖性。我认为目前任何构建工具都不过分。
18 git  github 

6
数字线上的访问点,同时将与距离无关的成本最小化
我需要有关此ACM ICPC问题的帮助。我目前的想法是将此模型建模为最短路径问题,在问题说明中对此进行了描述。 问题 除了以外,N = 1000沿一维数字线位于不同位置的有核废料容器。一个人的任务是收集所有垃圾箱。垃圾容器每秒钟收集一次,就会发出1单位的辐射。人开始时可以每秒移动一次,收集废物所花费的时间可以忽略不计。我们希望找到收集所有容器时释放的最小辐射量。-500,000 to 500,000x=0x = 01 输入样例: 4位于的集装箱[-12, -2, 3, 7]。 收集这些容器的最佳顺序是[-2, 3, 7, -12],以减少50单位散发。说明:该人-2在2秒钟内进入,在此期间2 units辐射被发射。然后,他到达3(距离:),5以便枪管释放2 + 5 = 7出辐射单位。他需要4更多的时间才能到达x = 7那个发射桶的地方2 + 5 + 4 = 11。他花了19几秒钟到达x = -12那个桶发射2 + 5 + 4 + 19 = 30单位的地方。2 + 7 + 11 + 30 = 50,这就是答案。 …
18 algorithms  graph 

5
术语“前端”是否与“客户端”同义?如果是这样,是否总是这样?
作为一个相对较新的(自学成才的)Web开发人员,我经常听到术语“ 前端”,“ 客户端”,“ 后端”和“ 服务器端”。对我来说,前端和后端始终分别是客户端和服务器端的同义词。 但是,随着我开始使用诸如CodeIgniter之类的MVC框架,我遇到了一些前端实例,这些实例基本上指的是最终用户看到的任何东西(包括服务器端代码),而后端则指的是任何东西。最终用户看不到(包括CMS)。对我来说,客户端和服务器端的含义更为具体。它们之间有很明显的界线。另一方面,前端和后端则没有。 我记得在与另一位Web开发人员的一次交谈中,他将CodeIgniter(全部)称为前端,这使我陷入了循环。我不确定是否要纠正他并说CodeIgniter是我的后端,或者我对这两个术语的定义完全错误。 搜索前端和后端的定义在某些方面使我有些困惑,尽管它们确实澄清了一些事情。我只想知道这四个术语之间的界线,以及它们在Web开发的上下文中(特别是在LAMP堆栈上)如何组合在一起。

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.