如果您正在构建一些线性链(java的StringBuilder)或创建具有许多属性的对象(PizzaBuilder),那么构建器模式似乎很好.
是否可以扩展以构建一个树而不指定可能混淆的节点位置?
a
/ | \
c d e
/ \
f g
TreeBuilder tb.addNode(levelNumber, parentNumber, nodeName) // I think this is terrible
tb.addNode(2, 3, g) //terrible
Run Code Online (Sandbox Code Playgroud)
或者这种模式不是一个好主意?
谢谢
我们的商店中有一个反复出现的问题,我们最终得到同一类/实体的3或4个不同的表示.
一个java版本,一个xml版本,一个hibernate版本,一个json版本......你明白了.
显然这会产生维护问题.
模型驱动的体系结构可能不止于此,但我真正喜欢的是一个系统,它允许我以一种方式定义一个类或一个实体,然后生成各种表示.(也许我没有使用正确的术语)
当然,这真的不是那么直截了当,因为假设我们有一个java对象,我们想把它变成JSON以便通过网络发送 - 在java对象中的成员之间可能没有确切的1-1对应关系到JSON中的字段 - 可能会有一些优化,或者其他什么.
我过去曾看过像AndroMDA和EMF这样的东西,发现它们缺乏或笨拙.我不知道他们这些天如何叠加,或者有什么其他系统.
SO对MDA和/或元数据驱动编程的看法是什么?工具是否足够成熟以供认真考虑?
谢谢.
假设我希望生成makefile将一些特定的头路径传递给g ++.
我需要添加到configure.ac或Makefile.am来指定这个?
(注意 - 我不想通过./configure在CPPFLAGS中传递它.我希望在该步骤之前将这些路径放入其中)
编辑:具体来说,我想包括让我们说/ usr/include/freetype和/ mypath/include.
我放了AC_CHECK_HEADERS([freetype/config/ftheader.h])并且它通过了,但似乎没有将它添加到-I传递给g ++.
我也尝试添加CPPFLAGS = -I.:/ usr/include/freetype:/ mypath/include,但它搞砸了并且把-I两次,第一次作为-I.它忽略了第二个-I.
我正在尝试建立一个试验cassandra +猪群.cassandra wiki让你觉得你需要hadoop与猪融为一体.
但是cassandra-src/contrib/pig中的自述文件让人觉得你可以在没有hadoop的情况下在cassandra上运行猪.
如果hadoop是可选的,那么不使用它会失去什么?
假设我想把这棵树写成动物园管理员
. a
. / \
. b c
. / \
. d e
Run Code Online (Sandbox Code Playgroud)
一些其他客户端可以在创建它之后立即删除节点b,但在我能够写入节点"d"或"e"之前.
有没有办法可以原子地编写这个层次结构,或者可能锁定某个路径?
我正在尝试编写 PHP 的 C 扩展。这是我的config.m4。几乎直接从 helloworld 中出来
PHP_ARG_ENABLE(my_ext, whether to enable my_ext support,
[ --enable-my-ext Enable My Ext support])
if test "$PHP_MY_EXT" = "yes"; then
AC_DEFINE(HAVE_MY_EXT, 1, [Whether you have my ext])
PHP_NEW_EXTENSION(my_ext, my_ext.c, $ext_shared)
fi
Run Code Online (Sandbox Code Playgroud)
当我运行 phpize 和 ./configure 时,它会生成一个可以工作的 Makefile。 到目前为止看起来不错。
现在,如果我向 PHP_NEW_EXTENSION 添加额外的源文件,事情就会崩溃。根据此处和此处,调用应如下所示:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
Run Code Online (Sandbox Code Playgroud)
完整语法:
PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Run Code Online (Sandbox Code Playgroud)
好的,所以我将额外的源文件 (logging.c) 添加到该列表中:
PHP_NEW_EXTENSION(my_ext, my_ext.c, logging.c $ext_shared)
Run Code Online (Sandbox Code Playgroud)
和 phpize/configure生成一个成功运行的 Makefile,但实际上并没有构建任何东西。 (是的,我已经做了 make distclean、phpize --clean 等) …
正在浏览一些旧代码并发现:
char buf[...];
int i = 1, j =2;
snprintf(buf, "%d-blah_%d-blah_%N", i, j);
Run Code Online (Sandbox Code Playgroud)
注意只有两个传递的vararg参数,但是3个格式字符串.
它打印
1-blah_2-blah_0
Run Code Online (Sandbox Code Playgroud)
在任何文档中都找不到这个.%N做什么?
该文档显示此作为一个例子:
assert.Contains(t, {"Hello": "World"}, "Hello", "But {'Hello': 'World'} does contain 'Hello'")
但是运行这个失败
mymap := map[string]string{}
mymap["Hello"] = "World"
assert.Contains(t, mymap, "Hello")
Run Code Online (Sandbox Code Playgroud)
导致错误:
Error: "map[Hello:World]" could not be applied builtin len()
切换 mymap 和 "hello" 结果如下:
Error: "Hello" does not contain "map[Hello:World]"
有没有办法让 IntelliJ/CLion 的 Rust 插件使用该--nocapture标志进行 Rust 测试?
我看到我可以为每个测试创建一个“运行”配置,但这不是可扩展的。
此外,IntelliJ 用于打印它为测试而运行的 Cargo 命令。现在输出窗口只显示Testing started at 15:31 ...
尝试运行在 flink 站点上找到的 SocketWindowWordCount 示例教程here。
我启动了 flink 集群,然后运行了一个本地套接字服务器:
nc -l 9000
Run Code Online (Sandbox Code Playgroud)
编译取自github的示例源代码后,我运行该作业
flink run target/SocketWindowWordCount.jar --port 9000
Run Code Online (Sandbox Code Playgroud)
然后我向运行的终端输入一些单词nc。没有任何内容进入预期的输出文件,并且日志重复出现此错误:
2019-07-09 15:54:32,673 ERROR org.apache.flink.runtime.rest.handler.job.JobDetailsHandler - Exception occurred in REST handler: Job f9b3c58ca3026855fd2612e3c86551fa not found
2019-07-09 15:54:35,673 ERROR org.apache.flink.runtime.rest.handler.job.JobDetailsHandler - Exception occurred in REST handler: Job f9b3c58ca3026855fd2612e3c86551fa not found
2019-07-09 15:54:38,673 ERROR org.apache.flink.runtime.rest.handler.job.JobDetailsHandler - Exception occurred in REST handler: Job f9b3c58ca3026855fd2612e3c86551fa not found
2019-07-09 15:54:39,769 ERROR org.apache.flink.runtime.rest.handler.job.JobDetailsHandler - Exception occurred in REST handler: Job f9b3c58ca3026855fd2612e3c86551fa not found
Run Code Online (Sandbox Code Playgroud) java ×4
autoconf ×2
hadoop ×2
makefile ×2
tree ×2
apache-flink ×1
apache-pig ×1
architecture ×1
assert ×1
atomic ×1
automake ×1
c ×1
c++ ×1
cassandra ×1
clion ×1
go ×1
mda ×1
php ×1
rust ×1
rust-cargo ×1
unit-testing ×1