小编Wil*_*tin的帖子

为什么12 Factor应用程序应该自包含?

在关于端口绑定的12 Factor文章 http://12factor.net/port-binding中,要求每个应用程序都是自包含的,并且没有注入运行时,例如Tomcat.出于什么原因建议...微服务的自包含应用程序的优点是什么?

java paas 12factor microservices

8
推荐指数
2
解决办法
1351
查看次数

PHP IteratorIterator类如何工作?

尽我所能我无法理解IteratorIterator类实际上做的事情.我知道类可以实现Traversable,所以引擎知道它可以使用foreach循环,我意识到IteratorIterator应该将Traversable中的任何东西转换为Iterator,但我不能在生活中理解如何.

PDOStatement类为例; 如何实现标准迭代器方法(下一步,密钥,倒带等)以允许迭代PDOStatement?

对不起,如果我的问题不清楚,我只是在努力掌握这个课程的确切原因,而且关于它的文档很少.

谢谢,

更新:通过phpt文件,我发现一个使用IteratorIterator的测试:

<?php

$root = simplexml_load_string('<?xml version="1.0"?>
<root>
    <child>Hello</child>
    <child>World</child>
</root>
');

foreach (new IteratorIterator($root->child) as $child) {
    echo $child."\n";
}

?>
Run Code Online (Sandbox Code Playgroud)

预期的产出是:

Hello
World
Run Code Online (Sandbox Code Playgroud)

我并没有真正遵循IteratorIterator构造如何将$ root-> child作为参数以及它如何设法迭代子元素.

php spl iterator

5
推荐指数
1
解决办法
3921
查看次数

不确定应用程序的设计方法

我正在尝试用Java创建一个应用程序,它允许从小种子图生成大型的Provenance图,但是我在设计我的类的最佳方法时遇到了一些麻烦.

首先,Provenance基本上有一个图形结构,节点和边缘.我创建了一个Java库,它充当了Provenance Data Model到Java Objects的映射.这允许我从Provenance模型中抽象出我的应用程序特定信息.

我的类结构看起来有点像这样:

  • 图表(包含节点和边缘集)
  • 抽象节点(现在只是一个字符串名称)
    • 代理人
    • 活动
    • 实体
    • Node的其他子类
  • 抽象边缘
    • 协会
    • Edge的其他子类

现在,我想要做的是在节点和边缘上提供加权,作为乘数/饱和度.我可以通过两种方式使用该库来实现这一目标,但我不清楚从开发和可维护性的角度来看哪些是最好的.

首先,我使用一些简单的方法定义了一个Weighable接口,例如get和set最小和最大权重.

现在,我可以扩展每个子类节点,例如

class WeighableAgent extends Agent implements Weighable
Run Code Online (Sandbox Code Playgroud)

但是,这需要为每种类型的节点提供扩展类,并要求我在每个级别实现Weighable接口.

或者,我可以提供一个mixin,但它仍然依赖于我在每个子类中实现相同的功能.

或者,我可以有一个在Agent上编写的类,但是仍然需要我在每个组合类中实现Weighable.

或者,我可以仅仅在Node类上编写,例如

class WeighableNode implements Weighable {

    private Node node;

    public WeighableNode(Node node) {
        this.node = node;
    }

    etc etc...
Run Code Online (Sandbox Code Playgroud)

这将允许我只在一个地方实现Weighable.但是,我从使用WeighableNode的任何东西中丢失了一些关于具体类类型的重要信息,我看到的唯一方法就是提供一个方法:

Node getNode();
Run Code Online (Sandbox Code Playgroud)

由于德米特定律,我对此感到担忧.此外,这个WeighableNode将由PresentationNode组成,以帮助Swing,这意味着我最终将链接调用,例如:

presentationNode.getWeighableNode().getNode() instanceof Agent
Run Code Online (Sandbox Code Playgroud)

这看起来很不愉快.

我刚想到的最后一个解决方案就是如上所述构建Node,然后使用WeighableAgent等扩展WeighableNode等.这意味着每次我都不需要重新实现Weighable,如果我知道我有

instanceof WeighableAgent
Run Code Online (Sandbox Code Playgroud)

然后包装的节点是一个代理.

我很欣赏这很长,但我希望经验丰富的开发人员能够很快看到正确的设计实践.

java

5
推荐指数
1
解决办法
133
查看次数

为什么 `pw_gecos` 这么命名?

在 passwd 结构中:

struct passwd {
    char   *pw_name;       /* username */
    char   *pw_passwd;     /* user password */
    uid_t   pw_uid;        /* user ID */
    gid_t   pw_gid;        /* group ID */
    char   *pw_gecos;      /* user information */
    char   *pw_dir;        /* home directory */
    char   *pw_shell;      /* shell program */
};
Run Code Online (Sandbox Code Playgroud)

参考: http: //man7.org/linux/man-pages/man3/getpwnam.3.html

user information通常是用户的全名)可在属性中找到pw_gecos。gecos 是什么意思,为什么这么命名,以及这个名称背后的历史是什么?

linux passwd linux-kernel

5
推荐指数
1
解决办法
1743
查看次数

ZooKeeper快照文件是否足以恢复状态?

我正在了解ZooKeeper,并正在寻找备份存储在ZooKeeper中的数据的选项。ZooKeeper写入两个数据文件,快照和事务日志。人们经常提到快照是“模糊的”,需要在它们上重播事务日志以获取最新状态。

对于观察者,没有事务日志持久化到磁盘上。如果我要获取由观察者(或没有事务日志的领导者/跟随者)编写的快照,并将其放入新的独立的ZooKeeper中,则可以保证ZooKeeper的状态与将快照写入磁盘时的状态相同?

换句话说,要将ZooKeeper备份到其当前状态,您需要快照和事务日志。如果我只满意备份快照的时间,那么仅快照就足够了吗?

apache-zookeeper

4
推荐指数
1
解决办法
2701
查看次数

我可以在IBM的Bluemix应用程序平台上使用Java 8吗?

我想在Bluemix独立的java应用程序中使用Java 8功能,这是默认支持还是我需要改变一些配置?

java-8 ibm-cloud

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