我们的Web应用程序与几个我们无法影响的Web服务一起工作.在每个工作流程(使用Selenium测试)之后,发生对Web服务的挂钩调用.我想嘲笑那个服务器.理想情况下,我想要一个HTTP服务器对象,我可以随意启动和终止,以及一个URL调度程序,它会在调用时调用我的测试中的某些子程序.
到目前为止,我发现HTTP::Server::Simple并且HTTP::Server::Brick我发现后者更具吸引力.你有其他内幕消息吗?
我继承了一个严格使用存储过程来完成其工作的Web应用程序.我喜欢让前端开发人员无法破坏数据库的方法,但我已经厌倦了用纯SQL编写SP调用并希望有更好的东西.虽然我一直在寻找一个体面的ORM(在这种情况下用于Perl,但这与问题无关)并支持存储过程,但我意识到ORM可能与SP直接矛盾.
我的想法是,SP就像名字已经告诉我们的那样,程序,即程序Pascal式编程的代表,事实上,一个Web应用程序看起来与SQL-Server端的Pascal完全一样 - 很多功能,没有真正的命名空间.与此相反,我们试图完成大部分编程OOP风格(或功能,这是另一个主题),因此实际上,过程SP并不适合干净的对象层次结构.同时,关系逻辑可以干净地(通过ORM)转换为对象,但不是程序,这可能是大多数ORM不能很好地支持SP的原因(但我不是该领域的专家).在某种意义上,SP 是 ORM.
所以这两个问题是:
我想为我的表单中的输入字段提供上下文帮助(“名字”:“您的名字。如果您有多个,请输入全部。”)。我不想将它们硬编码在源代码中,而是希望通过管理界面使这些帮助文本可编辑。我的想法是以某种方式扩展字段类(包括类似于 的新属性verbose_name)并将其存储在数据库中(可能三列表表“模型、字段、帮助”就足够了)。
不过,我不知道这是否可行,或者以前已经这样做过。你?如果还没有,你能给我一些从哪里开始吗?
这个问题起源于Django URL解析器,但问题似乎是一般的问题.
我想匹配这样构建的URL:
1,2,3,4,5,6/10,11,12/
Run Code Online (Sandbox Code Playgroud)
我正在使用的正则表达式是:
^(?P<apples>([0123456789]+,?)+)/(?P<oranges>([0123456789]+,?)+)/$
Run Code Online (Sandbox Code Playgroud)
当我尝试将其与"有效"URL(即匹配的URL)匹配时,我得到即时匹配:
In [11]: print datetime.datetime.now(); re.compile(r"^(?P<apples>([0123456789]+,?)+)/(?P<oranges>([0123456789]+,?)+)/$").search("114,414,415,416,417,418,419,420,113,410,411,412,413/1/"); print datetime.datetime.now()
2011-10-18 14:27:42.087883
Out[11]: <_sre.SRE_Match object at 0x2ab0960>
2011-10-18 14:27:42.088145
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试匹配"无效"URL(不匹配)时,整个正则表达式需要一定的时间才能返回任何内容:
In [12]: print datetime.datetime.now(); re.compile(r"^(?P<apples>([0123456789]+,?)+)/(?P<oranges>([0123456789]+,?)+)/").search("114,414,415,416,417,418,419,420,113,410,411,412,413/"); print datetime.datetime.now()
2011-10-18 14:29:21.011342
2011-10-18 14:30:00.573270
Run Code Online (Sandbox Code Playgroud)
我假设regexp引擎中有一些东西在需要匹配几个组时极度减慢.这有什么解决方法吗?也许我的正则表达式需要修复?
我需要根据用户选择的语言格式化我的Web应用程序中的数字,例如德语中的1234.56 ="1.234,56".类似的东西sprintf目前是不可能的,因为它们依赖于LC_NUMERIC(这对桌面应用程序IMHO是明智的)而且我必须在服务器上生成每个语言环境,这是不行的.我更喜欢使用CLDR的格式化字符串,但没有找到合适的模块.我想拥有的是一个简单的说法:
set_locale("de_DE");
print format_number(1234.56);
Run Code Online (Sandbox Code Playgroud)
如何正确地做到这一点?
如何实现这种相等比较是一种理智的java方式?
boolean x = (a == b) || (a.equals(b))
Run Code Online (Sandbox Code Playgroud)
我想确保两个对象的内容相等但null也可以,即两者都可以为null,因此是相等的.
更新:为了清楚,我必须多次实现这种比较,并且不希望每次都复制和粘贴这些东西,特别是对于长度的对象名称.使用'a'和'b'它看起来小而简单,但往往会增长...我想知道我是否缺少一些现有的Java功能.
我们从一个三人小组开始进行Sharepoint开发,目前正在建立我们的开发环境.我们希望避免为每个开发人员安装Server 2008,因此已经设置了一个终端服务器,使用远程Windows在每个开发人员的计算机上启动VS2008实例.现在我们想分开开发人员的测试环境(即每个开发人员的不同站点收集),但已经意识到需要将程序集安装到GAC中以在网站上正确显示.但由于AFAIK只有一个GAC,开发人员无法独立测试他们的东西.
有没有办法在没有安装一堆2008服务器的情况下创建单独的测试环境?
我们的代码是在Windows上开发的(企业要求),但它在Linux服务器上运行.因此,我们正在使用带有SVN结账的Samba共享.不幸的是,我们需要在服务器端使用一些使用SVN的脚本,但我们在服务器上的SVN是1.4,而我们在Windows客户端上的TortoiseSVN是1.5或1.6.基本上,使用TortoiseSVN对结账的任何操作都会升级结账的内部结构,因此不能再在服务器端使用,因为"客户端版本太旧了".
你知道如何解决这个问题吗?我所知道的唯一方法就是在客户端根本不使用SVN,但这样做会产生反作用.在服务器上升级SVN也是不可能的.还有其他可能吗?
perl ×2
comparison ×1
deployment ×1
django ×1
django-forms ×1
formatting ×1
http ×1
java ×1
mocking ×1
numbers ×1
oop ×1
orm ×1
python ×1
regex ×1
sharepoint ×1
sql ×1
svn ×1
testing ×1
tortoisesvn ×1
wss ×1