小编dm0*_*514的帖子

管理大型项目中的JavaScript复杂性

我应该使用什么来管理我的应用程序中越来越多的JavaScript文件?

我们正在使用多个应用程序构建django应用程序.每个应用程序都有不同的功能,必须以三种不同的模式(PC,平板电脑,移动设备)呈现.JavaScript中发生了很多事情:管理从服务器接收的数据,处理用户事件,注入HTML片段以及加载子组件.一些功能在应用程序和视图模式之间共享,但通常编写特定功能是有意义的(例如,悬停和单击事件可能必须在PC布局与平板电脑布局上以不同方式处理)因此我们正在分组这在基于app/layout/function的文件中.

在某种程度上,我们使用带有命名的平面文件结构来区分文件类型:

ui.common.js
ui.app1.pc.handlers.js
ui.app1.pc.domManupulators.js
ui.app1.tablet.js
ui.app2.pc.js 
...
Run Code Online (Sandbox Code Playgroud)

然而,现在,随着应用程序(和极端情况)的增长,这种方式正在迅速变得不可用(我们接近20多个文件,并且在我们完成时期望可能超过40个),所以我们将所有内容都放入这样的目录:

js/
  common/
    core1.js
    ajax2.js
  app1/
    tablet.js
    pc.js
  app2/
    mobile.js
    ...
Run Code Online (Sandbox Code Playgroud)

我一直在寻找JavaScriptMVC来帮助解决这个问题.虽然它确实提供了有用的工具,但似乎没有什么能够更好地管理我们的巨型JavaScript库.我们很快就会扩展开发团队,代码可维护性非常重要.

有什么东西可以让我们的生活更轻松吗?您在工作中使用的习惯/经验法则是否可以缓解这种情况?

javascript django jquery project-management frameworks

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

如何在我的OS/PHP上启用CURLOPT_SSL_VERIFYHOST = 2支持

我一直在本地开发一个网站,根据中心登录进行身份验证.其中一个步骤是要求我向https资源发出curl请求以获取访问令牌.

curl配置的一部分是:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);                                         
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
Run Code Online (Sandbox Code Playgroud)

如您所见,我注释掉了CURLOPT_SSL_VERIFYHOST选项.我已经阅读了php.net和各种博客/ stackoverflow(禁用CURLOPT_SSL_VERIFYHOST(libcurl/openssl)的安全后果)发布这些选项意味着什么.

在我的开发机器CURLOPT_SSL_VERIFYHOST 2上一直很好.我只是使用ubuntu 12.04 php5包中提供的vanilla php安装,以及php5-curl.

在生产(rackspace cloudsites)CURLOPT_SSL_VERIFYHOST 2上没有工作,这就是我将其更改为false以验证这是问题的原因.看到我没有明确地做任何事情来在我的localhost上启用它我不知道什么指令/配置选项控制这个.

我的意思是"不工作"是对生产的卷曲调用返回的http_code0时候VERIFYHOST被设置为2.当我将其设置为时,FALSE它返回的状态代码为200

我的问题是:

我如何SSL_VERIFYHOST在Linux机器上启用?

任何帮助将不胜感激.谢谢.

php ssl curl

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

Celery 3.1.9 Django集成,指定设置文件,不使用djcelery

我今天开始和Django一起使用芹菜3.1.9.这个较新的版本与django更紧密地集成,无需使用django-celery.

我使用多个设置文件,我想知道是否有一种简单的方法来指定初始化时使用哪个设置文件celery worker

使用djcelery非常简单,因为它使用manage.py命令.

我天真地试图检查是否

settings.DEBUG 在celery.py文件中是正确的,但当然失败了,因为尚未加载设置!

下一步是潜入django-celery来源并模仿他们正在做的事情,但在此之前,我希望有人找到了一种简单的方法来实现这一目标?

谢谢

django celery

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

Python PIL和PILLOW如何压缩图片?

我想用Python 3.3编写一个程序,其中一个帧被添加到图片中.我使用Python的PIL包来做到这一点.但是我得到的照片不到原来的三分之一,并且它们散开了相当多的焦点/清晰度/光泽度.Python在哪里压缩/更改图片以及如何(如果可能)我可以将其压缩?

我可以想到一些段落,可能是压缩的段落.

  1. 我用PIL加载图像:

    img = Image.open(element)

  2. 我创建了一张黑色的新图片:

    newImg = Image.new("RGB",(imgWidthNew,imgHightNew),(0,0,0,0))

  3. 我从我的图片中创建一个像素图并更改一些:

    pixels = newImg.load()

  4. 我将照片粘贴到黑色照片的中间:

    newImg.paste (Image.open(element), (halfFrameWidth, halfFrameHight, imgWidth+halfFrameWidth, imgHight+halfFrameHight))

  5. 新图像正在保存:

    newImg.save(path,dpi=[300,300])

我主要加载.jpg图片,但由于一些问题,我提取.bmp文件.

 path = path[:path.rfind(".")] + fileEnding
Run Code Online (Sandbox Code Playgroud)

但这不应该是问题,因为我有相同的问题而不改变数据类型.我的操作系统是Windows7 64BIT,我使用Pillow 2.3.0和Python 3.3.

感谢您的任何帮助.

python image image-compression python-imaging-library

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

PostgreSQL 行读锁

让\xe2\x80\x99s 说我有一个名为Withdrawals (id, amount, user_id, status) 的表。

\n\n

