RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-14618

sys_dev's questions

Martin Hope
sys_dev
Asked: 2024-11-30 18:11:22 +0000 UTC

术语“线性化操作”在分布式系统中意味着什么?

  • 5

我的问题是在阅读 Martin Kleppmann 所著的《高负载应用程序:编程、扩展、支持》ISBN 978-5-4461-0512-0 的书时出现的,我在第 383 页遇到了一个我不清楚的点。图 9.4

在本页的前半部分,作者讨论了阴影矩形,并表示该操作是非线性的。我不明白为什么?

直到第383页,作者解释了术语“线性化操作”的含义。他通过给出时间上重叠的读写操作的示例来解释这一点:

  • 写操作收到成功确认后,从那一刻起,所有读操作都会收到一个新的
  • 作者还提到,在写操作期间,有一个时刻,旧值被自动更改为新值,并且发起写操作的客户端尚未收到确认,而有读请求的客户端已经收到了新值

回到第383页的图9.4,我不明白这一点,为什么作者特别关注客户B?毕竟,在此之前,有一个时刻,客户端 C 使用 操作将 2 更改为 4 cas(x,2,4),导致客户端 A 读取了新值 4。客户端 A 和客户端 B 一样,也是竞争执行的!为什么作者不说客户端A,却说客户端B,和客户端A一样的情况,突然说他的读操作是非线性的。

作者的话“在没有其他查询的情况下,如果 read B 返回 2 就好了”完全令人困惑!为什么好呢?

база-данных
  • 1 个回答
  • 33 Views
Martin Hope
sys_dev
Asked: 2024-10-30 02:09:13 +0000 UTC

如何使用 pytest 在其生成的行级别测试对 CSV 的写入而不写入文件?

  • 6

请告诉我如何测试写入 csv 文件的功能而不写入文件,而是在下一行已经生成时放置一个模拟对象?

from csv import DictWriter

def write_to_csv(filename, address, opcode) -> None:
    with open(filename, 'w', newline='') as csv_file:
        writer = DictWriter(csv_file, fieldnames=(
            'address', 'opcode'))
        writer.writeheader()
        writer.writerow({'address': address,
          'opcode': opcode})

这是我想要得到的伪代码:

def test_write_to_csv():
    class CSVWriter:
        def write(row):
            self.row = row
    csv_writer = CSVWriter()
    with monkeypatch(DictWriter, csv_writer): 
        write_to_csv('opcodes.csv', 0xDA, 5)
        assert '0xDA,5' == csv_writer.row

在这段伪代码中我:

  • 创建了一个补丁对象来累积生成的字符串以写入 CSV 文件
  • DictWriter我通过传递我的补丁对象来修补标准对象,该对象会累积行
  • 然后我调用被测试的函数write_to_csv
  • 执行被测函数后,我检查其运行结果

我的示例专门缩小为此类原始代码,以便更容易解释我想要实现的目标。我需要编辑别人项目的代码;我没有机会在不降低自动测试速度的情况下测试记录大量值的 CSV 文件。因此,我真的想避免实际的 I/O 操作,并通过将生成的 csv 字符串累积在内存中来检查它们。

我不明白如何将伪代码测试转化为工作代码。如何编写猴子路径代码来修补标准模块以进行测试csv?

python
  • 1 个回答
  • 16 Views
Martin Hope
sys_dev
Asked: 2024-08-03 16:58:47 +0000 UTC

Python中如何将一个字节减为0?

  • 11

Python中有一段代码:

>>> bt2 = bytearray(2)
>>> bt2[0] -= 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: byte must be in range(0, 256)
>>> bt2[1] -= 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: byte must be in range(0, 256)

这对我来说是意想不到的行为。由于我有使用 x86-64 架构的汇编语言进行开发的经验,因此我希望当我将等于 0x0 的字节减 1 时,我将得到值 0xFF。如果我将等于 0xFF 的字节加 1,我将得到 0x0。但相反,我看到的是被遗弃的ValueError。

我有两个问题:

  1. 是否Python可以模拟“字节”,即减0x0时得到0xFF?
  2. 为什么Python会有这样的行为?
python
  • 2 个回答
  • 42 Views
Martin Hope
sys_dev
Asked: 2023-02-14 02:47:21 +0000 UTC

如何回滚在“git add”之后但在“git commit”之前所做的更改?

  • 7

一个文件一旦被添加到版本库中,src\test1.cpp那么我们就来说说文件的三种状态:

  1. 此刻git checkout来自远程分支
  2. 所做的更改和执行的命令git add src\test1.cpp
  3. 在同一src\test1.cpp文件中进行了更多更改,但git add没有执行

