虽然我知道我可以使用一些巨大的正则表达式,例如发布在这里的那个,但我想知道是否有一些调整,如果使用标准模块或者某些第三方附加组件这么做的话?
简单的问题,但没有任何东西在Google(或Stackoverflow)上跳出来.
期待看到你们是怎么做到的!
很长一段时间以来,我一直在使用pygccxml来解析和内省我的C++源代码:它帮助我在构建过程中做了一些聪明的代码生成.
最近我读了很多关于LLVM堆栈的好处,特别是LLVM Clang解析器给C++编译带来的好处.我现在想知道Clang是否有任何Python接口,以便我可以将它作为我现有代码生成任务的基础?
最近和Boost.Asio一起玩了很多.我非常喜欢这个库,因为它提供了一种从当今的多核系统中挤出性能的绝佳方法.
我问自己几次的问题,我认为在与Asio进行异步调用时,有必要抛弃对象的生命周期/所有权.
我反复遇到的问题是,你经常需要"过期"一个仍然有异步回调的对象.如果在调用回调之前该对象超出范围,则事物不可避免地会爆炸.
为了解决这个问题,我已经将boost::enable_shared_from_this模板用作大多数基于asio的类的基类.这可以正常工作,但这有点麻烦:通常这也意味着保护构造函数并向类中添加工厂方法以确保在shared_ptr中创建所有实例.
我只是想知道其他人是如何解决这个问题的.我是最好的方式吗?或者我的Asio.Foo都错了?
讨论... :)
我开发了一个客户端 - 服务器风格,基于数据库的系统,我需要设计一种压力/负载测试系统的方法.客户不可避免地想要了解以下内容:
•服务器可以支持多少客户端?
•服务器支持多少并发搜索?
•我们可以在数据库中存储多少数据?
•等
所有这些问题的关键是响应时间.我们需要能够测量响应时间和性能如何随着新负载的引入而降低,这样我们就可以生成一些我们可以抛给客户端的漂亮图表,让他们知道给定的性能是什么样的.硬件配置.
现在我们只是把手指放在空中,并根据我们从经验中已经了解的系统做出有根据的猜测.由于产品处于更苛刻的条件下,这证明不足以满足我们未来的需求.
我被赋予了设计方法以有意义的方式获得这些答案的任务.我意识到这不是任何人都可以肯定地回答的问题,但我正在寻找有关人们如何在自己的系统上进行此类工作的建议.
需要注意的一点是,我们可以通过Python语言(SWIG提供)完全访问我们的客户端API,这比使用C++更容易使用这种工作.
所以我们去了,我把它扔到了地板上:真的很有兴趣看看你们有什么想法可以想出来!
...我喜欢可以集成到我的构建过程中的东西:有什么"标准"工具可以做到这一点吗?
我最近一直在做很多关于如何实现真正RESTful WS的内容.很多人都链接到这里的文章,其中详细说明了如果希望最终得到符合REST概念的服务,实施者应该记住的几个约束.
虽然这个帖子显然很重要,但遗憾的是,我们凡人都很难理解,而且各种各样的人都试图破译它.也许我遇到的最好的解释可以在这里找到,作者给出了一个具体的例子,说明为什么今天许多"RESTful"API真的不是RESTful,并说明了如何纠正这种情况.
他的建议在很大程度上倾向于在暴露资源的表示中使用嵌入链接并且很有意义:我可以清楚地遵循逻辑并且希望自己在我正在设计的一组服务中使用这些技术但是我有一个我不确定应该如何解决的问题:即如果使用的数据表示不是XML而是像JSON那样,应该如何提供这样的链接?
作者所说的一切在XML世界中都很有意义,但我无法清楚地看到如何将其重新应用到其他内容表示中?
非常有兴趣听取其他人的意见,看看人们如何在他们自己的非基于XML的REST API中解决这个问题.
我是否可以在javascript控制台中执行单行程序从远程源下载并执行javascript脚本?
我正在寻找一个很好的方法来下载这个脚本,并用它来交互式地在随机页面上进行实验,这可能没有说,jQuery加载.
[编辑:我知道我可以动态创建一个脚本元素,但是有更好的方法吗?]
我正在编写一些单元测试,用于验证我们处理各种使用除普通拉丁字母之外的其他字符集的资源:Cyrilic,Hebrew等.
我遇到的问题是我找不到在测试源文件中嵌入期望的方法:这是我正在尝试做的一个例子......
///
/// Protected: TestGetHebrewConfigString
///
void CPrIniFileReaderTest::TestGetHebrewConfigString()
{
prwstring strHebrewTestFilePath = GetTestFilePath( strHebrewTestFileName );
CPrIniFileReader prIniListReader( strHebrewTestFilePath.c_str() );
prIniListReader.SetCurrentSection( strHebrewSubSection );
CPPUNIT_ASSERT( prIniListReader.GetConfigString( L"?????????" ) == L"????????") );
}
Run Code Online (Sandbox Code Playgroud)
这根本不起作用.以前我使用一个宏调用一个例程将一个窄字符串转换为一个宽字符串(我们在应用程序中使用towstring所以它是现有代码)
#define UNICODE_CONSTANT( CONSTANT ) towstring( CONSTANT )
wstring towstring( LPCSTR lpszValue )
{
wostringstream os;
os << lpszValue;
return os.str();
}
Run Code Online (Sandbox Code Playgroud)
上面测试中的断言变为:
CPPUNIT_ASSERT( prIniListReader.GetConfigString( UNICODE_CONSTANT( "?????????" ) ) == UNICODE_CONSTANT( "????????" ) );
Run Code Online (Sandbox Code Playgroud)
这在OS X上工作正常,但现在我正在移植到linux,我发现测试都失败了:它们都感觉相当hackish.任何人都能告诉我他们是否有更好的解决方案来解决这个问题?
我正在使用Eclipse/PyDev试图找到一种方法来调试subprocess.Popen用于创建子进程的代码:我希望能够调试创建的子进程.问题是我无法找到一种调整跨进程边界的方法,我猜它实际上是不可能的.不过,在你问之前,你永远不会知道,所以我正在做!
一点背景:我有驱动的复杂的构建过程WAF它调用我们的单元测试通过调用出鼻子的要求:我要挂接到这些程序调试单元测试失败.我知道我可以尝试直接运行鼻子,但问题是我必须配置我们的模块正确加载的环境是相当复杂的,我不想复制代码,如果我可以避免它.
我知道远程调试模式,但这非常不方便,因为我必须在远程进程中手动调用调试器.如果有人知道如何做我正在尝试做的事情,那将非常感激.
大约两年前,当我第一次实现SWIG绑定时,我遇到了这个问题.一旦我们暴露了大量的代码,我们就到了SWIG输出C++文件这么大的程度,编译器无法处理它们.解决这个问题的唯一方法是将接口拆分为多个模块并单独编译.
这有几个缺点:
•每个模块必须知道其他模块中的依赖关系.我有一个脚本来生成处理这方面的接口文件,但它增加了额外的复杂性.
•每个附加模块都会增加动态链接器加载代码所需的时间.我添加了一个导入所有子模块的init .py文件,因此代码被拆分的事实对用户来说是透明的,但总是可见的是加载时间长.
我目前正在审查我们的构建脚本/构建过程,我想看看我能否找到一个比我现在更好的问题的解决方案.理想情况下,我有一个包含所有包装器代码的共享库.
有谁知道如何用SWIG实现这一目标?我已经看到一些用Ruby编写的自定义代码用于特定项目,其中输出经过后处理以实现这一点,但是当我查看Python包装器的可行性时,它看起来并不那么容易.
python ×5
c++ ×4
debugging ×2
asynchronous ×1
boost ×1
boost-asio ×1
clang ×1
constants ×1
database ×1
eclipse ×1
icons ×1
javascript ×1
jquery ×1
json ×1
llvm ×1
load-testing ×1
pydev ×1
regex ×1
rest ×1
string ×1
swig ×1
unicode ×1
unit-testing ×1
url ×1
waf ×1
web-services ×1
windows ×1
xml ×1