小编boc*_*cco的帖子

Google App Engine作为制作平台

我们即将开始研究新的商业网站项目,并将Google App Engine视为一个潜在的平台.

问题:

  1. Google App Engine是否真的可扩展,可以被视为商业项目的生产平台?
  2. 从长远来看,它是否比良好的托管公司服务更昂贵(或更便宜)?
  3. 将应用程序从Google App Engine移动到独立服务器/服务器场(例如将其用作私有系统,利用我们自己的硬件等)是否可能(并且非常便宜)?
  4. 是否有一些机制来处理DDoS攻击?
  5. 我可以对应用数据进行完整备份吗?

抱歉这些愚蠢的问题.

google-app-engine web-applications

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

Eclipse + PyDev + GAE内存缓存错误

我已经开始使用Eclipe + PyDev作为开发我的第一个Google App Engine应用程序的环境.Eclipse是根据本教程配置的.

一切正常,直到我开始使用memcache.PyDev报告错误,我不知道如何解决它:

alt text http://www.freeimagehosting.net/uploads/fc176c0957.png

错误:导入的未定义变量:get

如何解决这个问题?当然,这只是PyDev检查器的问题.代码正确并在GAE上运行.

更新:

  1. 我正在使用PyDev 1.5.0,但经历了与1.4.8相同的经历.
  2. 我的PYTHONPATH包括(在Project Properties/PyDev中设置 - PYTHONPATH):
    • C:\Program Files\Google\google_appengine
    • C:\Program Files\Google\google_appengine\lib\django
    • C:\Program Files\Google\google_appengine\lib\webob
    • C:\Program Files\Google\google_appengine\lib\yaml\lib

更新2:

我看了一眼,C:\Program Files\Google\google_appengine\google\appengine\api\memcache\__init__.py发现get()没有声明为memcache模块功能.他们使用以下技巧来做到这一点(我没有听说过这种可能性):

_CLIENT = None


def setup_client(client_obj):
  """Sets the Client object instance to use for all module-level methods.

  Use this method if you want to have customer persistent_id() or
  persistent_load() functions associated with your client.

  Args:
    client_obj: Instance of the memcache.Client object.
  """
  global _CLIENT …
Run Code Online (Sandbox Code Playgroud)

python eclipse google-app-engine pydev

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

检查Python代码的正确性

在C++中,我有编译器告诉我重构后代码是否有问题.如何确保Python代码在更改后至少是正确的?可能有一些愚蠢的错误,如错误的函数名称等,在编译时很容易找到.

谢谢

python compiler-construction correctness

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

什么是更快的Python,"while"或"for xrange"

我们可以做数字迭代,如:

for i in xrange(10):
    print i,
Run Code Online (Sandbox Code Playgroud)

和C风格:

i = 0
while i < 10:
    print i,
    i = i + 1
Run Code Online (Sandbox Code Playgroud)

是的,我知道,第一个不容易出错,更像pythonic,但它是否足够快作为C风格的版本?

PS.我是来自C++星球,而且是Python上的新星.

python micro-optimization

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

在对象工厂中注册对象创建者

我有方便的对象工厂模板,它按类型ID名称创建对象.实现非常明显:ObjectFactory包含从std::string对象创建者函数的映射.然后,所有要创建的对象都应在此工厂中注册.

我使用以下宏来做到这一点:

#define REGISTER_CLASS(className, interfaceName) \
   class className; \
   static RegisterClass<className, interfaceName> regInFactory##className; \
   class className : public interfaceName
Run Code Online (Sandbox Code Playgroud)

这里RegisterClass

   template<class T, class I>
   struct RegisterClass
   {
      RegisterClass()
      {
         ObjectFactory<I>::GetInstance().Register<T>();
      }
   };
Run Code Online (Sandbox Code Playgroud)

用法

class IFoo
{
public:
   virtual Do() = 0;
   virtual ~IFoo() {}
}

REGISTER_CLASS(Foo, IFoo)
{
   virtual Do() { /* do something */ }
}

REGISTER_CLASS(Bar, IFoo)
{
   virtual Do() { /* do something else */ }
}
Run Code Online (Sandbox Code Playgroud)

类在工厂中同时定义和注册.

问题是regInFactory...静态对象是在.h文件中定义的,因此它们将被添加到每个翻译单元中.同一个对象创建者将被多次注册,更重要的是,会有很多具有静态存储持续时间的冗余对象. …

c++ implementation design-patterns visual-c++

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

从字符串中删除冗余符号

假设我有一个这样的字符串:'12,423,343.93'.如何将其转换为float简单,有效和优雅的方式?

我似乎需要从字符串中删除多余的逗号,然后调用float(),但我没有很好的解决方案.

谢谢

python floating-point

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

在VS中构建基于Boost的解决方案

提升岩石,它是伟大的,非常强大,但每次我在Visual Studio 7.1中构建解决方案时我都讨厌它.

Boost似乎对构建时间有影响(不是积极的).我不能从我的项目中删除所有Boost用法来比较构建时间,但我在小项目上尝试过它,差异很有意义.

我想问题是Boost包含数千个头文件,这些头文件非常广泛地包含在内.因此,当我将boost/function.hpp头文件包含在我的头文件中时,可能会导致包含数百个Boost头文件.

是否有人经历过相同的经历?任何想法如何解决?

粗略的想法:

  1. 为预编译头添加提升?至少它们将被解析并保存在一个文件中
  2. 对某些Boost模板进行显式即时化吗?
  3. 以某种方式准备Boost标题?
  4. 不要将Boost包含在头文件中(听起来不真实)
  5. ...

PS.是的,Boost也使用了我认为很难编译的硬核模板,所以成千上万的头文件并不是唯一的问题.

c++ boost build-process visual-studio visual-c++

0
推荐指数
1
解决办法
328
查看次数