软件工程

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

4
Java中的闭包将如何影响Java社区?
它是为Java计划的最受关注的功能之一:闭包。我们许多人一直向往他们。我们中的某些人(包括我在内)变得有点急躁,并转向脚本语言来填补空白。 但是,一旦闭包最终到达Java:它们将如何影响Java社区?以VM为目标的脚本语言的发展是否会减慢爬行速度,保持不变或兼容?人们是否会蜂拥至新的闭包语法,从而将Java代码基础全面转换为功能更结构化的实现?我们会不会只看到Java中散布着闭包?对工具/ IDE支持的影响是什么?性能如何?最后,与其他越来越流行的语言相比,对于Java继续采用这种语言意味着什么? 为了提供最新提议的Java Closure语法规范之一的示例: public interface StringOperation { String invoke(String s); } // ... (new StringOperation() { public invoke(String s) { new StringBuilder(s).reverse().toString(); } }).invoke("abcd"); 会成为 ... String reversed = { String s => new StringBuilder(s).reverse().toString() }.invoke("abcd"); [来源:http://tronicek.blogspot.com/2007/12/closures-closure-is-form-of-anonymous_28.html]
11 java  closures 

3
什么时候不推荐使用Java
作为重构工作或正在进行的开发的一部分,某种方法或整个类可能会在某种意义上过时。Java支持该@Deprecated注释,以指示可能存在更好的方式来处理所涉及的功能。我想这在公共API中特别有用,在公共API中可能不知道删除API部分的影响。对于非公共API和使用版本控制系统的项目(从某种意义上讲,可以撤消删除操作),什么时候宜弃用而不是删除过时的元素?

5
将RESTful设计应用于整个网站?
这一切可能都碰到了新事物,但是我正在努力设计一个完全RESTful的网站。我了解将RESTful设计应用于用户,照片,博客帖子等内容,因为我认为它们就像“对象”。 但是,关于“关于我们”页面呢。那是什么资源?从RESTful的意义上来说,它甚至是一种资源吗?另外,说我去URL“ http://www.example.com/”,我要什么资源?索引资源?

10
Python程序员是否发现空白问题不便?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 许多程序员在初次接触Python时立即被空白的重要性所困扰。我听到过种种不方便的原因,但我从未听过Python程序员的抱怨。 当然,由于我在Java世界中度过了自己的职业生涯,因此我并没有遇到很多Python程序员。 因此,我的问题是那些参与大型Python项目(超过3个月,使用Python作为主要语言)的人:您是否发现空白问题不便且持续令人讨厌?还是一旦进入流程便不是问题? 我不是在问这个问题,因为我赞成或反对Python,或赞成或反对使用空格。我碰巧喜欢Python,但是我从未将它用于任何大型应用。 如果您没有Python经验,请不要猜测。

4
Scrum中的项目关闭
在典型的软件开发环境中,项目关闭标志着项目的结束。 项目记录已完成并存档, 资源释放, 记录问题和教训,并 为庆祝而举行的正式晚宴/聚会。 最后一步是可选的,尽管对参与者来说非常有激励作用。:-) 将此与Scrum进行对比。我知道混乱是由积压的故事引起的。因此,从技术上讲,每次迭代都会关闭某些故事。因此,这里有两个问题。 对于同时处理多个同时进行的项目的小组,项目关闭情况如何? 对于涉及多个组的项目,此概念如何适用? 还是,项目关闭条款根本不适用于T&M项目?
11 scrum 

