小编Viv*_*ath的帖子

如何测试与第三方API的连接是否适合持续集成?

我前段时间编写了一个测试,用于测试我在代码和第三方API之间编写的集成.测试确保集成正常工作,并确保我们得到预期的结果.

正式版本今天失败,因为测试在尝试连接到第三方API时收到500错误.

测试这样的情况是否有意义?

testing continuous-integration integration-testing automated-tests regression-testing

11
推荐指数
2
解决办法
2772
查看次数

剖析Maven

是否有工具可以分析Maven构建过程本身,以便我可以看到构建花费最多时间的位置?

我们在Maven 3.0.3和3.0b1方面遇到了问题.与3.0.3(9m00s)相比,我们的项目在3.0b1(3m30s)下构建得更快.使用3.0b1,构建速度提高约63%(如果我的数学运算正确).

我尝试搜索有关Maven 3的性能比较和性能问题,但无法找到任何内容.

UPDATE

我通过查看maven来源做了一些研究,这是我发现的:

使用jconsole时,我发现大部分时间(在3.0.3中)花在内部DefaultProjectDependenciesResolver.java.所以我将源代码下载到3.0b1和3.0.3以查看发生了什么.我注意到在3.0.3中有两个版本的类.一个在org.apache.maven.project,而另一个在org.apache.maven.在3.0.3中,似乎也使用了前者.在单步执行代码时,我看到大部分时间都花在了这个语句上:

node = repoSystem.collectDependencies( session, collect ).getRoot();
Run Code Online (Sandbox Code Playgroud)

在3.0b1中,代码执行:

ArtifactResolutionResult result = repositorySystem.resolve( request );
Run Code Online (Sandbox Code Playgroud)

我也注意到它respositorySystem的类型RepositorySystem,具体实现是LegacyRepositorySystem.我假设在Maven 3处于测试版之前使用它直到创建新实现?回到3.0.3,该collectDependencies方法DefaultRepositorySystem.java属于其中的一部分org.sonatype.aether.impl.internal.这最终调用collectDependencies内部DefaultDependencyCollector.java也是其中的一部分org.sonatype.aether.impl.internal.我假设这是依赖图的构建方式.

我现在想知道这是因为我们的依赖关系是如何构建的.以前有没有人见过这种行为?

UPDATE

有一个问题在JIRA关于与修复建议沿着这个问题.我发布了详细信息作为答案.

UPDATE

问题是由于maven 3.0.3(1.11)中使用的以太版本.版本1.12的以太修复了这个问题.我检查了maven 3.0.3的源代码并编辑了POM,将以太版本从1.11更改为1.12.然后我从源代码构建了maven,用我构建的版本替换了我当前的版本.构建时间的缩短是显着的.

如果您不想从源代码构建maven,可以使用1.12版本替换maven的lib目录中的以太库.这也应该有效.

我不确定这个改变是否会进入3.0.4,因为maven开发人员说有许可证的变化从以太1.11到以太1.12,所以他们仍在讨论它.

maven-3 maven

11
推荐指数
1
解决办法
3217
查看次数

字符串到整数Smalltalk

非常简单的问题我需要从用户获取一个整数,我只知道如何从中获取一个字符串.因此,如果有办法从用户获取整数或将字符串转换为整数,请告诉我.

string integer smalltalk type-conversion

10
推荐指数
2
解决办法
7299
查看次数

Java:如何同步数组访问以及对同步条件中的内容有何限制

我有一个2x2阵列,我有两个线程在运行.

可以在数组中使用java中的synchronized语句吗?

锁定如何工作?java教程线程说同步语句适用于对象,所以我不确定它们是什么意思.另一个网站说我可以发表一个声明

synchronized (array1[]){

}
Run Code Online (Sandbox Code Playgroud)

这是否同步访问数组中的所有内容,以便将数组锁定到其他线程?

如果我有一个二维数组我可以使用

synchronized (array1[i]) 锁定数组的一行?

是否可以用类似的东西锁定单个数组值

synchronized (array1[i][j]){

}
Run Code Online (Sandbox Code Playgroud)

但是,非常感谢提示或帮助.实际上我已经把它打开了,无论是否正确.但我想知道将来使用

java synchronization

10
推荐指数
1
解决办法
2万
查看次数

在JSP中定义类

请不要打我的脸!我知道这在好的设计面前飞得很快,但我只是在写一个测试页来展示一些东西.我们的webapp模块(正确)无法直接访问我们的域类.我不想在JSP之外创建一个完整的类,因为该页面仅用于演示目的,并且我不想出于同样的原因编写大量无关的代码.我试图在JSP中以通常的方式定义一个类,但这不起作用(抛出了很多编译时错误).这是一个快速肮脏的,一次性的交易(一旦我完成,我将摆脱它).我想知道这是否可行.如果没有,那么我将走很长的路.

<%

 public class Person {
    private int id;
    private int age;
    private String name;

    /*
      ... ctor and getters and setters
    */

 }
%>
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

convert-jsp-to-java:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------

An error occurred at line: 57 in the generated java file
Syntax error on token "class", invalid VariableDeclarator

