软件工程

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

3
何时使用RPC-ish方法比REST更合适?
看这次谈话后的休息,再利用和缘分由史蒂夫Vinoski的,我不知道是否有商业案例在新建项目(基于XML)RPC十岁上下的设置,即REST不能以更好的方式解决。 他提到了一些RPC问题: 专注于语言(使分布式系统适应该语言,而不是相反) “使它看起来是本地的”(并将失败和延迟作为例外而不是规则来处理) 旨在独立于语言,但仍将跨语言的“函数调用”作为主要成分 IDL样板 类型安全的错觉 还有更多... 只是为了生动起见,RPC vs REST的一些Google Instant结果:

6
为什么嵌套循环被认为是不好的做法?
我的讲师今天提到,可以在Java中“标记”循环,以便在处理嵌套循环时可以引用它们。因此,我在不了解该功能的情况下查找了该功能,并在很多地方对该功能进行了解释,然后警告并阻止嵌套循环。 我真的不明白为什么吗?是否因为它影响代码的可读性?还是更具“技术性”?

3
Java是否免费/开源?
根据GNU通用公共许可(GPL)的条款,Sun在2006年11月13日发布了大部分Java作为自由和开源软件(FOSS)。2007年5月8日,Sun完成了该过程,除了一小部分未获得版权的代码外,所有Java核心代码都可以在自由软件/开源发行条款下获得。 OpenJDK(开放Java开发工具包)是Java编程语言的免费开源实现。这是Sun Microsystems在2006年开始的努力的结果。该实现已获得GNU通用公共许可证(GNU GPL)的许可,但有链接例外。 为什么仍然有人说Java不是像言论自由那样的开源或自由的? 我想念什么吗? Java仍然是专有的吗?

7
为什么不继承构造函数?
我对如果构造函数是从基类继承而可能出现的问题感到困惑。Cpp Primer Plus说, 构造函数与其他类方法的不同之处在于它们创建新对象,而其他方法则由现有对象调用。这是构造函数不被继承的原因之一。继承意味着派生的对象可以使用基类方法,但是对于构造函数,该对象直到构造函数完成工作后才存在。 我了解在对象构造完成之前调用了构造函数。 如果子类继承(父类是指子类能够覆盖父类方法等,而不仅仅是访问父类方法),则父构造函数会导致问题吗? 我知道没有必要从代码中显式调用构造函数(尚不知道。),而在创建对象时除外。即使这样,您也可以使用某种机制来调用父构造器(在cpp中,使用::或使用member initialiser list,在java中使用super)。在Java中,在第一行有一个强制调用它,我知道这是要确保首先创建父对象,然后再进行子对象构造。 它可能会覆盖它。但是,我无法提出可能造成问题的情况。如果孩子确实继承了父构造函数,那会出错吗? 这样只是为了避免继承不必要的功能。还是还有更多呢?
33 c++  inheritance 

2
NoSQL数据库设计的最佳实践
我刚刚开始使用基于NoSQL文档的数据库(MongoDB),并且对设计数据库的最佳实践感到好奇。 我认为体系结构应该与关系数据库不同?我是否仍应针对规范化的数据库? 例如,我有一个特定的用例。 我有一个具有租用历史记录(地址数组)的用户,该数组应该是用户数组还是具有共享密钥的单独集合?
33 design  nosql 



4
这种重构的术语是什么
我敢肯定,以下的重构术语都有用,但是我不记得了,我的Google-fu让我失望了! 重构将if语句移动到将对其产生最大影响的位置,例如更改此位置 $test = someFunctionThatReturnsABool(); for($x = 0; $x < 10000; $x++) { if ($test) { echo $x; } } 对此 $test = someFunctionThatReturnsABool(); if ($test) { for($x = 0; $x < 10000; $x++) { echo $x; } }

4
Dart对网络程序员有任何有用的功能吗?
http://www.dartlang.org/ 我已经非常简短地检查了该站点,并感到好奇。使用Dart有什么好处吗?它只是JavaScript的替代品吗? 看起来更简单的Java。在工作中编写了大量的C#,这种语言的感觉非常像我惯用的语言,因此学习语法看起来像是轻而易举的学习。是否有人对此语言有任何意见或经验? (与CoffeeScript(=我没有使用Ruby语法)相比,该语法对我来说更熟悉)。
33 javascript  dart 

