小编Tom*_*ich的帖子

关闭特定文件的eslint规则

是否可以关闭整个文件的eslint规则?像这样的东西:

// eslint-disable-file no-use-before-define 
Run Code Online (Sandbox Code Playgroud)

(类似于eslint-disable-line.)它经常发生在我身上,在某个文件中,我打破了许多地方的特定规则,对于该文件被认为是正常的,但我不想禁用整个项目的规则,我也不想禁用该特定文件的其他规则.

javascript configuration lint eslint

324
推荐指数
16
解决办法
16万
查看次数

我可以使用与immutable.js的解构赋值吗?

使用标准JS对象,可以使用解构赋值,例如:

let obj = {name: 'james', code: '007'}
let {name, code} = obj // creates new variables 'name' and 'code' (with the proper values)
Run Code Online (Sandbox Code Playgroud)

正如一些Flux/Redux布道者的建议,我使用immutable.js作为我的应用程序; 我可以在不可变的List/Map上使用解构吗?当然,人们可以这样做:

let obj = immutable.fromJS({name: 'james', code: '007'})
let {name, code} = obj.toJS()
Run Code Online (Sandbox Code Playgroud)

但随着对象变大,这似乎效率很低(因为对象需要先被深深地理解).

destructuring immutable.js

24
推荐指数
1
解决办法
6401
查看次数

22
推荐指数
1
解决办法
5849
查看次数

Babel插件运行顺序

TL; DR:有没有办法指定Babel插件应该运行的顺序?巴别塔如何确定此订单?除了潜入巴别塔资源外,有什么规格可以解决这个问题吗?

我正在开发自己的Babel插件.我注意到,当我运行它时,我的插件在其他es2015插件之前运行.例如,具有以下代码:

const a = () => 1
Run Code Online (Sandbox Code Playgroud)

和访客如:

visitor: {
  ArrowFunctionExpression(path) {
    console.log('ArrowFunction')
  },
  FunctionExpression(path) {
    console.log('Function')
  },
}
Run Code Online (Sandbox Code Playgroud)

我的插件观察ArrowFunction(而不是Function).我玩了Babel配置中列出插件的顺序,但这没有改变任何东西:

plugins: ['path_to_myplugin', 'transform-es2015-arrow-functions'],
plugins: ['transform-es2015-arrow-functions', 'path_to_myplugin'],
Run Code Online (Sandbox Code Playgroud)

OTOH,这看起来像命令在某种程度上重要:

https://phabricator.babeljs.io/T6719

----编辑----

我发现如果我把访问者写成如下:

  ArrowFunctionExpression: {
    enter(path) {
      console.log('ArrowFunction')
    }
  },
  FunctionExpression: {
    exit(path) {
      console.log('Function')
    }
  },
Run Code Online (Sandbox Code Playgroud)

这两个函数都被调用.因此看起来执行的顺序是:myplugin_enter - > other_plugin - > myplugin_exit.换句话说,myplugin似乎在某个内部管道中的other_plugin之前.然而,主要问题保持不变 - 管道中插件的顺序应该以某种方式确定和配置.

plugins transformation commutativity babeljs

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

Elm 中的类型约束

根据Elm 中的可比性意味着什么? comparable是内置类型约束,可用于将类型变量限制为那些可比较的内置类型。下面的问题浮现在脑海中(并不那么容易找到):

  • Elm 中当前存在的其他类型约束是什么?某处有清单吗?
  • 有没有办法创建自己的类型约束?我认为答案是否定的,因为 Elm 现在没有任何机制,例如 Haskell Typeclasses?
  • 如果上述情况属实(没有自定义类型约束),那确实意味着 Elm 中的多态性非常有限,不是吗?例如,现在似乎无法实现以下内容:我想创建一个f接受元素列表(相同但不确定类型)的函数,每个元素都可以用作某个函数的参数g(即f接受List a和此外inst属于类型a意味着g(inst)有意义)

polymorphism types typeclass elm

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

MongoDB的runCommand比直接调用慢得多

我有两个mongo命令,在我看来应该导致相同的结果:

for(var i=0;i<1000;i++){db.test.insert({a:1}); db.getLastError({j:1, w:1});};

for(var i=0;i<1000;i++){db.test.insert({a:1}); db.runCommand({getLastError:1, j:1, w:1});};
Run Code Online (Sandbox Code Playgroud)

两个命令都正确执行插入,然而,第二个命令cca慢100倍(500毫秒vs 45秒).有谁知道,为什么会这样?只有当设置{j:1}时才会出现差异,所以它可能与某些日记问题有某种关系?

