小编Mic*_*and的帖子

为什么Perl常用于编写CGI脚本?

我计划在我的网站上添加一个更好的搜索功能,所以我认为我会用C语言编写它并使用CGI作为访问它的方法.但就基于CGI的东西而言,Perl似乎是最受欢迎的语言.这是为什么?用C或机器代码编程是不是更快?

如果有的话,用脚本语言编写它有什么好处?

谢谢.

perl performance search cgi

5
推荐指数
3
解决办法
1943
查看次数

具有可选组件的接口有什么好的设计?

假设我有一个支持一些潜在操作的接口:

interface Frobnicator {
    int doFoo(double v);
    int doBar();
}
Run Code Online (Sandbox Code Playgroud)

现在,某些实例仅支持这些操作中的一个或另一个.他们可能都支持两者.客户端代码不一定会知道,直到它实际上得到一个从相关工厂,通过依赖注入,或者是任何一个从获得的情况.

我看到了一些处理这个问题的方法.一,这似乎是Java API中所采取的一般策略,是只对界面如上图所示,并有不支持的方法提高UnsupportedOperationException.然而,这样做的缺点是不能快速失败 - 客户端代码无法判断它是否doFoo会在尝试调用之前工作doFoo.

这可以使用supportsFoo()supportsBar()方法进行扩充,如果相应的do方法有效,则定义为返回true .

另一种策略是因式分解doFoodoBar方法融入FooFrobnicatorBarFrobnicator分别的方法.null如果操作不受支持,则会返回这些方法.为了防止客户端代码进行instanceof检查,我Frobnicator按如下方式定义了一个接口:

interface Frobnicator {
    /* Get a foo frobnicator, returning null if not possible */
    FooFrobnicator getFooFrobnicator();
    /* Get a bar frobnicator, returning null if not possible */
    BarFrobnicator getBarFrobnicator();
}

interface FooFrobnicator {
    int doFoo(double v); …
Run Code Online (Sandbox Code Playgroud)

java oop design-patterns

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

Guice中的提供商

确定范围是否适用于Guice提供商?假设我有一个FooProvider像这样的绑定:

bind(Foo.class).toProvider(FooProvider.class).inScope(ServletScopes.REQUEST)
Run Code Online (Sandbox Code Playgroud)

是否会FooProvider根据请求实例化一次?

java guice

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

Scala的模式匹配器执行了多少优化?

假设我有一个Scala match表达式

foo match {
    case Bar(Some(x)) => /* do something */
    case Bar(None)    => /* do something else */
}
Run Code Online (Sandbox Code Playgroud)

编译器在编译表达式时做了多少优化?特别是,它会发出多次调用Bar.unapply,还是会对结果进行多次调用并多次匹配?

compiler-construction optimization scala

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

kdevelop4和C++需要cmake

我想使用kdevelop4进行c ++编程,但是当我尝试运行应用程序时,kdevelop4需要cmake二进制文件!我怎么解决这个问题?

kdevelop cmake

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

0
推荐指数
1
解决办法
2453
查看次数