问题标签 [contract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
159 浏览

java - 标准 Java 合约列表

我正在为我的一些朋友编写一个小型教程系列,向他们介绍 Java。他们是专业的程序员,而且是优秀的。基本上,我们的商店正在运行 Progress 4GL(我刚刚吐了一点),而且我们继承了一个非常糟糕的代码库。我们希望在不久的将来用 Java 服务替换其中一些编写不佳的模块。

Java 最看重的一件事是合约。是否有 Java 中最常见合约的编译列表?我希望像平等合同这样的东西在那里。

0 投票
1 回答
741 浏览

wcf - 具有不同来源或操作 URL 的操作合同

我们的第三方 API 提供两种不同的 Web 服务,但具有相同的方法、模型。然而,它们仅在 URI 上有所不同(Web 服务路径、操作路径 [操作合同]。

所以我决定:

  1. 使用 VS 从他们的 wsdl 生成代码。

  2. 编辑命名空间以使用相同的“通用”而不是使用服务引用,而是使用 Reference.cs 编辑的代码。

  3. 创建一个新代理来处理要使用的服务的正确 URI(将 Reference.cs 包装在其中)。

现在,我遇到了“Method1”的问题,因为它们有不同的操作名称。有以下例外:

“服务器无法识别 HTTP Header SOAPAction 的值:http: //www.api.com/service/Method1

我只是注意到它正确的操作名称是: http: //www.api.com/service1/Method1

现在的问题是,是否有任何配置或行为可用于更正每个服务的每个方法的操作名称?

或者只要他们继续为 API 的每个实现添加合约,我也应该继续为每个实现添加合约,并为此使用 ChannelFactory?

请帮忙,谢谢。

0 投票
1 回答
1108 浏览

.net - 合同要求与合同要求

我注意到微软在 .NET 4 中以一种奇怪的方式命名了他们的代码合同相关函数。

他们在“require”和“ensure”的末尾添加“s”,所以有Contract.Requires()和Contract.Ensures(),但没有在“assert”和“assume”的末尾,所以有Contract .Assert() 和 Contract.Assume()。这种差异让我有点困惑。

事实上,我真正的问题是,我正在尝试在 PHP 中使用代码合同,所以我写了一些东西来模仿 .NET 4 中的“合同”类。由于 PHP 没有内置方法来验证参数的类型,我在自己的 Contract 类中添加了一个方法来进行一些验证。我选择“expect”这个词,因为我认为“expect parameter 'bar' to be string but...”是参数类型错误时的常见消息。问题来了。我应该将我的方法命名为 Contract.Expect() 还是应该命名为 Contract.Expects()?

我来自一个非英语国家,很抱歉我的英语不好。可能它实际上是一个英语问题,但我认为只有程序员才能帮助我。很抱歉,如果这个问题在这里不合适。

0 投票
1 回答
426 浏览

wcf - 通过 WCF 验证自我跟踪实体 (EF)

在添加/更新实体时,我无法定义我OperationContract应该是什么。我想ObjectContext通过 WCF 服务发送一个实体(或实体列表)(这将为我实例化一个业务管理器以进行实际验证)。

如果实体通过了所有验证规则(这很可能需要查询数据库以确定更复杂的业务规则的通过/失败),它将被保存到数据库中,我需要能够传回它的 ID(身份列主键)和并发令牌的值(时间戳列),但如果它失败了,显然我们希望有一条或多条消息说明出了什么问题。在更新的情况下,我们需要的只是并发令牌的新值,但我们同样需要验证消息。

为了使它更棘手,一个实体也可以有多个子/孙实体。例如,行程将有止损,可能有订单。

我只是想知道人们如何在现实世界中处理这个问题。最简单的示例仅显示 WCF 服务的操作,例如:

有没有人有任何处理这个的好主意?我想我真的只是在这里寻找实用的建议。

我们是否应该尝试在一个服务调用中保存一组对象?

我们是否应该通过故障合约来传达验证消息?

任何建议/意见都会有所帮助,谢谢!

0 投票
1 回答
1580 浏览

wcf - WCF 端点合同名称——如果它是通用的,如何分配它?

  • IGenericService 驻留在名为:“ABC.Server.Common”(ABC.Server.Common.dll) 的程序集中
  • MyType 驻留在名为:“ABC.Server.Modules.X”的程序集中 (ABC.Server.Modules.X.dll)

代码:

精简代码:

Web.config:
我不使用 SVC 文件,而是在 Web.config 中处理了这些信息:

我在合同名称中输入了什么才能使其真正起作用?

0 投票
1 回答
5754 浏览

wcf - 如何在服务合同中传递复杂类型参数

这是一个已经存在的 XML 请求格式,我必须实现一个 Web 服务,该格式将接受下面这种格式的这个请求。

(方法或操作名称)(复杂类型 1)(复杂类型 2)(复杂类型 3)(某些原始数据类型 1)xyz(/某些原始数据类型)(某些原始数据类型 2)abc(/某些原始数据类型)(/复杂类型 3 ) (/complex type2) (/complex type1) (/方法或操作名称)

我以前从未编写过 Web 服务,并且从过去 2 天开始一​​直在阅读有关服务合同和数据合同的内容。

据我所知,创建服务合同

0 投票
7 回答
26968 浏览

java - 为什么我的比较方法会抛出异常——比较方法违反了它的一般合同!

为什么这段代码

抛出这个异常: ERROR/AndroidRuntime(244): java.lang.IllegalArgumentException: Comparison method violates its general contract!
ERROR/AndroidRuntime(4446): at java.util.TimSort.mergeLo(TimSort.java:743)

sre.getSponsored() 方法返回一个布尔值。

谢谢。

0 投票
2 回答
1791 浏览

wcf - 以编程方式调用 WCF REST 服务而不参考合同

这是有用的基础:

如何以编程方式将客户端连接到 WCF 服务?

但是,我希望我的客户在不了解任何服务合同的情况下以 REST 风格做同样的事情。

看到这是如何在 Javascript / jQuery 中轻松完成的,C# 没有提供任何选项似乎很奇怪。

0 投票
8 回答
6922 浏览

java - 有没有一种漂亮的方法来断言 Java 方法中的前置条件?

我的许多函数在声明下方都有大量验证代码:

我想精确指定某些输入的有效范围 - 例如 A > B、C => 1 或 str_d.length() > 0。

鉴于我的一些函数有很多必须验证的参数,我最终可以编写很多样板来验证前置条件。我正在编写一个主要供非技术开发人员使用的库,我们发现验证函数输入是帮助用户正确操作 API 的最佳方式。我们越早提出错误,客户要做的工作就越少。

有没有更优雅的方法来指定我的方法中的前置条件、后置条件(可能还有不变条件)。

一位同事告诉我 Eiffel 编程语言的一个特性,它允许以非常自然的方式描述前/后/不变条件,而无需重复大量样板代码。Java 语言是否有一个附加组件可以让我使用其中的一些魔法?

0 投票
1 回答
3231 浏览

html - 在鼠标悬停时展开 DIV/在鼠标悬停时取消展开

我找到了这个问答,

但是当我修改它以供我在这里看到http://jsfiddle.net/6PDEA/4/时,最底部的div不会保持关闭状态。任何人都可以帮忙吗?

编辑:第一个答案修复了“加载时扩展”问题,但不是最底层的 DIV


编辑 2:最终工作代码:http: //jsfiddle.net/6PDEA/5/

修复了底部 DIV 问题。我刚刚在其下方添加了另一个 DIV,其空白图形大小为 785w x 30h。