小编cal*_*lum的帖子

$ _SERVER ['REQUEST_METHOD']是否保证是大写的?

我现在已经进入strtoupper($_SERVER['REQUEST_METHOD'])了我的代码.

但这是strtoupper必要的电话吗?为$_SERVER['REQUEST_METHOD']保证被已经是大写吗?

php

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

为什么babel-node不能用于生产?

巴贝尔节点文档进行严厉的警告:

不适合生产使用

你不应该babel-node在生产中使用.由于高速缓存存储在存储器中,因此存储器使用率很高,这是不必要的.您还将始终体验启动性能损失,因为整个应用程序需要动态编译.

让我们打破这个:

  • 内存使用情况 - 嗯?无论如何,所有模块都会在内存中"缓存",以保证应用程序的生命周期.他们在这里得到了什么?

  • 启动惩罚 - 这是一个性能问题?部署Web应用程序已经需要几秒钟(如果您在CI中进行测试,则需要几分钟).添加半秒到启动意味着什么.事实上,如果启动时间在任何地方都很重要,那么它在开发中比生产更重 如果您经常重启Web服务器以至于启动时间成为问题,那么您就会遇到更大的问题.

此外,没有关于在生产中使用Babel的require hook(require('babel-register'))的警告,尽管这可能与babel-node完全相同.例如,您可以执行node -r babel-register server.js并获得与之相同的行为babel-node server.js.(我的公司在数百个微服务中完成了这一点,没有任何问题.)

巴贝尔的警告只是FUD,还是我错过了什么?如果警告有效,为什么它也不适用于Babel require hook?


相关:在生产中使用babel-node是否可以 - 但是这个问题只是询问是否建议使用生产,答案只是引用官方建议,即"否".相反,我质疑官方建议背后的原因.

babeljs

12
推荐指数
1
解决办法
658
查看次数

迭代比递归更快,还是更不容易出现堆栈溢出?

我知道你可以使用一个简单的循环来重写一个递归函数,使用一个数组作为"剩下要完成的工作"的先进先出队列.我听说这使得堆栈溢出的可能性降低.

但是如果堆栈溢出不是问题(因为你没有非常深地递归),有没有理由更喜欢迭代而不是递归?它更快吗?

我最感兴趣的是V8上的JavaScript.

javascript stack-overflow iteration recursion

11
推荐指数
1
解决办法
5926
查看次数

如何使Flow知道Jest的全局变量(测试,期望等)?

我在测试文件中得到了这些Flow错误:

identifier `test`
Could not resolve name

identifier `expect`
Could not resolve name
Run Code Online (Sandbox Code Playgroud)

我已经从flow-typed安装了Jest libdef,但它没有任何区别.


更新:看起来像flow-typed创建的Jest libdef只是一个存根.我认为问题是flow-typed还没有Jest v0.21.x的libdef.

jest flowtype flow-typed

11
推荐指数
1
解决办法
1131
查看次数

Promises/A +实现如何变化?

什么方面的承诺库的不规范覆盖?实施之间有什么不同?

请举例说明实际差异(例如Bluebird和Q之间).

javascript promise q bluebird rsvp-promise

10
推荐指数
1
解决办法
879
查看次数

以小型并发批次运行承诺(一次不超过X)

Async库具有eachLimit功能,可用于在多个CPU内核上有效地分布大批作业,如下所示:

var numCPUs = require('os').cpus().length;
var exec = require('child_process').exec;

async.eachLimit(someArray, numCPUs, function (value, done) {
  exec('something --input' + value, done);
}, finalCallback);
Run Code Online (Sandbox Code Playgroud)

这可以避免一次过多的命令使系统过载,但仍会利用多个CPU.

我想用Promises做同样的事情.

Bluebird API中,我看不到任何明显的方式来使用Async这样简洁,富有表现力的方式进行这种批处理.

使用Bluebird(或通常使用Promise)有一个很好的模式吗?或者我可以使用的任何其他实用程序库?

javascript asynchronous node.js promise bluebird

10
推荐指数
1
解决办法
2797
查看次数

每个斜杠分隔的文件/ URL路径的正确名称是什么?

什么是路径的"片段"?(包括文件夹名称,文件名,和类似的东西...)

../foo/bar/baz
?   ?   ?   ?

or

https://example.com/foo/bar/baz
                     ?   ?   ?
Run Code Online (Sandbox Code Playgroud)

术语是否因操作系统或上下文而异?

terminology path

10
推荐指数
1
解决办法
1828
查看次数

如何获得中风的轮廓?

我想将描边路径转换为填充对象.(以编程方式,在JavaScript中.)

这条线只是一条简单的曲线,一系列坐标.我可以将这条线渲染成一条路径,然后给它一个特定厚度的笔划......但我试图得到一个填充的形状而不是一条描边线,这样我就可以对它进行进一步的修改,比如翘曲它,所以产生的"笔划"可能会有不同的厚度或者有自定义位被切掉(据我所知,这些东西都不可能用真正的SVG笔划).

所以我试图手动将一条线"加厚"成一个坚固的形状.我找不到任何这样做的功能 - 我查看了D3.jsRaphaël的文档,但没有运气.有谁知道这样做的库/函数?

或者,甚至更好:如果有人能够向我解释关于我将如何手动执行此任务的几何理论,通过获取我所拥有的线坐标列表并制定出有效"抚摸"它的新路径,这将是惊人的.换句话说,当你告诉它描述一条路径时,浏览器会做什么- 它如何确定描边应该是什么形状?

svg vector-graphics raphael d3.js

9
推荐指数
1
解决办法
8683
查看次数

是否可以为devDependencies设置单独的node_modules文件夹?

我有一个我正在部署到Heroku的Node应用程序.他们的文档说最好检查你的node_modules目录(即不要 gitignore),以便更快地部署和开发/生产奇偶校验.

在我package.json,我有很多devDependencies(大多是Grunt插件和他们所有的deps)和一些常规生产,dependencies如Express.Heroku只需要生产代表.我宁愿不检查所有的开发设备,因为它们大约50MB.

有没有办法为你开发一个单独的文件夹,例如node_modules_dev?如果这是可能的,那么我可以添加node_modules_dev到我的.gitignore,并node_modules根据Heroku的建议检查常规生产目录.

有没有办法做到这一点?或者你能想到另一种方法去做我想做的事吗?

heroku node.js node-modules

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

package.json中的"babel"字段优先于.babelrc文件吗?

如果我有一个.babelrc文件一个"babel"字段package.json,会发生什么?

设置是否合并?哪些设置优先?

文档不说了.

babeljs

9
推荐指数
1
解决办法
1986
查看次数