当我查看Assert类JavaDoc中的示例时
assertThat("Help! Integers don't work", 0, is(1)); // fails:
// failure message:
// Help! Integers don't work
// expected: is <1>
// got value: <0>
assertThat("Zero is one", 0, is(not(1))) // passes
Run Code Online (Sandbox Code Playgroud)
比方说,我没有看到一个很大的优势assertEquals( 0, 1 ).
如果构造变得更复杂但是你看到更多的优点,那么对于消息可能很好吗?可读性?
我在settings.xml中有3个存储库,因为我需要来自所有存储库的工件.每当找不到依赖项时,Maven就会尝试
Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://some.server/mvn2repo/3rdParty/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.9.1/lucene-core-2.9.1.pom
<success>
Run Code Online (Sandbox Code Playgroud)
所有存储库,但大多数时候在中心(repo1)找到工件.我希望Maven先检查这个回购.我在settings.xml中尝试了声明顺序,但是没有用.根据fgysin,我也尝试了相反的顺序,它没有改变任何东西.
我的Maven版本:
C:\>mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_15
Java home: C:\Program Files\Java\jdk1.6.0_15\jre
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows vista" version: "6.0" arch: "amd64" Family: "windows"
Run Code Online (Sandbox Code Playgroud)
我的 settings.xml
<profiles>
<profile>
<id>space</id>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>s1-releases</id>
<name>System One Releases</name>
<url>http://some.server/mvn2repo/releases</url>
</repository>
<repository>
<releases> …Run Code Online (Sandbox Code Playgroud) 我收到一个包含来自其他服务的有效JSON的字符串.我想用Nancy转发这个字符串,但也将内容类型设置为"application/json",这将允许我删除在客户端使用$ .parseJSON(数据)的需要.
如果我使用Response.AsJson,它似乎会破坏字符串中的JSON并添加转义字符.我可以用字符串创建一个Stream并设置响应类型如下:
Response test = new Response();
test.ContentType = "application/json";
test.Contents = new MemoryStream(Encoding.UTF8.GetBytes(myJsonString));
Run Code Online (Sandbox Code Playgroud)
但是想知道是否有更简单的方法?
我喜欢我的代码是有序的,即格式正确,可读,设计,测试,检查错误等.事实上我对它很狂热.(甚至可能比狂热更多...)但在我的经验中,帮助代码质量的行动很难实现.(通过代码质量,我的意思是您日常生成的代码的质量.软件质量与开发过程等的整个主题要广泛得多,而不是这个问题的范围.)
代码质量似乎并不受欢迎.我的经验中的一些例子包括
可能每个Java开发人员都知道JUnit,几乎所有语言都实现了xUnit框架,但在我所知道的所有公司中,只有很少的正确单元测试存在(如果有的话).我知道由于技术限制或紧迫的截止日期,并不总是可以编写单元测试,但在我看到的情况下,单元测试可能是一种选择.如果开发人员想为他/她的新代码编写一些测试,他/她可以这样做.我的结论是开发人员不想编写测试.
静态代码分析通常在小型项目中进行,但并不真正用于强制执行编码约定或在企业项目中发现可能的错误.通常甚至会忽略像潜在空指针访问这样的编译器警告.
会议发言人和杂志会谈论很多关于EJB3.1,OSGI,云和其他新技术,但几乎没有关于新的测试技术或工具,新的静态代码分析方法(例如SAT解决方案),有助于保持更高质量的开发流程,如何遗留代码的一些讨厌的野兽被测试,...(我没有参加很多会议,它可能在敏捷主题的会议上看起来不同,因为单元测试和CI等具有更高的价值.)
那么为什么代码质量如此不受欢迎/被认为无聊呢?
编辑:
谢谢你的回答.其中大多数涉及单元测试(并已在相关问题中进行了讨论).但是还有很多其他的东西可以用来保持代码质量很高(参见相关问题).即使您无法使用单元测试,也可以使用每日构建,向IDE或开发过程添加一些静态代码分析,尝试配对编程或强制执行关键代码的审核.
我有一个List,并希望将其减少为单个值(函数式编程术语"折叠",Ruby术语inject),如
Arrays.asList("a", "b", "c") ... fold ... "a,b,c"
Run Code Online (Sandbox Code Playgroud)
由于我感染了函数式编程思想(Scala),我正在寻找一种更简单/更短的编码方式
sb = new StringBuilder
for ... {
append ...
}
sb.toString
Run Code Online (Sandbox Code Playgroud) 我想弄清楚一些遗留代码在做什么.这条线到底在做什么,为什么我会这样需要呢?
String lineSeparator = (String) java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("line.separator"));
Run Code Online (Sandbox Code Playgroud)
我在Weblogic 8上运行的web/ejb应用程序的logger实现中找到了它.据我所知,没有启用特殊的安全策略.(我不喜欢从sun.*包中导入,所以我想摆脱这条线;-)
我想开始学习Forth(比如相关的Stack Overflow问题,学习和使用Forth是否实用?).我看到有很多实现.我想用一个
可以推荐什么特定的实现?
我想使用Apache POI在Scala应用程序中读取/创建Excel文件.当然,我可以直接使用POI库,毕竟它是Java,但我想让Scala感觉到.那么是否有一个Scala包装器带来了Scala的感觉(使用隐式转换),即某种"Scala-POI-DSL"免费提供?
我的硬盘上有两个(每个2GB)文件,想要将它们相互比较:
java.io.FileInputStream两次读取并在每个字节的字节上比较字节数组需要20多分钟.java.io.BufferedInputStream 缓冲区为64kb,文件以块的形式读取然后进行比较.比较完成是一个紧凑的循环
int numRead = Math.min(numRead[0], numRead[1]);
for (int k = 0; k < numRead; k++)
{
if (buffer[1][k] != buffer[0][k])
{
return buffer[0][k] - buffer[1][k];
}
}
Run Code Online (Sandbox Code Playgroud)我该怎么做才能加快速度呢?NIO应该比普通的流更快吗?Java无法使用DMA/SATA技术,而是做一些缓慢的OS-API调用吗?
编辑:
谢谢你的答案.我做了一些基于它们的实验.安德烈亚斯表示
流或
nio方法没有太大差别.
更重要的是正确的缓冲区大小.
我的实验证实了这一点.由于文件是以大块读取的,因此即使是额外的缓冲区(BufferedInputStream)也不会提供任何内容.优化比较是可能的,并且我通过32次展开获得了最佳结果,但与磁盘读取相比,花费的时间比较小,因此加速很小.看起来我无能为力;-(
在我的个人知识库上工作...我想格式化我的文档,甚至在wiki语法的本地硬盘上.有时我会将它们上传到(公司)维基,有时我会从那里下载它们.计划中有一些工具可以支持此流程并搜索我的知识库(文档)以供日后使用.显然,我希望降价与大多数兼容,最大限度地减少转换工作.
所以我的问题类似于这个相关的问题,但是