小编Mic*_*ael的帖子

在函数式编程中,函数是否可以调用在其范围之外声明的另一个函数而不作为参数传递?

使用在函数范围之外声明的函数是否违反了函数原则,如不变性?或者这是指数组,字符串等数据.

例如:

var data ["cat", "dog", "bird"];

function doThing (val) { 
     return val + ", go away!" 
}

function alterData (data) {
    return data.map(doThing);
}

alterData(data);
Run Code Online (Sandbox Code Playgroud)

以上代码是否可以接受?或者"doThing"函数是否需要作为参数传递给alterData函数?

我感到困惑的原因是因为在函数式编程示例中,我经常看到正在使用的语言的本机函数,而不是首先传递给函数.但是,这些示例从未足够复杂,无法显示如何使用函数库.

问候

functional-programming

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

构建React组件库:如何捆绑css和其他资源?

所以我的理解是,当你分发一个 React 组件供其他人使用时,你应该发布它的编译版本,而不是源代码,并期望最终用户将其集成到他们自己的构建过程中。

这听起来很合理,但我不确定捆绑 css 和其他资产(如图像)的最佳策略。

一种方法是内联,但对于中等大小的任何内容似乎都不鼓励内联。

另一种方法是将 CSS 和图像导入到从库导入组件的文件中。然后最终用户应用程序的构建过程将处理其余的事情。喜欢:

import CoolComponent from 'CoolReactLibrary';
import 'CoolReactLibrary/css/styles.css';
import 'CoolReactLibrary/images/logo.png';

...
Run Code Online (Sandbox Code Playgroud)

这看起来很麻烦,如果我有一个由一堆较小组件组成的组件库,如下所示:

import PrimaryButton from 'CoolReactLibrary/buttons';
import 'CoolReactLibrary/buttons/primary-button/styles.css';

import Card from 'CoolReactLibrary/layout';
import 'CoolReactLibrary/layout/card/styles.css';

import VerticalMenu from 'CoolReactLibrary/menus';
import 'CoolReactLibrary/menus/vertical-navigation/styles.css';
Run Code Online (Sandbox Code Playgroud)

我的偏好是让最终用户这样做:

import PrimaryButton from 'CoolReactLibrary/buttons';
import Card from 'CoolReactLibrary/layout';
import VerticalMenu from 'CoolReactLibrary/menus';
Run Code Online (Sandbox Code Playgroud)

那里的一切都可以正常工作。

有人为此找到一个干净的解决方案吗?

javascript css reactjs

6
推荐指数
0
解决办法
1211
查看次数

像 RabbitMQ 这样的消息队列用于对 SQL 数据库进行大量写入?

该场景需要将大量数据(例如跟踪点击或鼠标移动)从 Web 应用程序写入 SQL 数据库。不需要立即写入数据,因为对数据的分析会在某些重复的基础上进行,例如每天或每周。

我想要一些关于我想到的解决方案的反馈:

单击和鼠标数据发布到消息队列。这将队列项存储在内存中,因此它应该比 SQL 更快。然后在其他一些服务器上,一个作业插入检索下一个队列项并将数据写入 SQL。

有谁知道这样的实现?我没有看到哪些陷阱?如果这个解决方案不是一个好的解决方案,还有其他选择吗?

问候

database scalability rabbitmq

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

Python 装饰器将多个函数作为参数?

我了解了 Python 装饰器的基本原理,并且喜欢它的语法。然而,他们似乎对你能做的事情有点限制。

有没有一种优雅的方法来处理多个函数作为参数,如下所示?

def parent_fn(child_fn1, child_fn2):
    def wrapper():
        print('stuff is happening here')
        child_fn1()
        print('other stuff is happening here')
        child_fn2()
    return wrapper

@parent_fn
def decorated():
    print('child_fn1 stuff here')

decorated()
Run Code Online (Sandbox Code Playgroud)

我可以把 c​​hild_fn2 代码放在哪里?我尝试过的几个想法似乎削弱了装饰器的简单性和优雅性。

python python-decorators

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