草庐IT

revealing-module-pattern

全部标签

design-patterns - 断路器设计模式 sleep vs time.AfterFunc

我正在尝试创建一个Circuitbreakerpattern,我想执行命令exec.Command如果失败,在X定义的时间内重试,出于测试目的,我正在做这样的事情来测试time.AfterFunc:packagemainimport("fmt""time")funcmyFunc()error{fori:=1;itime.AfterFunc适用于上面的代码,但不适用于下面的示例,我不得不将其替换为sleep以实现预期的结果:packagemainimport("fmt""os/exec""time")funcExec(donechan./sleep的内容:#!/bin/shsleep3为

design-patterns - 函数中的 GoLang 实时连接

我对golang中更好的代码使用有疑问。在几个包中使用实时连接(如数据库)的最佳情况是什么。最好像这样添加数据库连接1.func(databaseDB)getRows(){}或者2.funcgetRows(database*DB){}或者3.funcgetRows(){initdatabaseconnection...}对于第一种用法,我们需要为数据库创建本地结构typeDBstruct{connection}在不同的包中,我需要通过在每个包中创建本地结构来移动数据库连接,或者当某些包不使用数据库连接但使用导入包时?如何发送一个配置并只创建一个连接?单例是个好主意?对于这种情况的使用,

regex - 去正则表达式 : how I can replace named groups by concrete values in source pattern?

也许,你可以帮我。例如,我有像(?P\w+)(?P\w+)这样的正则表达式.我如何使用map[string]string{"name":"Alice","surname":"Cool"}替换组以获得字符串AliceCool?这可能吗?谢谢。 最佳答案 好的,我找到了制作方法。希望它会对某人有所帮助。https://play.golang.org/p/Xz9PtE_bIt 关于regex-去正则表达式:howIcanreplacenamedgroupsbyconcretevaluesins

go - 当我启用 module.jobs 时,Revel 没有启动

当我在app.conf中启用module.jobs时出现以下错误尝试重新下载模块包。在cron包中提供。没有用。INFO2017/05/0118:51:12main.go:32:Runningrevelserverpanic:reflect:callofreflect.Value.TypeonzeroValuegoroutine1[running]:panic(0xbd1b00,0xc4201e7c20)/usr/local/go/src/runtime/panic.go:500+0x1a1reflect.Value.Type(0x0,0x0,0x0,0x0,0x0)/usr/loca

go - 如何导入非 go 目录(例如 : C src/) with go modules?

我使用https://github.com/cloudflare/golz4这是C代码的接口(interface)。所以src/目录在dep树中是必须的。大多数依赖项管理忽略这些目录(没有.go文件)但留下一个选项来强制它。例如:godephas#[prune]#unused-packages=trueVgo/Go1.11mod会忽略这些目录,但是否有强制导入它们的选项?谢谢 最佳答案 go工具仅跟踪与导入的Go包位于同一目录中的C源代码——这是缓存失效算法的一个根深蒂固的假设。理想情况下,您应该将PR发送到cloudflare/g

go - 使用 GO111MODULE=on 安装 augustoroman/v8 时遇到问题

我能够完成设置和安装github.com/augustoroman/v8的整个过程——我手动构建了它的V8依赖项。当我运行gotest时,我得到以下结果:PASSokgithub.com/augustoroman/v89.433s我在$GOPATH/src/github.com/augustoroman/v8安装了这个包。到目前为止,一切似乎都在OSX上运行良好。但是,当我尝试在我自己的单独项目中使用import"github.com/augustoroman/v8"导入时,我收到了投诉。回想起来,我意识到我启用了GO111MODULE=on。这促使我在v8文件夹的根目录中添加一个包含

Go Modules - 如何引用 GitHub 中的分支

我正在使用CoreosOIDClibrary并且想知道如何引用(在go.mod文件中)一个分支,因为它们不是在master下开发的,而是使用v2相反。我试过github.com/coreos/go-oidc@v2但我得到:go:github.com/coreos/go-oidc@v2@v2.0.0+incompatible:invalidgithub.com/importpath"github.com/coreos/go-oidc@v2"go:errorloadingmodulerequirements 最佳答案 错误消息中的短语i

go - 在 buffalo 中生成新项目失败,出现 GO111MODULE 问题

我是第一次尝试buffalo。我手动安装了先决条件而不是使用scoop,因为我不知道scoop会把东西放在哪里:https://www.stuartellis.name/articles/windows-golang-setup/#installing-buffalo使用Powershell中的这个安装了buffalo,它似乎工作正常:goget-u-vgithub.com/gobuffalo/buffalo/buffalo然而,当我使用这个例子生成一个新项目时:https://gobuffalo.io/en/docs/getting-started/new-project/buffa

go - 构建命令行参数 : cannot load local package: cannot find module providing package

我无法使用gomod加载本地包。我有单独的go.mod文件用于repoA和repoB。我在任何地方都找不到解决方案。操作系统是windows。$>goversiongoversiongo1.12.7windows/amd64当我从repoA运行主文件时,我有两个带有存储库的模块。它将尝试查找repoB的模块/包,然后抛出一个错误提示cannotfindmoduleprovidingpackage我的repo结构:-����repoA�����proto������system�����sauth�����shandle�����smodel�����sresponse����repoB

go - 使用 GO111MODULE 安装 buffalo 导致 go get : error loading module requirements

这个问题在这里已经有了答案:GO111MODULE=on(errorloadingmodulerequirements)(1个回答)关闭3年前。我在尝试安装buffalo时遇到错误。我在goversiongo1.12.7linux/amd64上使用干净的GOPATH进行了测试,其中没有任何内容。GO111MODULE设置为on。我尝试使用网站上给出的命令安装buffalo:goget-u-vgithub.com/gobuffalo/buffalo/buffalo执行命令导致返回代码1,详细输出末尾的错误消息似乎是goget:errorloadingmodulerequirements。