小编Phu*_*yen的帖子

launchctl 配置用户路径有什么作用?

我在 MacOS 中的 PATH 环境变量遇到了一个奇怪的问题,我花了几个小时来调试:

  • 前段时间,当我试图解决 IntelliJ 终端 PATH 变量与 iTerm 不同的问题时,我按照网上的一篇文章并执行了以下命令:

    sudo launchctl config user path $PATH

  • 显然,这个命令会在某个时刻设置并保留 PATH 变量的值,并且每当我启动新的 zsh 会话时,甚至在加载 shell 之前都会加载该变量。直到最近我才意识到这个问题,因为我删除了我的一些路径位置设置zshrc,并且PATH变量仍然没有反映

  • 我的问题是该命令在哪里存储PATH变量值?在加载我的 shell 之前它如何加载该值?

(对于想知道我如何解决问题的人:我再次执行命令以将路径设置为空值sudo launchctl config user path '':)

macos shell terminal zsh launchctl

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

为什么分布式缓存比数据库快?

假设数据在数据库和分布式缓存中存储相同(即不需要连接),分布式缓存比直接访问数据库快得多是否仍然相关?据我所理解:

  • 应用程序访问分布式缓存的延迟 = 网络时间 + 缓存访问(在内存中)时间 + 反序列化(从二进制到对象)时间
  • 应用访问数据库的延迟=网络时间+数据库查询时间(文件访问或数据库缓存)+水化时间(将数据库结果读入对象)

所以这里的区别在于缓存访问时间和数据库查询时间(假设反序列化在强大的服务器上很快)。但是与网络时间相比,我认为缓存访问时间和数据库查询时间应该小得多,因此时间应该大致相同?

我知道我在这里有很多假设,但如果有人能帮助解释我是否理解正确,那就太好了(如果有统计数据,那就更好了)

database performance distributed caching

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

jQuery不适用于jsdom / enzyme

我有一个包含以下组件的最低测试React应用:

import React from 'react';
import $ from 'jquery';

export default class App extends React.Component {
    componentDidMount() {
        console.log('componentDidMount', $('#helloDiv').length);
    }

    render() {
        return <div id='helloDiv'>
            Hello React!
                </div>;
    }
}
Run Code Online (Sandbox Code Playgroud)

在浏览器(Chrome)中加载该文件时效果很好。componentDidMount()中的console.log()打印出找到的1个helloDiv元素

但是,如果我使用摩卡+酶+ jsdom进行测试,则App组件中相同的console.log()会输出0:

import React from 'react';
import { mount } from 'enzyme';
import { expect } from 'chai';
import App from '../src/client/app/first'

describe('first test', () => {
    it('should pass', () => {        
        const app = mount(<App />);
        expect(app.find('#helloDiv').length).to.eq(1);
    });
});
Run Code Online (Sandbox Code Playgroud)

注意:此单元测试没有问题,正在通过。真正的问题是,当使用酶安装<App />时,会调用componentDidMount(),但其中的console.log()语句将输出0,而不是1

这是我运行摩卡的方法:

mocha --require enzyme/withDom --compilers js:babel-core/register …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jsdom reactjs enzyme

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

TeamCity专业许可证

我正在考虑使用TeamCity for CI,不确定是否可以将Professional License(免费)用于商业应用?

在其许可证页面https://www.jetbrains.com/teamcity/buy/上,似乎专业许可证仅受构建配置和构建代理程序数量的限制,没有提及任何有关商业用途的信息。

在他们的常见问题解答https://sales.jetbrains.com/hc/en-gb中,他们谈论的是商业许可证和个人许可证,而不是专业许可证和企业许可证,这使我更加困惑。常见问题解答页面过时了吗?

我的应用程序是.net应用程序,托管在Github(私有)中。我们打算在AWS中将TeamCity设置为构建服务器

teamcity continuous-integration build

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

DDD:对实体/值对象进行分类

我刚开始学习域驱动设计,而最让我困惑的几件事之一是如何确定哪一个应该是实体,哪一个应该是值对象

我知道要确定实体/值对象,我们需要基于域上下文,在一个上下文中,一个域对象可以是实体,另一个,它可以是值对象,但仍有一些情况我无法决定

.eg地址 - 在客户管理应用程序的上下文中(我们只说一个管理客户的应用程序,添加/删除/更改客户的状态等),地址显然是值对象,因为这里我们不需要区分一个来自另一个地址,2个客户可以拥有相同的地址 - 另一方面,在在线预订应用程序的上下文中,我可以说地址是一个实体吗?因为现在我们需要通过他们的账单地址来区分客户(只是忽略案例2目前具有相同地址的客户)

对我而言,地址本身就是独一无二的,所以它绝对具有同一性.因此,域对象的身份不会决定它是实体还是价值对象,如果是,那么选择的关键因素是什么?

另一个例子,我有一个应用程序列出了一个国家/地区的许多区域,用户可以选择一个区域,并找到符合其搜索条件的所有餐厅.在这种情况下,区域是值对象还是实体?目前我认为它更多的是一个实体,但仍然不是很确定.每个区域也是独一无二的

我不确定我的问题是否清楚,我现在尽力解释我的想法

dns entity domain-driven-design object

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