小编Wir*_*rie的帖子

使用{*this}初始化类

团队成员建议使用这样的初始化器:

return Demo{ *this };
Run Code Online (Sandbox Code Playgroud)

比以下更好:

return Demo(*this);
Run Code Online (Sandbox Code Playgroud)

假设一个像这样的简单类:

class Demo {
public:
    int value1;
    Demo(){}
    Demo(Demo& demo) {
        this->value1 = demo.value1;
    }
    Demo Clone() {
        return Demo{ *this };
    }
};
Run Code Online (Sandbox Code Playgroud)

我承认以前没有看过{ *this }语法,也找不到足够好的解释,以便我理解这两个选项的不同之处.是否有性能优势,语法选择或更多内容?

c++ c++11

19
推荐指数
2
解决办法
432
查看次数

如何测试JavaScript缩小输出

我们最近升级到了一个新的JavaScript缩小库.

经过测试团队的大量质量保证工作后,我们发现新版本的minifier有一个问题,改变了代码块背后的意图和意义.

(生命教训:除非你确信你需要新版本,否则不要升级JS minifiers.)

minifier用于客户端JavaScript代码,重点强调DOM相关活动,而不是"业务逻辑".

minifier升级破坏了什么的简化示例:

function process(count)
{
     var value = ""; 
     value += count; //1. Two consecutive += statements
     value += count;
     count++;        //2. Some other statement
     return value;   //3. Return
}
Run Code Online (Sandbox Code Playgroud)

被错误地缩小为以下内容:

function process(n){var t="";return t+n+n,n++,t}
Run Code Online (Sandbox Code Playgroud)

虽然我们可以编写一些单元测试来捕捉潜在的一些问题,但鉴于JavaScript在DOM交互(数据输入等)上很重要,如果没有用户测试(非自动化),很难彻底测试.我们考虑使用像Esprima这样的JS到AST库,但鉴于可以对缩小代码进行更改的性质,它会产生太多的误报.

我们还考虑过尝试编写代表性测试,但这似乎是一项永无止境的任务(很可能会错过案例).

仅供参考:这是一个非常复杂的Web应用程序,包含数十万行JavaScript代码.

我们正在寻找一种测试缩小过程的方法,而不是"再次测试所有内容,彻底,重复".我们想对这个过程采用更严格/更科学的方法.

理想情况下,如果我们有更好的科学测试方法,我们可以尝试使用多个缩小器,而不必担心每个细节都会以新的细微方式破坏我们的代码.

更新:

我们的一个想法是:

  1. 用旧版本缩小
  2. 美化它
  3. 缩小新版本,
  4. 美化,和
  5. 视觉上差异.

这似乎是一个好主意,但差异是如此普遍,以至于差异工具几乎将每一行标记为不同.

javascript unit-testing

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

仅安装了Visual Studio 2013的NPM本机构建

我安装了Visual Studio 2013 Pro的Windows安装,以及当前版本的Python,node和npm.

我正在尝试安装pgnpm包,但它需要本机构建并且失败:

C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5):错误MSB8020:Visual Studio 2012的构建工具(Platform Toolset ='v110 ')无法找到.要使用v110构建工具进行构建,请安装Visual Studio 2012构建工具.或者,您可以通过选择"项目"菜单或右键单击解决方案,然后选择"升级解决方案..."来升级到当前的Visual Studio工具.[C:\用户\亚伦\应用程序数据\漫游\ NPM \node_modules\PG \建立\ binding.vcxproj]

我似乎无法找到所描述的Visual Studio 2012的构建工具,我当然更愿意不需要为这一需要安装VS2012.有没有办法强制安装和构建使用可用的2013编译器/工具,而无需更改包的代码?

我找不到任何描述这个特定问题的人和使用我的Googlefu的解决方案.

npm visual-studio-2013

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

使用React和Bootstrap Toggle

我想在React组件中使用bootstrap切换.但是,会显示常规复选框而不是样式元素.怎么解决?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap core CSS --> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">

    <script src="https://fb.me/react-0.13.1.js"></script>
    <script src="https://fb.me/JSXTransformer-0.13.1.js"></script>
    <script type="text/jsx">
        var WordCheckBox = React.createClass({
            render: function() {
                return (
                    <div className="checkbox">
                        <label>
                            <input type="checkbox" data-toggle="toggle" data-on="On" data-off="Off" />
                            option1
                        </label>
                    </div>
                    );
            }
        });
        React.render(
            <WordCheckBox />,
            document.getElementById('content')
        );
    </script>

    <link href="https://gitcdn.github.io/bootstrap-toggle/2.2.0/css/bootstrap-toggle.min.css" rel="stylesheet">
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="https://gitcdn.github.io/bootstrap-toggle/2.2.0/js/bootstrap-toggle.min.js"></script>
</head>

<body>
    <!--doesn't work. checkbox instead of toogle shown-->
    <div …
Run Code Online (Sandbox Code Playgroud)

html javascript twitter-bootstrap reactjs

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

Knockout BindingHandlers没有必需的值

是否可以创建没有必需值的Knockout bindingHandler?

ko.bindingHandlers['superAction'] = {
    init: function(...) { },
    update: function(...) { }
};
Run Code Online (Sandbox Code Playgroud)

例如,语法可能是:

<span data-bind="superAction"></span>
Run Code Online (Sandbox Code Playgroud)

有一个可选值,所以偶尔可能是:

<span data-bind="superAction: myProperty"></span>
Run Code Online (Sandbox Code Playgroud)

我只尝试了冒号,没有冒号......它们都会导致运行时解析异常.

knockout.js

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

用户定义密钥的值限制是什么?

在ArangoDB中,当一个集合被定义为允许用户定义的密钥时,密钥值的限制是什么?例如,它似乎是一个关键的"Name-2"工作,但一个关键"Name,2"给出ArangoError 1221: invalid document key错误.

