小编lys*_*ing的帖子

我什么时候应该在ECMAScript 6中使用箭头功能?

这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)背景下已经考虑过代码风格并且已经使用过该语言的人.

有了() => {}function () {}我们有两种非常相似的方法来编写ES6中的函数.在其他语言中,lambda函数通常通过匿名来区分自己,但在ECMAScript中,任何函数都可以是匿名的.这两种类型中的每一种都具有唯一的使用域(即,当this需要明确地绑定或明确地不绑定时).在这些域之间存在大量的情况,其中任何一种符号都可以.

ES6中的箭头功能至少有两个限制:

  • 不要工作 new
  • 固定this在初始化时限制范围

抛开这两个限制,箭头函数理论上几乎可以在任何地方替换常规函数.在实践中使用它们的正确方法是什么?是否应使用箭头功能,例如:

  • "他们工作的每个地方",即在任何地方,函数不必对this变量不可知,我们不创建对象.
  • 只有"需要的任何地方",即事件监听器,超时,需要绑定到某个范围
  • 具有'短'功能但不具有'长'功能
  • 仅适用于不包含其他箭头功能的功能

我正在寻找的是在ECMAScript的未来版本中选择适当的函数符号的指南.该指南需要明确,以便可以向团队中的开发人员讲授,并保持一致,这样就不需要从一个函数符号到另一个函数符号进行不断的重构.

javascript lambda ecmascript-harmony ecmascript-6 arrow-functions

379
推荐指数
6
解决办法
8万
查看次数

如何跨主机链接Docker服务?

Docker 允许来自多个容器的服务器通过链接和服务发现相互连接.但是,从我可以看到,此服务发现是主机本地的.我想实现一个使用托管在不同机器上的其他服务的服务.

在Docker中有几种方法可以解决这个问题,例如CoreOSjumpers,主要代理其他机器的主机本地服务,以及用于管理Docker部署的一大堆github项目,这些项目似乎试图支持这种用例.

鉴于发展速度,很难遵循当前的最佳实践.因此,我的问题基本上是:1)什么(如果有的话)是目前在Docker中跨主机链接的主要方法,2)有没有计划直接在Docker系统中支持这个功能?

docker

115
推荐指数
6
解决办法
5万
查看次数

jQuery Mobile导航栏中每行超过5个项目

我没有成功地查找变量来更改导航栏中单行中的最大项目数.

我刚开始使用jQuery Mobile,尝试创建一个包含大约7个单字母项目的导航栏.当存在超过5个项目时,导航栏会自动换行,这对我的项目来说是不可取的.

任何人都可以指出我在代码或css中控制这种行为吗?

mobile jquery navbar jquery-mobile

24
推荐指数
3
解决办法
2万
查看次数

Matplotlib轴有两个比例共享原点

我需要在Matplotlib中使用两个具有不同Y轴刻度的叠加两个数据集.数据包含正值和负值.我希望两个轴共享一个原点,但Matplotlib默认不对齐这两个比例.

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

ax1.bar(range(6), (2, -2, 1, 0, 0, 0))
ax2.plot(range(6), (0, 2, 8, -2, 0, 0))
plt.show()
Run Code Online (Sandbox Code Playgroud)

我想可以执行一些计算,.get_ylim()并且.set_ylim()两个对齐两个标度.有更简单的解决方案吗?

上面样本的输出

axis matplotlib scale

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

对于低端设置,RabbitMQ有什么好的替代品吗?

我现在已经在一些设置中使用RabbitMQ,我无法摆脱必须有更容易设置的东西的感觉.尽管它很方便,但很难证明MQ只能处理每天处理几千条消息的解决方案,这仅仅是因为维护RabbitMQ是如此之多.

有没有人通过简单的安装和维护过程了解AMQP实施?

对于那些不了解它的人,RabbitMQ是用Erlang编写的AMQP实现.它应该是非常稳定的,但只有你对Erlang有足够的了解才能避免它的问题.无论是内存限制还是主机名的更改,总是需要深入了解它.

message-queue amqp rabbitmq mq

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

为什么不能在f字符串中使用"await"?

为什么不能在f字符串中使用"await"?有没有办法强制f字符串在协程函数的上下文中评估格式表达式?

$ python3 
Python 3.6.0 (default, Mar  4 2017, 12:32:37) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> async def a(): return 1
... 
>>> async def b(): return 'The return value of await a() is {}.'.format(await a())
... 
>>> async def c(): return f'The return value of await a() is {await a()}'
... 
  File "<fstring>", line 1
    (await a())
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.6 f-string

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

