小编Mal*_*lki的帖子

接口继承:是否可以扩展属性?

我想做这个:

interface IBase
{
    string Property1 { get; }
}

interface IInherited : IBase
{
    string Property1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

因此,这IInherited将具有允许添加功能的继承属性.Property1set

那可能吗?语法是什么?

编辑:请注意我把"继承"这个词放在粗体字中.我具体要求继承该属性,而不是将其隐藏在新属性背后.

c# inheritance properties interface

25
推荐指数
2
解决办法
7325
查看次数

为什么大数字递增运算符(++)性能不佳?

我注意到,当递增计数器时,当计数器的值很大时,它会明显变慢.我在Chrome,Firefox和IE11中尝试过它,所有这些都表现得很差.

请参阅此处的 jsperf test (下面的代码):

var count1 = 0;
var count2 = new Date().getTime();
var count3 = 1e5;
var count4 = 1e9;
var count5 = 1e12;
var count6 = 1e15;

function getNum1() {
  return ++count1;
}

function getNum2() {
  return ++count2;
}

function getNum3() {
  return ++count3;
}

function getNum4() {
  return ++count4;
}

function getNum5() {
  return ++count5;
}

function getNum6() {
  return ++count6;
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

javascript

20
推荐指数
1
解决办法
1496
查看次数

测试AngularJS的跑步者 - 如何从eclipse IDE和CI服务器运行测试而不会有太多的复杂功能?

我试图找出一种在angularjs应用程序上运行测试的简单方法.我是测试世界的新手,因此有点难以理解所有选项以及它们之间的区别.

我的目标:能够在我的IDE中运行测试 - Eclipse.并在谷歌浏览器上测试代码.

我发现茉莉花是编写js单元测试的明显选择.问题是为茉莉花测试和e2e测试选择跑步者.

为了保持简单,我想出了以下设置:在jasmine中编写单元测试,在phantomjs和syn.js中编写e2e测试.然后配置eclipse以运行phantomjs作为外部工具,以便输出将在eclipse中转到控制台.

我还打算在Jenkins有一个CI工作,而且根据我的理解,Jenkins也可以运行幻像,所以理论上这个解决方案对CI也是一样的.

另外,还有像Karma和Protractor这样的测试运行工具.一方面,他们似乎被推荐,但另一方面,在某些情况下,他们似乎有点矫枉过正.它们需要运行许多不同的工具/服务/进程才能工作,如果它中断,它似乎很难保持所有设置.

根据我的理解:量角器在运行在nodejs上的webdriverjs上运行,它需要一个selenium服务器在后台运行,最重要的是selenium打开真正的浏览器窗口,与无头浏览器测试相比,这似乎有点无意义.

然后是Karma,我还没有完全理解它应该做什么.根据我的阅读,它监视我的项目中的文件,每当文件被更改时,它运行测试.我不确定它是如何运行测试的 - 它是否也使用硒?

最后,还有咕噜咕噜和自耕农,我根本不明白他们做了什么,以及他们如何与我列出的其他工具互动或融合在一起.

如果有人能够澄清这些不同工具的作用以及它们如何组合在一起,我将不胜感激.另外,它们如何与Jenkins一起作为CI服务器?

此外,如果你可以评论我的"更简单的设置" - 它有意义吗?我错过了什么吗?

continuous-integration integration-testing automated-tests unit-testing angularjs

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

詹金斯无法运行Maven

我按照本教程使用GIT和Maven设置Jenkins(稍微改动,因为我使用的是Linux CenOS).

我正试图在GitHub的Demo Maven项目上测试我的设置

Jenkins在尝试执行Maven时抛出异常.所以我尝试git-clone项目并手动运行Maven,它运行正常.

所以问题是Jenkins运行Maven.我尝试搜索谷歌的问题,但找不到任何有用的信息.

我目前的怀疑是:

  1. 也许Jenkins没有使用正确的类路径来执行Maven.这可能是由于缺乏读取文件的权限,因为Jenkins在linux上拥有自己的用户(名为jenkins).
  2. 也许Maven安装不正确.我手动安装它,而不是让Jenkins为我安装它,因为我需要这个设置才能脱机工作.

这是Jenkins的控制台输出:

Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/Omri/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Omri/workspace - hudson.remoting.LocalChannel@7ff79fae
Using strategy: Default
Last Built Revision: Revision af62f13d2374bc00a4b67f7586bfd52b7bda80eb (origin/prepare)
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin
Seen branch in repository origin/HEAD
Seen branch in repository origin/master
Seen branch in repository origin/prepare
Seen 3 remote branches
Commencing build of Revision a9a1fc4a96d4ac4af3ca5e7e3b7393a6df4bf555 (origin/HEAD, origin/master)
Checking out Revision …
Run Code Online (Sandbox Code Playgroud)

linux git maven-3 maven jenkins

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

如何让JasperReports小组仅在需要时才在新页面上开始?

我正在使用JasperReports和iReport(输出到PDF),我对某个报告有问题:

在报告中我定义了一个组.平均而言,该组的每个"实例"仅包含少量细节行,因此我不希望它们中的每一个都在新页面上开始,因为这会浪费纸张(输出打印在纸上) ).

但另一方面,我不希望有一个组从一个页面开始,到下一个页面结束.例如,如果在第1页上我可以适应前两组和第三组的一半,我希望整个第三组在第2页开始,依此类推.

有没有办法做到这一点?

grouping jasper-reports ireport

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

Java堆空间Xmx Xms参数被忽略

我有一个显然占用太多内存的.JAR,并抛出异常"Java堆空间"(或类似的东西).

所以我尝试通过CMD运行.JAR,如下所示:

C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Run Code Online (Sandbox Code Playgroud)

那并没有解决问题.同样的错误.现在,当我检查Windows任务管理器中的进程选项卡时,我注意到我的jar进程比我要求的内存少得多(与没有参数运行它相同).

为什么忽略参数?

此外,我认为异常是在进程达到100mb内存使用量的时候抛出的.GC是否有可能试图释放内存,这是导致问题的原因?我可以为GC设置任何参数来防止这种情况吗?

谢谢,Malki :)