performance mongodb getlasterror runcommand

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

没有复合索引,Datomic用户如何应对?

在Datomic中,您如何有效地执行查询,例如“找到华盛顿所有居住在50岁以上的人”(城市和年龄可能有所不同)?在关系数据库和大多数NoSQL数据库中,您为此使用复合索引。据我所知,Datomic不支持此类功能。

我构建了多个中型Web应用程序,即使没有复合索引,也没有一个应用程序可以足够快地执行。Datomic用户如何处理?还是他们只是在玩足够小的数据集而不会受到这种影响?我想念什么吗?

indexing composite-key datomic

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

手动将'forked from'设置为GitHub项目

我的项目A(托管在GitHub上)以某种方式(不确定如何)忘记了它最初是从另一个开源项目B分叉的.我忘记了'忘记',在创建拉取请求时,我不能选择B作为目标发送拉取请求.有没有办法告诉GitHub A是B的叉子?

(我可以通过将B分配到A',然后将A合并到A'并将PR从A'发送到B来自然地起作用来创建PR,但是,当然,我不喜欢它)

git fork github

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

如何使用ZODB进行适当的内存管理?

我读了几个ZODB教程,但这里有一件事我还是没有得到:你如何释放已经序列化(并提交)到(比如)FileStorage的内存?

更具体地说,我希望以下代码停止吃掉所有的记忆:

for i in xrange(bignumber):
    iobtree[i]=Bigobject() # Bigobject is about 1Mb
    if(i%10==0): 
        transaction.commit() # or savepoint(True)
transaction.commit()
Run Code Online (Sandbox Code Playgroud)

怎么能实现这一目标?是否有可能释放iobtree存储的引用并将其替换为可按需访问的"弱引用"?

python memory-management zodb

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

使用ES6和ES7功能的Javascript库是否需要babel-polyfill?

我正在开发一个大量使用ES6和ES7功能的库.用Babel编译它会产生代码,它(自然地)使用符号或Promise等原语.我require('babel-polyfill')应该确保这些基元确实存在吗?

在第一时刻,答案似乎是'是' - 特别是如果我不知道有人可以执行我的lib的运行时间.另一方面,如果每个库都这样做,我们最终会babel-polyfill一次又一次地要求(我不确定这是不是一个好主意).

javascript polyfills ecmascript-6 babeljs ecmascript-7

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

为什么这个Clojure代码与Java中的替代代码相比如此之慢?

tl; dr:为什么代码如此慢?

我尝试优化以下代码以提高速度; 它的目的是在进行n ^ 2次操作时将一个数组(大小n = 1000)转换为另一个(相同大小),转换的细节现在并不重要.

因为我试图尽可能快地获得速度,所以我尽可能使用Java原语; 仍然,我得到的通常是每个'转换'调用大约70毫秒.重写到Java时,平均调用时间小于2毫秒.

1)哇,Java很快

2)哇,Clojure很慢

3)你能解释一下,为什么会这样?天真地,我希望Clojure能够生成一个代码字节码,它应该非常接近Java,为什么不是这样呢?

4)我不是百分百肯定如何使用这些^提示,也许我弄错了?

(defn transform [^ints src]
  (let [res ^ints (make-array Integer/TYPE 1000)]
    (loop [x (int 0)]
      (if (= 1000 x) res
        (do
          (aset res x (areduce src i ret (int 0) 
            (+ ret (* (mod x 2) (mod i 3) (aget src i)))))
          (recur (inc x)))))))

(let [arr (into-array Integer/TYPE (range 1000))]
  (doseq [_ (range 20)]
      (println (time (transform arr)))
  ))
Run Code Online (Sandbox Code Playgroud)

java arrays performance clojure clojure-java-interop

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

Mongodb的compact实际上是做什么的?

好吧,可能这应该从文档中清楚地看出,遗憾的是,情况并非如此。我的猜测是,该压缩文件会对集合进行某种碎片整理 - 这样集合的 paddingfactor 就会低于给定的值。然而,这似乎不是真的:

> db.aaa.stats().paddingFactor
1.9980000000000002
> db.runCommand ( { compact: 'aaa', paddingFactor: 1.1 } )
{ "ok" : 1 }
> db.aaa.stats().paddingFactor
1.9980000000000002
> db.runCommand ( { compact: 'aaa', paddingFactor: 3 } )
{ "ok" : 1 }
> db.aaa.stats().paddingFactor
1.9980000000000002
Run Code Online (Sandbox Code Playgroud)

如果这不是更改集合填充因子的方法,是否还有其他方法可以这样做?

padding mongodb compact-database

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