如何在SQLAlchemy中实现仅附加版本化的模型

我想在仅附加数据存储区中重新实现一些现有的SQLAlchemy模型; append-only意味着该对象仅使用INSERT语句更新,而不是使用UPDATE或DELETE语句.

UPDATE和DELETE语句将替换为增加版本的另一个INSERT.将有一个is_deleted标志而不是DELETE,is_deleted=True将创建一个新版本:

id  | version | is_deleted | name      | description ...
---- --------- ------------ ----------- ---------------
  1 |       1 |          F | Fo        | Text text text.
  1 |       2 |          F | Foo       | Text text text.
  2 |       1 |          F | Bar       | null 
  1 |       3 |          T | Foo       | Text text text.         
Run Code Online (Sandbox Code Playgroud)

另外,

  • 所有SELECT语句都需要重写为每个id的最大版本号,如本问题所述:PostgreSQL - 获取具有列的Max值的行
  • 需要通过"id"主键将所有(唯一)索引重写为唯一的,因为每个id可能不止一次出现.

我知道如何解决大多数这些问题,但我正在努力处理SQLAlchemy中的事件挂钩,它将处理需要在更新和删除时完成的某些事情.

SQLAlchemy文档已经有一些版本控制的基本示例.该版本行例子来接近我想要的东西,但他们不处理(1)删除和(2)外键关系.

(1)删除.我知道有一个session.deleted字段,我将以类似于如何session.dirtyversioned_rows.py …

python sql postgresql sqlalchemy soft-delete

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

ngResource解析嵌套资源

有什么选项可以解析ngResource响应中的嵌套资源?

关于在ngResource中解析嵌套资源的端点有一些相关的问题,但是这个问题是关于REST响应何时包含嵌套在正在查询的集合中的第二个资源,特别是你不会有的1对1映射例如pets/<id>/owner作为自己的资源.

假设有两种资源,Pets并且Owners:

GET /宠物:

[{
  name: 'spark',
  type: 'dog',
  owner: '/owners/3/' # alternatively just '3' or the full object.
}]
Run Code Online (Sandbox Code Playgroud)

作为开发人员,我有时想要查询整个Owner资源,有时我想查询Pet资源然后我自动想要将owner属性解析为资源实例.

这是我目前的解决方案:

.factory('Pet', function ($resource, Owner) {
  var Pet = $resource('/pets/:id', {id: '@id'});

  Pet.prototype.getOwner = function () {
    return new Owner(this.owner); // or Owner.get({id: this.owner})
  }

  return Pet;
})
Run Code Online (Sandbox Code Playgroud)

这里的问题很多.有诚信 - 一个人.我相信,这种实现允许同一资源的多个实例.那就是实用性.你也有额外的属性来跟踪(ownergetOwner(),而不是只owner;可能setOwner,如果你希望能够保存模型).

可以构建一个替代解决方案transformResponse,但是在每个具有嵌套映射的资源中都包含该解决方案.

angularjs angularjs-resource

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

将Flask中的URL恢复为端点+参数

在Flask中解析URL以检索对端点的引用以及所有参数的字典的适当方法是什么?

为了提供一个例子,因为这条路线,我想解决'/user/nick'profile,{'username': 'nick'}:

@app.route('/user/<username>')
def profile(username): pass
Run Code Online (Sandbox Code Playgroud)

从我目前的研究来看,Flask中的所有路线都存储在app.url_map.地图是werkzeug.routing.Map的一个实例,它有一个match()原则上可以做我正在寻找的方法.但是,该方法是类的内部方法.

python flask

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

Typescript接口具有命名属性和任意命名的不同类型的索引属性

我想为一个对象创建一个接口,该接口具有特定命名属性的特定类型和所有其他属性的不同类型.

我如何写foo下面的定义?

let foo = {
   size: 3,
   a: 'foo',
   b: 'bar',
   c: 'baz'
}
Run Code Online (Sandbox Code Playgroud)

这将是我直观的方法:

interface Foo {
    size: number;
    [name: string]: string;
}
Run Code Online (Sandbox Code Playgroud)

但是,TypeScript尝试将常规定义应用于特定定义并触发以下错误:

error TS2411: Property 'size' of type 'number' is not assignable to string index type 'string'.
Run Code Online (Sandbox Code Playgroud)

typescript typescript1.5

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