java parameters garbage-collection cmd heap-memory

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

以角度获取元素的绑定值

说我在一个ng-repeat条款中有这个div :

<div ng-repeat="item in list" class="myDiv" ng-click="doStuff(item)">
    {{item.title}}
</div>
Run Code Online (Sandbox Code Playgroud)

它基于这个模型:

$scope.list = [
    { 'title': 'Item 1', 'someData': 'lalala' },
    { 'title': 'Item 2', 'someData': '666' },
    { 'title': 'Item 3', 'someData': 'qwerty' }
  ];
Run Code Online (Sandbox Code Playgroud)

然后我最终得到3个重复的div.
现在我有一个分析页面的外部脚本,我想提取元素的数据.
因此,例如,如果我选择的第一个div var div1 = $('div.myDiv:first')我能得到的属性ng-click,并ng-repeat从它.我也可以angular.element(div1).data('$binding')用来获得绑定{{item.title}}.
但我真正想要的是这个特殊div的单个项目数据:即我想编写一个getItemData(element)可以获取div1和返回的函数{ 'title': 'Item 1', 'someData': 'lalala' }.

如何才能做到这一点?
请注意,我需要一个既能用于转发器绑定又能用于常规绑定的解决方案.我基本上需要知道绑定到每个元素的实际数据.

javascript angularjs

7
推荐指数
1
解决办法
5033
查看次数

可以为Closure Compiler输出TypeScript输出注释吗?

我正在使用TypeScript,我想使用Closure-Compiler来缩小和混淆我在构建TS代码后得到的JS输出.

我读到GCC能够根据类型定义进行混淆.据我所知(如果我错了请纠正我),这意味着如果我的代码上有类型注释,那么GCC将使用它们来进行更好的混淆.

例如,对于obj.somePropGCC,当前someProp在我的代码中查找属性名称的所有实例,而不考虑它所在的对象,并将所有这些实例替换为相同的混淆名称(例如o.a).
但是如果我在我的代码上有类型注释,GCC将能够知道哪个对象属于哪种类型并相应地对其进行模糊处理 - 因此两个不同类型的相同属性名称将被混淆为两个不同的名称.

问题:

  • 我理解正确吗?
  • "类型安全"混淆是一件好事吗?
    我的意思是,它有什么好处?它似乎不会对生成的文件大小产生影响,甚至可能对gzip压缩文件大小产生负面影响(因为不同类型的密钥可能有更多不同).
  • 我可以使用TypeScript以某种方式自动创建GCC注释吗?
    由于TS已经是类型安全的,我相信它是可能的,但我怀疑它是一个功能.它可能需要TS编译器内部的知识.有什么见解吗?

编辑

我其实刚发现这个和这个.我会检查出来并尽快发布更新.

javascript obfuscation google-closure-compiler typescript

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

Node.js 动态相对 require 路径

我需要能够在动态相对路径上使用 require() - 这意味着相对路径需要根据当前环境进行更改。

对于这种情况,最佳做法是什么?

我想到了这样的事情:

var module = require(process.env.MY_MODULES_PATH + '/my-module');
Run Code Online (Sandbox Code Playgroud)

但是环境变量不是很方便。

还有其他的可能性吗?

  • 也许使用 package.json 安装后脚本为我设置环境变量?
  • 也许节点中有一个我不知道的内置解决方案?

编辑

require()我才意识到这是“嘲笑”的一个特例。require()例如,是否有关于如何模拟单元测试的最佳实践?

require node.js

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

使用 Redshift 中列中的正则表达式

我在 Redshift 中有 2 个表,其中一个有一列包含正则表达式字符串。我想像这样加入他们:

select *
from one o
join two t
on o.value ~ t.regex
Run Code Online (Sandbox Code Playgroud)

但这个查询会抛出一个错误:

[Amazon](500310) Invalid operation: The pattern must be a valid UTF-8 literal character expression
Details: 
 -----------------------------------------------
  error:  The pattern must be a valid UTF-8 literal character expression
  code:      8001
  context:   
  query:     412993
  location:  cgx_impl.cpp:1911
  process:   padbmaster [pid=5211]
  -----------------------------------------------;
Run Code Online (Sandbox Code Playgroud)

据我在文档中搜索的了解,正则表达式运算符的右侧~必须是字符串文字。

所以这会起作用:

select *
from one o
where o.value ~ 'regex'
Run Code Online (Sandbox Code Playgroud)

这会失败:

select *
from one o
where 'regex' ~ o.value
Run Code Online (Sandbox Code Playgroud)

有没有办法解决?我错过了什么吗?

谢谢!

regex literals amazon-redshift

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