如果您现在运行git status,该命令将显示索引更改,但之后添加了更多未索引的内容。开发人员不再需要这些最后的更改,也不想将它们添加到下一次提交中。

开发人员如何将文件恢复src\test1.cpp到状态 2?

让我提醒您一些命令的工作原理:

  • git reset src\test1.cpp- 回滚索引更改,但它们保留在文件系统中。或者说,就好像git add他们根本就没有做过一样,根本不需要这个!
  • git checkout src\test1.cpp- 回滚索引和删除文件系统上的更改

在这两个命令之后,索引更改消失了!这不是所需要的。我们需要拯救他们。

git
  • 1 个回答
  • 35 Views
Martin Hope
sys_dev
Asked: 2022-09-06 18:27:54 +0000 UTC

如何将文件的状态回滚到 GIT 中的阶段状态?

  • 0

有一个项目,我在其中创建了一个foo.py. 对其进行了更改并应用了命令git add foo.py。运行命令git status我看到了这个(让它成为情况 1):

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   foo.py

我没有承诺,即 运行命令git commit并想稍微改进一下解决方案。换句话说,现在我的项目处于这种状态(假设是情况 2):

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   foo.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   foo.py

我现在如何从情况 2 到情况 1?也就是说,从文件中删除更改foo.py,好像在情况 1 之后我没有写任何其他内容。

git
  • 0 个回答
  • 0 Views
Martin Hope
sys_dev
Asked: 2020-06-29 18:28:58 +0000 UTC

如何在 Git 中列出从版本 1 到版本 2 的问题

  • 0

有没有一种简单的方法可以从 Git 获取从一个修订版到另一个修订版的问题列表,当已知提交注释中指出了问题编号时,例如,根据以下模式:

[TASK-NNN]:

我想提取所有东西TASK-NNN并留下独特的东西。

git
  • 1 个回答
  • 10 Views
Martin Hope
sys_dev
Asked: 2020-10-06 17:00:55 +0000 UTC

如何在 Visual Studio C++ 项目的 CMake 脚本中指定对 Boost.ProgramOptions 的依赖关系?

  • 0

我正在使用 C++ 编写一个项目MS Visual Studio 2013。在我的项目中,它用于Boost.ProgramOptions命令行解析。她对我来说似乎很舒服。

现在我的项目编译过程是这样的:

  1. 我正在下载存档boost。mercurial接下来,我将存档的内容放置在与项目存储库文件夹相关的上一级。
  2. boost我使用bat文件进行编译(文件本身的可点击链接)
  3. 接下来,我sln在工作室中运行该文件并使用工作室对其进行编译。

我需要通过应用来简化这个过程CMake,但我不明白如何boost在这个位置指定依赖?

也许您需要编写一个cmake查找 Boost 的 -function 并将其放入您的项目中,以便主cmake脚本可以应用此自定义FindBoost.cmake.

我也阅读了其中的代码c:\Program Files\CMake\share\cmake-3.9\Modules\FindBoost.cmake并不太明白,但是标准脚本能够FindBoost.cmake找到位置boost-a 吗?毕竟,他们可以在任何地方解压!

但是有更好的方法吗?也许我以某种方式使事情过于复杂并且有更好的方法?

c++
  • 1 个回答
  • 10 Views
Martin Hope
sys_dev
Asked: 2020-09-21 17:21:15 +0000 UTC

在什么情况下可以并且应该进行 rebase,在什么情况下不能进行?

  • 20

我不能自己下结论,我应该什么时候下结论rebase?我请有经验的同志分享他们的经验,并说明影响需要做什么的决定的标准rebase。并举例说明没有必要这样做的情况。

假设我创建了一个 branch1 来实现 feature1。此时master分支提交到commit0。与我同时,Vasya在branch2中同步实现feature2并合并到master中。Branch2 由 commit1、commit2、commit3 组成,这些提交在 master 中结束。我想使用 GIT 将我的分支带到状态,就好像我从 commit3 开始创建我的 branch1 一样。

在我的情况下可以接受rebase吗?

git
  • 2 个回答
  • 10 Views
Martin Hope
sys_dev
Asked: 2020-08-26 18:06:15 +0000 UTC

在 GIT 中是否可以将另一个文件添加到上次本地提交?

  • 25

有时我会在提交时忘记指定其他文件。有没有办法将文件添加到最后一次提交?

在 Mercurial 中,我这样做:

  1. hg qinit
  2. 将提交转换为补丁
  3. 我更新补丁
  4. 将补丁转换为提交

也许 GIT 也有办法?

git
  • 4 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5