我试图让Google Closure Compiler在作为设置或数据传递给函数时不重命名对象.通过查看jQuery中的注释,我认为这可行:
/** @param {Object.<string,*>} data */
window.hello = function(data) {
alert(data.hello);
};
hello({ hello: "World" });
Run Code Online (Sandbox Code Playgroud)
但是,它最终会像这样:
window.a = function(b) {
alert(b.a)
};
hello({a:"World"});
Run Code Online (Sandbox Code Playgroud)
这里ajax找到的功能有这个注释,它似乎工作.那么,为什么不呢?如果数据是来自外部源或设置对象的返回值,我希望能够告诉编译器不要触摸它,使用这个技巧就是在我看来打扰这样的东西.this["escape"]
function ajax(success) {
// do AJAX call
$.ajax({ success: success });
}
ajax(function(data) {
alert(data.Success);
});
Run Code Online (Sandbox Code Playgroud)
输出:
$.b({c:function(a){alert(a.a)}});
Run Code Online (Sandbox Code Playgroud)
success已重命名为c和Success(使用大写字母S)已重命名为a.
我现在使用jQuery 1.6 externs文件编译相同的代码并获得以下输出:
$.ajax({success:function(a){alert(a.a)}});
Run Code Online (Sandbox Code Playgroud)
它还会产生一个警告,表明属性Success没有被定义,正如我所期望的那样,但它不能Success简单地重命名a,这仍然会破坏我的代码.我查看为此提供的注释,ajax并找到此类型表达式{Object.<string,*>=},我相应地注释我的代码,并重新编译.还是行不通...
在我构建条件变量类的过程中,我偶然发现了一个简单的方法,我想与堆栈溢出社区分享.我正在谷歌搜索一小时的大部分时间,并且无法找到一个好的教程或.NET-ish示例感觉正确,希望这对其他人有用.
帮我解决一个分数.
我有一个用C++编写的软件,它可以在尽可能多的Linux发行版上运行,我需要找出一个有效的策略.我试图在这种情况下发送二进制文件而不是源代码(可能很高兴知道).它已经是商业产品,我有知识产权问题阻止我公开采购产品,但也意味着我必须处理无数的GPL问题.
目前的推理方法是选择一个最小公分母并将其全部构建出去.这有两个主要含义,我觉得反作用.
我绝对不需要整个C++ 11功能集,但我想将C++支持带到Visual C++ 2010的支持.我正在尝试使用Clang/libc ++而不是GCC/libstdc ++在可能的情况.
RHEL4似乎没有为构建C++应用程序提供广泛的跨平台支持,更重要的是,我对不同版本的linux中ABI的稳定性几乎一无所知,但我担心RHEL4比实际值得多麻烦.尝试基于少数几个版本构建所有版本并不是一个可行的策略.
我假设通过在目标平台上使用工具编译目标平台的软件来最好地完成为不同Linux发行版编译软件.我目前也在假设如果你不接受这个问题,你会遇到跨越Linux平台的大量可移植性问题.不要谈论由于跨平台/分布的C++ ABI不稳定而导致您可以或不能链接的许多库.
但我可能错了,我想听听那些定期处理这个问题的人.什么会起作用,为什么?或者更重要的是,哪些不起作用?
您可以通过反射找到关于应用程序内部的大量内容,它由.NET BCL(基类库)公开,它使得检索任何.NET方法的实际IL变得微不足道.
维基百科上的逆向工程:
逆向工程是通过分析其结构,功能和操作来发现设备,对象或系统的技术原理的过程.
反思肯定会满足作为结构的分析.但是,您在哪里划分内省与实际逆向工程之间的界限?从法律角度来看,反思逆向工程是什么?
如果您处于我的位置,那么您将拥有一个大型的WebForms应用程序,这些应用程序已经升级为这种无法维护的东西.当您添加新功能并且需要一种廉价的可维护方式来进行某种自动化测试时,事情就会中断.
现在,根据我的理解,正确的做法是尝试构建ASP.NET WebForms中存在的页面和用户控件模型的抽象布局,但是,因为它需要在现有应用程序中进行大量投资,所以它不是选项.
我正在努力并尽可能地推动类似REST的开发,因为它有一些不错的属性.在这样做的过程中,我编写了一个简单的蜘蛛机器人,可以抓取它可以找到并尝试的所有URL,只需获取它们即可.这使我能够快速找到导致问题的错误数据并避免让我的最终用户点击破碎的东西,但是,这当然是不够的.
我继续处理我的爬虫,它被开发成一个简单的REST客户端,尝试不同的输入组合,寻找可能的错误或崩溃.它更加智能,只是一个详尽的搜索(因为它了解ASP.NET WebForms应用程序层),我的目标是基本上探索Web应用程序的状态,希望能够在我们的用户之前完成所有角落案例.
有没有人有类似的经历?
另外,为你测试大师.这是完全浪费时间,还是我能够在这里真正说出质量问题?从我的角度来看,它似乎达到了一个最佳点,因为它将尝试潜在的最终用户通过浏览器.
正如我之前所说,我们陷入了困境.我们现在需要一种简单的方法.
我们已经尝试过像Selenium这样的东西,但它要求进行大量的额外工作并且我们一直在改变事物,不可能为50种不同的应用程序维护多个硒测试套装.
我有一个std :: vector of bytes(char),我想把这个向量的"C风格转换"等同于一个类型的向量wchar_t.
显然,我真正需要做的是复制数据,但这里的事情是我已经在左侧有一个UTF-16字节流,我只想把它移到wchar_t矢量上,以便我可以使用它.理想情况下,我只想交换缓冲区,但我不确定如何以安全的方式执行此操作...
C++实现安全转换复制操作的有效方法是什么?
我做我的存储UTF-16的字符串作为std::wstring或std::vector<wchar_t>,但我有我碰巧知道该内存缓冲区是UTF-16,我需要复制它,不知何故?
我很难绕过这个并且需要一些帮助来理解转移减少并减少冲突.我有一个语法,我似乎无法理解为什么它有问题.我可以附上语法,但我想知道这是如何工作的.
第一个问题,MGrammer创建了什么类型的解析器?据我了解,shift reduce和reduce reduce冲突取决于解析器的类型.
第二个问题,什么意味着减少减少冲突和什么意味着转移减少冲突?
我知道词法分析和正式语法的基础知识,但是自从我使用语言设计以来已经有一段时间了,所以这里的任何帮助都是非常合适的.
我正在使用一种空白重要的语言,我想知道在MGrammar中这样做的可能性,我是否需要看一眼才能解决歧义?
我有一个问题不一定特定于任何平台或API,但更具体到动画之间代码中的交互.
游戏就是一个很好的例子.假设玩家死了,并且在删除对象之前必须完成死亡动画.对于许多情况来说,这是典型的,在这种情况下,某些动画必须在继续执行通常会遵循的动作之前完成.你会怎么做呢?
我的问题是关于动画的控制和逻辑.您如何设计一个能够驱动动画但同时实现自定义行为的系统?
通常出现的问题是游戏逻辑和动画数据变得相互依赖.也就是说,动画必须回调代码或以某种方式包含动画序列持续时间的元数据.更常见的问题是,当一个动画必须触发一些其他代码时,比如在1.13s之后产生一个自定义精灵,这往往会导致代码和动画的深度嵌套.带有计时器的炸弹就是逻辑和动画的例子,两者都互动,但我想让它们尽可能分开.
但是你要做些什么来保持动画和代码两个不同的东西?
最近我一直在尝试mgrammar,我在想,DSL可能是最好的选择.这将允许动画或动画制作者以一种可能安全的方式表达某些事物,然后进入内容管道......
为什么每个RDBMS都坚持要告诉它文本字段的最大长度是什么...为什么它不能只是将这些信息从放入数据库的数据中推断出来?
我主要使用MS SQL Server,但我知道的每个其他数据库也要求您在数据模式上设置这些任意限制.实际情况是,由于业务需求一直在变化,而且几乎每天都有一些最终用户试图将大量文本放入该列,因此这并不是特别有用或友好的.
是否有任何具有RDBMS内部工作知识的人知道为什么我们只是不推断存储数据的限制?我不是在猜测类型信息,而是猜测特定文本列的限制.
我的意思是,我没有在数据库中的每个文本列上使用nvarchar(max).
请考虑以下JavaScript代码段:
function foo() {
this.bar = function() { };
}
// or... (if we used an empty constructor function)
foo.prototype.bar = function() { };
Run Code Online (Sandbox Code Playgroud)
我这样做有什么不同:
function baz() {
}
baz.prototype = new foo();
Run Code Online (Sandbox Code Playgroud)
在这两种情况下baz最终都有一名成员,bar但有什么区别?为什么我会在不同的地方这样做?
.net ×2
c++ ×2
javascript ×2
animation ×1
asp.net ×1
c# ×1
linux ×1
mgrammar ×1
oslo ×1
portability ×1
reflection ×1
rest ×1
sql-server ×1
sqldatatypes ×1
stl ×1
testing ×1
webforms ×1