在进行DDD项目时如何布局Maven模块?您是否将所有图层(演示文稿,应用程序,域,基础结构)放在一个模块中,或者您是否为每个图层创建了一个单独模块的多模块布局?或完全不同的东西?
我注意到由Domain Language和Citerus公司开发的DDD示例应用程序使用单个Maven模块,每个层作为该模块内的单独Java包.这是既定的最佳实践,还是应该考虑更精细的模块布局?
假设我们有一个名为SomeClass的java类
public class SomeClass {
private boolean isMethod() {
return false;
}
public void sendRequest(String json, String text) {
int messageId;
if (isMethod()) {
messageId = getMessageId(json);
sendMessage(messageId, text);
} else {
throw new IllegalArgumentException();
}
}
private void sendMessage(int messageId, String text) {
}
private int getMessageId(String text) {
Pattern p = Pattern.compile("messageId=(\\d+)&");
Matcher m = p.matcher(text);
if (m.find()) {
return Integer.valueOf(m.group(1));
}
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
不要注意方法的名称,它们都是可选的.
sendRequest(String json, String text)方法.isMethod()和getMessageId(json),并验证 …我已经编程了一段时间,但从未接受过正规的计算机科学教育.我想知道是否有一个资源超过了关键编程概念,如构造,多态等,这些资源适用于不同的语言.如果资源提供示例,它也会非常有用.
我有以下代码片段:
Process proc = runtime.exec(command);
errorGobbler = new ErrorStreamGobbler(proc.getErrorStream(), logErrors, mdcMap);
outputGobbler = new OutputStreamGobbler(proc.getInputStream(), mdcMap);
executor.execute(errorGobbler);
executor.execute(outputGobbler);
processExitCode = proc.waitFor();
Run Code Online (Sandbox Code Playgroud)
gobblers Runnable使用a BufferedReader来读取执行过程的输入和错误流.虽然这大部分时间都有效,但我偶尔会看到窗口(约2分钟左右),我得到的processExitCode是0,表示正常终止,但输入和错误流中没有任何内容 - 甚至没有指示结束-流.
就像我之前说过的那样,这种情况大部分时间都有效,但这种失败每隔一段时间就会发生 - 我完全感到困惑.有任何想法吗?
碎布