小编Chr*_*ian的帖子

有没有什么好的工具可以找到GUI的使用统计信息,细分窗格和组件?

在网站上收集每个网页的使用情况统计数据是常见的做法,我对类似的事情感兴趣,但对于GUI:s.您会看到谷歌浏览器(和其他人)收集使用情况统计数据,以便谷歌可以找出人们使用的功能,以便对数据进行数据挖掘.

一种直接的方法是明确记录与每个GUI元素的交互,但这既繁琐又容易出现GUI缺失部分的错误.

所以我想知道,这是一个解决的问题吗?是否存在可以提供类似于每个组件细分的代码分析,指标(访问次数,点击次数等)的摘要?自动添加到整个AWT/Swing组件树中的所有组件?

此信息需要汇总到一个文件中,以便可以将其发送给"我们"进行聚合和数据挖掘,以推动决策等.

我真的不知道我到底想要什么,所以我也要求找出好的想法和其他人所面对的这个问题.

java user-interface profiling

24
推荐指数
1
解决办法
1112
查看次数

"头部不匹配"编译器错误是什么意思?

我试图编写代码来打印Z字符.

zzzzzzz
     z
    z
   z
  z
 z
zzzzzzz
Run Code Online (Sandbox Code Playgroud)

但是当我编译这段代码时,它会抛出

D:\erlang\graphics>erlc zeez2.erl
d:/erlang/graphics/zeez2.erl:19: head mismatch
d:/erlang/graphics/zeez2.erl:6: function zeez/3 undefined
Run Code Online (Sandbox Code Playgroud)

我无法修复此错误.我没有发现我的错误.
有人请建议我.
谢谢.

-module(zeez2).
-export([main/0]).

main() ->
    L = 8,
    zeez( false ,1, L). % line 6

zeez(true, M,M) ->
    init:stop();

zeez(false, M, N) ->
    io:format("~p~n", [zeez(z, N-M)] ),
    zeez(M rem N =:= 0, M + 1, N );

zeez(true, M, N) ->
    io:format("~p~n", [zeez(space, N-M)] ), % line 16
    zeez(M rem N =:= 0, M + 1 , N );