7
解析XML的技术
我总是发现XML有点麻烦处理。我不是在谈论实现XML解析器:我是在谈论使用现有的基于流的解析器,例如SAX解析器,该解析器逐节点处理XML。 是的,为这些解析器学习各种API确实很容易,但是每当我查看处理XML的代码时,我总是发现它有些复杂。根本的问题似乎是XML文档在逻辑上被分离为各个节点,但是数据类型和属性通常与实际数据分离,有时通过多层嵌套。因此,当单独处理任何特定节点时,需要维护许多额外的状态以确定我们在哪里以及下一步需要做什么。 例如,给出一个典型XML文档的片段: <book> <title>Blah blah</title> <author>Blah blah</author> <price>15 USD</price> </book> ...如何确定何时遇到包含书名的文本节点?假设我们有一个简单的XML解析器,它就像一个迭代器,每次调用时,都会为我们提供XML文档中的下一个节点XMLParser.getNextNode()。我不可避免地发现自己正在编写如下代码: boolean insideBookNode = false; boolean insideTitleNode = false; while (!XMLParser.finished()) { .... XMLNode n = XMLParser.getNextNode(); if (n.type() == XMLTextNode) { if (insideBookNode && insideTitleNode) { // We have a book title, so do something with it } …

6
如何解决不可复制/随机发生的错误?
我们有一个多语言网站,几天前在其中发现了一个错误。它以其他语言显示其他语言数据,并且还选择了英语之类的混合数据,但同时还在页面中显示其他语言数据,反之亦然。它很少执行此操作,但是它存在于网站中。遍历代码也无济于事,因为这种情况并非总是如此。 有什么建议可以及时发现问题?我在这里要求策略。

12
离岸错误修复
如果准雇主告诉您“由于开发人员讨厌修复错误,他们将错误修复外包了”,您会怎么想?您可能会担心什么?
11 bug  offshore 

7
结构化编程与OO编程
我正在做一个演示,以显示结构化编程和面向对象编程之间的差异,并且我想以一个示例说明为什么人们需要OOP,在该示例中,应用OOP概念将使编码变得更加容易,从而使听众真正感到他们需要OOP。 有任何想法吗 ??

6
为什么绑定不是大多数语言中的本机功能?
恕我直言,将变量绑定到另一个变量或表达式是数学中非常普遍的情况。实际上,在一开始,许多学生认为赋值运算符(=)是某种绑定。但是在大多数语言中,不支持将绑定作为本机功能。在某些语言(例如C#)中,在满足某些条件的情况下,某些情况下支持绑定。 但是恕我直言,将其作为本机功能实现就像更改以下代码一样简单- int a,b,sum; sum := a + b; a = 10; b = 20; a++; 为此- int a,b,sum; a = 10; sum = a + b; b = 20; sum = a + b; a++; sum = a + b; 意味着将绑定指令作为赋值放置在每条指令之后,以更改右侧表达式中包含的任何变量的值。之后,修剪多余的指令(或在编译后进行汇编中的优化)即可。 因此,为什么大多数语言本身都不支持它。特别是在C语言家族中? 更新: 从不同的观点来看,我认为我应该更精确地定义这个提议的“绑定”- 这是绑定的一种方式。只有总和绑定到a + b,反之亦然。 绑定的范围是本地的。 绑定一旦建立,就无法更改。意思是,一旦将总和绑定到a …

1
软件事务存储的可组合性示例
经常被提及的软件事务存储的主要优点之一是可组合性和模块化。可以将不同的片段合并以产生更大的成分。在基于锁的程序中,通常不是这种情况。 我正在寻找一个简单的示例,用实际代码对此进行说明。我希望在Clojure中举一个例子,但是Haskell也很好。如果该示例还展示了一些不易编写的基于锁的代码,则可以加分。
11 haskell  clojure  stm 


4
贵公司如何管理知识和信息?
我对贵公司用来捕获和存储知识的体系结构,方法和软件感兴趣。 信息是否易于搜索(尤其是非技术人员)? 它存储在中央存储库中还是多个位置中? 您认为当前的实施方案是否足够?有什么可以改进的?

6
您看到“电子表格编程”的用法了吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 不久前,我偶然发现了使用电子表格(我的意思是单元格和公式而不是宏代码)作为指定编程逻辑的方法的概念。这个想法是: 用明确定义的计算流程创建电子表格(有时更适合于电子表格的“数据流”范式,而不是面向过程或面向对象的编程风格) 定义输入单元 定义输出单元 将整个内容编译为独立的可执行类(或函数,过程等) 在更广泛的软件项目中以常规代码使用它 使用电子表格作为源代码,以便随着时间的推移进行维护 想法是使用这种技术来解决真正适合模型的问题,这将导致文档自然且易于维护的代码。我很想知道您是否有使用该技术的经验以及用途。我想到的一个示例应用程序是保险费率计算器,通常由精算师在Excel表格上起草,创建和验证,然后才以某些难以维护的编程逻辑进行编码(这是一个痛苦的过程)。

6
如何编写可能无法正确实例化对象的构造函数
有时您需要编写可能会失败的构造函数。例如,假设我要实例化带有文件路径的对象,例如 obj = new Object("/home/user/foo_file") 只要路径指向适当的文件,一切都很好。但是,如果字符串不是有效路径,则应该中断。但是如何? 你可以: 抛出异常 返回空对象(如果您的编程语言允许构造函数返回值) 返回一个有效的对象,但带有一个标志,指示其路径设置不正确(ugh) 其他? 我假设各种编程语言的“最佳实践”将以不同的方式实现此目标。例如,我认为ObjC更喜欢(2)。但是(2)不可能在C ++中实现,在C ++中,构造函数必须将void作为返回类型。在这种情况下,我认为使用(1)。 您可以使用您选择的编程语言来说明如何处理此问题并解释原因吗?

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.