arangodb

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

使用static_assert确定特定模板参数是否是特定的无类型类模板

我想要一个函数将参数限制为仅来自特定模板类的类型.在这种情况下,basic_string(来自STL- 文档).例如,a wstring声明:

typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >
wstring;
Run Code Online (Sandbox Code Playgroud)

基本的想法是这样的:

template <class TString>
void strings_only_please(TString message) {
    static_assert(is_base_of<basic_string, TString>::value, 
        "Not a string type!");  
}
Run Code Online (Sandbox Code Playgroud)

当然,虽然没有指定basic_string,但它不能编译...它需要一个真实的类型.(虽然我可能只是硬编码少数实际的字符串类型,但我正在寻找这种模式的通用解决方案.)

我正在使用Visual Studio 2012,理想情况下,代码可以移植到其他现代C++编译器,如GCC.

c++ c++11

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

使用打字稿的静态类继承的 super 等价物

我想知道是否有等价super于从孩子调用静态方法。因为到目前为止我只能从孩子那里调用公共非静态方法,使用super.

我想我将不得不使用父级的全名来调用静态方法,但无论如何我都在问,到目前为止在打字稿论坛上没有发现任何有用的信息......

inheritance static typescript

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

ReactJS componentDidMount + render

我目前正在使用react来创建d3可视化.我对方法rendercomponenetDidMount方法之间的关系有点困惑(方法是正确的术语吗?).这就是我所拥有的(为简单起见,我排除了一些代码):

var Chart = React.createClass({
  componentDidMount: function () {
    var el = this.getDOMNode();
    console.log(el);
    d3Chart.create(el, {
        width: '500',
        height: '300'
    }, this.getChartState(),this.getAccessState);
  },

  render: function () {
    return (
        <div className="row pushdown">
                <div className="d3-block">
                    <div className="Chart" />
                </div>
        </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

在第3行,el得到赋值this.getDOMNode();,它总是指向渲染函数(div "row pushdown")中的顶级元素.那么this.getDOMNode()总是引用渲染函数中的顶级元素吗?我实际上要做的是在最里面div(.Chart)内渲染d3图表.我第一次尝试做this.getDOMNode().find('.Chart')但是没有用.

第一个问题:我知道我不应该尝试触摸真正的DOM,但是如何在VirtualDOM上选择更多内容呢?

第二个问题:我知道,鉴于我对此很陌生,我可能做错了.你能在这里建议一个更好的方法吗?

第三个问题:我想在兄弟姐妹div中添加一个图表图例".Chart".我应该为此创建一个新组件吗?或者在我的d3Chart中我可以使用选择器来执行此操作吗?

预先感谢您的帮助!

PS我有一个问题:

我见过人们使用React.render(<Chart />,document.body)而不是在其中使用React.createElement.有人可以向我解释一下这个区别吗?

javascript jquery d3.js reactjs

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

在使用Html/WinJS开发的Metro应用程序中实现日志记录

我需要在使用Html/WinJS开发的Windows 8 Metro应用程序中提供错误日志记录,以便用户可以从位于应用程序本地文件夹中的日志文件中了解出现了什么问题.

我检查了WinJS.log(消息,标签,类型); 它会写入控制台,但无法找到任何可以通过本地文件获取的内容.

在WinJS中开发的城域应用程序中是否有可用于错误记录的第三方库/ j的最佳方法是什么?

提前致谢.

javascript error-log windows-8 windows-runtime winjs

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

如何为Node.JS配置AWS S3 SDK以使用FakeS3?

我正在尝试使用fakes3作为我编写的一些简单S3代码的端点.我不能超越连接阶段.

目前的错误是:NetworkingError: getaddrinfo ENOTFOUND.

我有配置设置:

"aws": {                                
    "accessKeyId": "123",               
    "secretAccessKey": "abc",           
    "region": "",                       
    "endpoint": "http://localhost:8081",
    "sslEnabled": false                 
}               

var AWS = require('aws-sdk');
// loaded the config into an object called `config`:

AWS.config.update(config.aws);
s3 = new AWS.S3();
// also tried creating an `EndPoint`:
s3.endpoint = new AWS.Endpoint(config.aws.endpoint);  
Run Code Online (Sandbox Code Playgroud)

当我尝试简单的代码时:

s3.putObject({ Bucket: 'logging', Key: "logging123", Body: "started" }, 
   function(err, data) {
   if (err) {
       console.log(err);
   }
});
Run Code Online (Sandbox Code Playgroud)

发生上述错误.当我遗漏直接设置时endPoint,请求发送到东AWS区域(并忽略endpoint我通过配置传递的值).

而且,我正在fakes3使用命令行运行:

fakes3 -r c:\temp\_fakes3 -p …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services node.js

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

在Mongodb中,如果nscannedObjects =集合中的总记录是否意味着完整的集合扫描?

解释方法给出了以下结果

{
    "cursor" : "BtreeCursor headers.From_1",
    "isMultiKey" : false,
    "n" : 83057,
    "nscannedObjects" : 120477,
    "nscanned" : 120477,
    "nscannedObjectsAllPlans" : 120581,
    "nscannedAllPlans" : 120581,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 250,
    "indexBounds" : {
    "headers.From" : [
        [
            {
                "$minElement" : 1
            },
            {
                "$maxElement" : 1
            }
        ]
    ]
    },
    "server" : "Andrews-iMac.local:27017"
}
Run Code Online (Sandbox Code Playgroud)

我的收藏中有120477条记录,这是否意味着我的查询执行完整的收集扫描?

任何帮助是极大的赞赏 !!!

mongodb

-1
推荐指数
1
解决办法
2999
查看次数