每当我发起提款时,流程如下:

\n\n
    \n
  • 验证用户是否有足够的余额(计算方式为收到金额之和 - 提款金额之和)
  • \n
  • 插入包含 amount、user_id 和 status=\xe2\x80\x98pending\xe2\x80\x99 的行
  • \n
  • 通过gRPC调用3rd方软件发起提现(实际是汇款),等待响应
  • \n
  • 一旦我们得到肯定的响应,请更新状态 = \xe2\x80\x98completed\xe2\x80\x99 的行,或者如果提款失败则删除该条目。
  • \n
\n\n

但是,我在此流程中遇到并发问题。\n让\xe2\x80\x99s 假设用户在大约 50 毫秒的差异内发出 2 个全额余额提款请求:

\n\n

要求1

\n\n
    \n
  • 用户有足够的余额
  • \n
  • 创建提款(余额 = 0)
  • \n
  • 更新提款状态
  • \n
\n\n

请求 2(约 50 毫秒后)

\n\n
    \n
  • 用户有足够的余额(这不是真的,另一个插入尚未存储\xe2\x80\x99t)
  • \n
  • 创建提款(余额 = 负数)
  • \n
  • 更新提款状态
  • \n
\n\n

目前,我们使用 Redis 将提款锁定在 x 毫秒内的特定用户,以避免这种情况,但这不是最稳健的解决方案。由于我们现在正在为企业开发 API,因此使用我们当前的解决方案,我们将阻止可能同时请求的提款。\n是否有任何方法可以锁定并确保后续插入查询根据 user_id 等待提款表?

\n

sql postgresql concurrency locking node.js

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

在内存中运行Django MySQL测试

我有一个使用mysql作为后端的django 1.4项目.我有测试设置在内存中运行

if 'test' in sys.argv:
  DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
Run Code Online (Sandbox Code Playgroud)

问题是我需要使用mysql功能(全文索引).

有没有办法让django在内存中运行MySQL进行测试?

我的项目依赖于全文索引.在i syncdb上开发项目时,然后.sql使用sql 执行文件以创建全文索引.

我想在我测试的函数中使用django orm全文搜索.我试图在每个测试的初始化上手动添加全文索引,如:

cursor.execute('alter table mytable add fulltext(one, two)')

使用sqlite时这不起作用(我相信因为sqlite不支持全文索引)

当我删除内存测试时,上面的sql DOES工作.我喜欢内存测试的速度. 有没有办法在内存中运行mysql?

人们如何测试依赖于数据库特定功能的应用程序?像全文索引或gis等...他们是否必须在文件系统上正常运行测试?

谢谢

python mysql django

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

Codeigniter:验证两个字段

我有两个数字字段来收集用户的数据.需要使用codeigniter表单验证类来验证它.

条件:

  1. 第一个字段可以为零
  2. 第二个字段不能为零
  3. 第一个字段不应等于第二个字段
  4. 第二个字段应大于第一个字段

目前我用

$ this-> form_validation-> set_rules('first_field','First Field','trim | required | is_natural');

$ this-> form_validation-> set_rules('second_field','Second Field','trim | required | is_natural_no_zero');

但是,如何验证上面提到的第3和第4个条件?

提前致谢.

codeigniter

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

node.js 达到 maxSockets 时会发生什么?

我想知道maxSockets到达时会发生什么?

如果我使用的服务允许我创建自定义http.Agent并且我指定maxSockets为 1。当我尝试发出多个并发请求时会发生什么?

每个请求是否会超出初始块,直到初始完成?那么套接字将可用于下一个请求?和所有其他人阻止?我当然会这么认为,但无法在文档中找到任何具体内容,并且我对套接字编程是全新的。

javascript sockets connection-pooling node.js

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

使用SimpleXMLElement获取元素内部文本

我试图访问xml元素的文本值.我在用SimpleXMLElement.我必须遗漏一些明显的东西.

<h:html xmlns:jr="http://openrosa.org/javarosa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2002/xforms">
  <h:head>
    <h:title>NewForm</h:title>      
  </h:head>
</h:html>

$xml = new SimpleXMLElement($resp);
$xml->registerXPathNamespace('h', 'http://www.w3.org/1999/xhtml'); 
// I have tried with and without the namespace (it doesn't seem to make a difference)

$result = $xml->xpath('//h:title');
debug($result);
Run Code Online (Sandbox Code Playgroud)

运行上面的代码给了我:

array (
  0 => 
  SimpleXMLElement::__set_state(array(
     0 => 'NewForm',
  )),
)
Run Code Online (Sandbox Code Playgroud)

看起来很简单.我很难获得'NewForm'的价值

我试过了

$result[0],$result[0]->{0},$result[0][0].

通过孩子的迭代$result[0].

有人可以帮助指导我正确的方向,以便我可以从标题元素获取文本?

php simplexml

3
推荐指数
1
解决办法
6632
查看次数

Django requirements.txt根目录中的FIle

我已经设置了一个需求文件夹:

requirements/
  local.txt
  development.txt/
  production.txt/
Run Code Online (Sandbox Code Playgroud)

我想知道我在我的基本requirements.txt文件中放置了什么来重定向到相应的文件?我不想要使用-r requirements/local.txt.我想要一个基于虚拟环境的解决方案.

DJANGO_SETTINGS_MODULE除了需求而不是设置之外,是否有类似的变量?

python django

3
推荐指数
1
解决办法
680
查看次数