6
我的软件托管在“不良”网站上。我能做些什么吗?
编辑:谢谢所有的答案,伙计们!我想我将在网页上包含一些文字,告诉用户只能从提供的链接下载。事实是,有一些合法且不合法的网站已在我的软件上启用,因此,告诉用户避免访问我未链接的任何网站,这会更安全。 非常感谢您提供的所有帮助! 原版的: 我创建的软件托管在您可以称为“不良”网站的网站上。很难解释,因此我仅提供一个示例。 我做了一个免费的密码生成器。该软件以及我的大多数其他免费软件都可以在该网站上获得。 这是他们对我的软件的描述: Platform: 7/7 x64/Windows 2K/XP/2003/Vista Size: 61.6 Mb License: Trial File Type: .7z Last Updated: June 4th, 2011, 15:38 UTC Avarage Download Speed: 6226 Kb/s Last Week Downloads: 476 Toatal Downloads: 24908 不仅大小完全歪斜,而且不是试用软件,而是免费软件。事实是,这不是我担心的描述,而是下载链接。 该网站是一个骗局网站。它们显然链接到“破解”和“密钥生成器”,但不仅本身是非法的,而且它们实际上链接到伪造的下载网站,这些网站会给您病毒并收取您的信用卡费用。 只是列出本网站有问题的地方:他们声称所有软件都是付费软件,然后提供密钥生成和破解的下载;他们伪造有关该计划的所有详细信息以及任何计划的评论和评级;它们和它们链接到的下载站点可能是由同一个人运行的,因此他们从这些谎言中获利。 我只是一个少年,无法采取法律行动。不幸的是,这意味着我无法做任何会真正获得结果的事情。我希望只能从我的个人网站上下载软件。我有四个合法位置的链接来下载我的软件,仅此而已。 本质上,对此我能做些什么?如上所述,我无法提起法律诉讼,但是有什么办法可以通过将其列入黑名单来阻止该网站的访问量?我可以在我的网站上要求仅从提供的链接中下载软件吗?还是我应该不介意?因为说实话,这是Google搜寻结果中的一种方法。

8
如何编写可以从(几乎)任何编程语言调用的一组函数?
我想找到一种编写可以通过语言绑定(或其他框架)从任何其他编程语言访问的API的方法。是否有可能做到这一点?如果是这样,哪种编程语言最适合编写“跨语言” API?我的目标是创建可以从正在使用的任何编程语言中访问的一组函数,这样就无需手动以每种语言重新编写整个API。
33 api  languages  binding 

10
视图和模型是否应该沟通?
根据MVC体系结构的Wikipedia页面,视图可以由模型自由通知,也可以自由查询模型的当前状态。但是,根据Paul Hegarty在Stanford的第1讲第18页上的iOS 5课程的介绍,所有交互都必须通过控制器进行,而Model和View则永远都不应该相互了解。对于我来说,尚不清楚Hegarty的声明是否一定要简化课程,但我很想说他打算这样做。 您如何解释这两种相反的观点?
33 design  mvc 

6
UUID冲突[关闭]
鉴于我们使用的随机数生成器不是真正的随机数,并且我们可能有数十台或数百台运行相同代码的相同机器,是否有人对UUID冲突的可能性进行了任何真正的研究,尤其是对于版本4(随机)UUID?生成UUID? 我的同事认为测试UUID冲突是完全浪费时间,但是我总是输入代码以从数据库中捕获重复的键异常,然后尝试使用新的UUID。但是,如果UUID来自另一个进程并引用一个真实对象,那将无法解决问题。
33 random  uuid 

1
方法和属性的通用词是什么?
在类图中,每个类都包含方法和属性。除了内容或项目之类的通用名称外,描述这两个词的正确词是什么? 内容: Orange类扩展了Fruit类并继承了它的东西。 其中东西 =两个方法和属性的单一字

10
将成员变量作为方法参数传递
在一个项目中,我发现了这样的代码: class SomeClass { private SomeType _someField; public SomeType SomeField { get { return _someField; } set { _someField = value; } } protected virtual void SomeMethod(/*...., */SomeType someVar) { } private void SomeAnotherMethod() { //............. SomeMethod(_someField); //............. } }; 我如何说服我的队友这是错误的代码? 我相信这是不必要的并发症。如果已经有成员变量,为什么还要将其作为方法参数传递呢?这也违反了封装。 您还发现此代码还有其他问题吗?

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.