zeez(space, …
Run Code Online (Sandbox Code Playgroud)

erlang compiler-errors

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

生成java代码解析树并对其进行评估以进行测试

我们需要生成Java源代码.我们通过对抽象语法树建模并使用树生成器来生成实际的源代码文本.这一切都很好.

由于我的AST代码有点旧,它不支持注释和泛型.因此,我正在寻找可用于具有代码生成需求的未来项目的开放项目.这就是实际问题的来源.我们想测试生成的代码是否具有正确的行为.

在这里我有了实际评估AST的想法,而不是生成java源代码,编译它,并针对该代码运行测试.评估者可以加速单元测试,并且可以评估较小的生成代码片段,例如只有一种方法,使"单位"更合理.

到目前为止,我发现com.sun.codemodel项目似乎相当不错,因为它是一个现代的(支持java5和6功能)基于AST的代码生成解决方案.

任何人都知道是否有另一个项目允许我直接评估AST的部分(例如单个生成的方法)?

java unit-testing code-generation metaprogramming

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

erlangs递归函数不仅仅是一个goto?

只是想直截了当.考虑这个Erlang代码的例子:

 test() ->
      receive
          {From, whatever} ->
                %% do something
               test();
          {From, somethingelse} ->
               %% do something else
               test();
 end.
Run Code Online (Sandbox Code Playgroud)

是不是test()调用,只是一个转到?

我问这个是因为在C中我们了解到,如果你进行函数调用,返回位置总是放在堆栈上.我无法想象这里的Erlang一定是这种情况,因为这会导致堆栈溢出.

基本的.我们有两种不同的调用函数的方法:goto和gosub.goto刚刚把程序流引导到其他地方,gosub记得你来自哪里,所以你可以回来.

考虑到这种思维方式,我可以更容易地看一下erlang的递归,因为如果我只读:test()作为goto,那么根本就没有问题.

因此我的问题:不是erlang只是使用goto而不是记住堆栈上的返回地址?

编辑:

只是为了澄清我的观点:

我知道goto可以用在某些语言中来跳过这个地方.但是,只是suupose而不是someFunction()你也可以这样做:在第一个例子中返回流返回的一些函数(),在第二个例子中,流程只在someFunction中继续并且永远不会返回.

所以我们通过跳转到方法起点来限制正常的GOTO行为.

如果你这样看,那么erlang递归函数调用看起来就像一个goto.

(在我看来,goto是一个函数调用,无法返回你来自的地方).这正是erlang示例中正在发生的事情.

erlang recursion tail-recursion goto

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

Erlang:从一个函数返回

我有一个函数,其中我有一系列单独的case语句.

case ... of
     ...
end,

case ... of
     ...
end,

...
Run Code Online (Sandbox Code Playgroud)

等等

我希望在其中一个case语句中发生特定情况条件时立即从函数返回 - 这样就不会检查下一个case语句,并且函数只退出/返回.我怎么做?

erlang functional-programming

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

使用gen_server封装mnesia表?

我有一个在Erlang中制作的服务器应用程序.在其中我有一个mnesia表,存储一些照片信息.本着"一切都是过程"的精神,我决定将该表包装在一个gen_server模块中,以便gen_server模块是唯一直接访问该表的 模块.查询和向该表添加信息是通过向该进程发送消息(具有注册名称)来完成的.我们的想法是会有几个客户端进程从该表中查询信息.

这很好用,但该gen_server模块没有状态.它需要的一切都存储在mnesia表中.那么,我想知道是否gen_server可能不是封装该表的最佳模型?

我应该简单地不将它作为一个过程,而只是通过该模块中的函数封装表吗?如果该模块中存在错误,这将导致调用进程崩溃,我认为这可能会更好,因为它只会影响单个客户端,而不是现在,当它会导致gen_server进程崩溃时,会导致 每个人无法访问该表(直到主管重新启动它).

任何输入都非常感谢.

erlang mnesia erlang-otp

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

Erlang图书馆在哪里?

Erlang有图书馆吗?喜欢数学或stdio,来自C语言.他们在哪里可以找到?

erlang

7
推荐指数
2
解决办法
2547
查看次数

Erlang/OTP中用于学习的最佳开源项目

我是Erlang的新手,想知道什么是最好的开源项目,有良好的文档.我读完了Erlang Programming(Francesco)和Programming Erlang(Joe)这两本书.从我所看到的,ErlyWeb(Yariv的网络框架)和Mochiweb似乎有很好的文档.根据我的基本知识,是否有任何项目都有良好的文档,我可以深入了解并理解代码.欢迎任何提示/建议!

erlang open-source

6
推荐指数
1
解决办法
3023
查看次数

设计可测试性的构造函数

我正在使用一些现有的代码,试图添加它并增加它的单元测试.但是在使代码可测试时遇到了一些问题.

原始构造函数:

public Info() throws Exception
{
  _ServiceProperties = new ServiceProperties();
  _SshProperties = new SshProperties();
}
Run Code Online (Sandbox Code Playgroud)

我知道这很糟糕,显然不可测试.在junit环境中,此类将无法每次创建,因为它无法找到构造自身的必要属性.现在,我知道这个类可以通过简单地改变以'new'作为参数的方式移动任何东西来测试.

所以我最终得到:

新构造函数:

public Info(ServiceProperties srvProps, SshProperties sshProps) throws Exception
{
  _ServiceProperties = srvProps;
  _SshProperties = sshProps;
}
Run Code Online (Sandbox Code Playgroud)

这允许我正确地测试这个Info类.但问题是,现在所有这些工作都被推到了其他类:

其他一些方法:

public void useInfo() throws Exception
{
  ServiceProperties srvProps = new ServiceProperties();
  SshProperties sshProps = new SshProperties();
  Info info = new Info(srvProprs, sshProprs);
  doStuffWithInfo(info);
}
Run Code Online (Sandbox Code Playgroud)

现在这种方法是不可测试的.我所要做的就是推迟发生这些Property对象的构造,在其他地方,某些代码将被卡住,实际上必须调用"new".

这对我来说很难:我无法弄清楚如何在其他地方简单地推动这些"新"调用来打破这一系列事件.我错过了什么?

java refactoring constructor unit-testing

6
推荐指数
1
解决办法
531
查看次数