An error occurred at line: 73 in the generated java file
The return type is incompatible with Object.getClass()

An error occurred at line: 74 in the generated java …
Run Code Online (Sandbox Code Playgroud)

java jsp class

9
推荐指数
2
解决办法
4万
查看次数

枚举中的逻辑

我和我的同事正在讨论枚举中的逻辑.我个人的偏好是在Java枚举中没有任何逻辑(尽管Java提供了这样做的能力).这个问题的讨论集中在枚举内部有一个方便的方法返回一个地图:

public enum PackageType {
  Letter("01", "Letter"),
  ..
  ..
  Tube("02", "Packaging Tube");

  private String packageCode;
  private String packageDescription;

  ..
  ..

  public static Map<String, String> toMap() {
     Map<String, String> map = new LinkedHashMap<String, String>();
     for(PackageType packageType : PackageType.values()) {
         map.put(packageType.getPackageCode(), packageType.getPackageDescription());
     }
     return map;
  }
}
Run Code Online (Sandbox Code Playgroud)

我个人的偏好是将其推广到服务中.在enum中使用方法的论据集中在便利性上.这个想法是你不必去服务获得它,但可以直接查询枚举.

我的论点集中在关注的分离和将任何类型的逻辑抽象为服务.我不认为"方便"是将这种方法置于枚举中的有力论据.

从最佳实践的角度来看,哪一个更好?或者它只是归结为个人偏好和代码风格?

java enums

9
推荐指数
1
解决办法
3638
查看次数

@Max和@DecimalMax(以及@Min和@DecimalMin)之间的区别

什么之间的区别@Max@DecimalMax,和@Min@DecimalMin在Hibernate验证?

看看Javadocs,他们似乎正在执行相同的约束.

hibernate hibernate-validator

9
推荐指数
1
解决办法
9338
查看次数

在Javascript中理解try..catch

我有这个尝试并抓住问题.我正在尝试重定向到另一个页面.但有时它会这样做,有时却不行.我认为问题在于尝试和捕捉.有人可以帮助我理解这一点.谢谢

var pg = new Object();
var da = document.all;
var wo = window.opener;

pg.changeHideReasonID = function(){
 if(pg.hideReasonID.value == 0 && pg.hideReasonID.selectedIndex > 0){
  pg.otherReason.style.backgroundColor = "ffffff";
  pg.otherReason.disabled = 0;
  pg.otherReason.focus();
 } else {
  pg.otherReason.style.backgroundColor = "f5f5f5";
  pg.otherReason.disabled = 1;
 }
}

pg.exit = function(pid){

 try {
  if(window.opener.hideRecordReload){
   window.opener.hideRecordReload(pg.recordID, pg.recordTypeID);

  } else {
   window.opener.pg.hideRecord(pg.recordID, pg.recordTypeID);

  }
 } catch(e) {}
 try {
  window.opener.pg.hideEncounter(pg.recordID);

 } catch(e) {}
 try {
  window.opener.pg.hideRecordResponse(pg.hideReasonID.value == 0 ? pg.otherReason.value : pg.hideReasonID.options[pg.hideReasonID.selectedIndex].text);

 } catch(e) {}
 try {
  window.opener.pg.hideRecord_Response(pg.recordID, …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling exception-handling try-catch

8
推荐指数
1
解决办法
9778
查看次数

在编译器中生成中间代码.在处理条件时,是否始终需要AST或解析树?

我正在使用编译器设计类,我们必须实现自己的编译器(使用flex和bison).我曾在解析(写入EBNF的和递归下降解析器)的经验,但是这是我第一次写的编译器.

语言设计非常开放(教授把它留给了我们).在课堂上,教授过去生成中间代码.他说,这是没有必要为我们构建一个抽象语法树或在解析解析树,而且因为我们去,我们可以生成中间代码.

我发现这令人困惑有两个原因:

  • 如果定义函数之前调用函数怎么办?你如何解决分支目标?我想你必须制定一个规则,你必须在使用之前定义函数,或者可能预先定义它们(比如C吗?)

  • 你会如何处理条件?如果你有一个if-else甚至只是一个if,你怎么能解决分支目标为if在条件false(如果你是因为你去生成代码)?

我计划生成AST然后在创建它之后走树,以解析函数和分支目标的地址.这是正确的还是我错过了什么?

compiler-construction parsing language-design intermediate-code

8
推荐指数
1
解决办法
2301
查看次数

如何在RESTful API中处理异常以收集结果?

我们正在设计一个RESTful API来返回文档集合.我们的初始实现使用HTTP状态代码来指示是否无法满足请求.这似乎是一种被广泛接受的最佳实践(例如参见此处).

我们最近遇到了一个用户正在提取1000个文档的问题.其中一个文档检索失败,因此我们返回了HTTP 500状态代码.

另一种方法是返回HTTP 200状态代码,其中有效负载具有我们能够检索的999个文档,然后是错误集合,指示失败的那个.

这种替代方法是违反RESTful原则的吗?应如何处理这种情况?除了这两种方法之外还有其他选择吗?

api rest api-design restful-url

8
推荐指数
1
解决办法
436
查看次数