小编cod*_*ded的帖子

如何在使用Docker Compose时有效地重建项目?

这可能是一个愚蠢的问题,但我是使用Docker-compose的新手.到目前为止,我喜欢它...但我有一些很长的构建时间.我有一个包含多个依赖项的项目,每次进行更改时我都需要显然重建源代码.现在,我正在呼吁docker-compose build重建容器,然后是一个docker-compose up.问题是:

  1. 它正在为源代码所做的每一次更改重建整个容器(这需要很长时间 - 获取依赖项/等).这显着减慢了我的速度.

  2. 我真的觉得我应该能够在容器上运行命令来重建然后重新运行可执行文件,就像这样:

    docker-compose run web go build .
    docker-compose run web ./app
    要么
    docker-compose run web go build .
    docker-compose restart
    
    这应该有效,因为我正在使用卷在主机和容器之间共享代码.不应该需要重新获取所有依赖项.它不应该使用新建的可执行文件吗?但是,这并不反映构建的更改和端口转发似乎中断.

作为参考,这是我的Dockerfile:

FROM golang:1.8

COPY . /go/src/github.com/codeblooded/test1
WORKDIR /go/src/github.com/codeblooded/test1

RUN echo $PATH
RUN go get -d -v ./...
RUN go install -v ./...

RUN go build -o test1 .
CMD ["test1"]
EXPOSE 3470
Run Code Online (Sandbox Code Playgroud)

还有我的docker-compose.yml文件:

version: '3'
services:
  postgres:
    image: postgres
    volumes:
      - ./db/data/psql:/var/lib/postgresql/data
      - ./db/schema:/db/schema
  redis: …
Run Code Online (Sandbox Code Playgroud)

build go build-time docker docker-compose

9
推荐指数
1
解决办法
2019
查看次数

如何在Ruby中处理方法顺序?

我是Ruby的新手.我熟悉其他几种语言.我的问题是关于调用方法不按顺序.例如:

def myfunction
    myfunction2
end

def myfunction2
    puts "in 2"
end
Run Code Online (Sandbox Code Playgroud)

我怎么能在声明之前调用myfunction2?有几种语言可以在顶部或.h文件中声明它.红宝石如何处理它?

我是否总是需要遵循:

def myfunction2
    puts "in 2"
end

def myfunction
    myfunction2
end
Run Code Online (Sandbox Code Playgroud)

当我需要def initialize为一个类调用另一个方法时,主要是这会让我感到烦恼.

ruby

8
推荐指数
2
解决办法
4774
查看次数

哪种方式最适合Python工厂注册?

这是一个关于这些方法中的哪一个被认为是最Pythonic 的问题。我不是在寻找个人意见,而是在寻找什么是惯用的。我的背景不是 Python,所以这对我有帮助。

我正在开发一个可扩展的 Python 3 项目。这个想法类似于工厂模式,只是它基于函数。

本质上,用户将能够创建一个自定义函数(跨包和项目),我的工具可以找到并动态调用该函数。它还可以使用柯里化来向下传递参数(但此处不包含该代码)

我的目标是遵循良好的 Pythonic 实践。我在两种策略之间左右为难。而且,由于 Python 不是我的专长,我想知道以下做法的优缺点:

  1. 使用装饰器

    registered = {}
    
    def factoried(name):
        def __inner_factory_function(fn):
            registered[name] = fn
            return fn
        return __inner_factory_function
    
    
    def get_function(name):
        return registered[name]
    
    Run Code Online (Sandbox Code Playgroud)

    然后,下面的函数就自动注册了...

    @factoried('foo')
    def build_foo():
      print('hi')
    
    Run Code Online (Sandbox Code Playgroud)

    这看起来很合理,但对于那些不熟悉装饰器的人来说确实有点神奇。

  2. 强制对抽象类进行子类化并使用 __subclasses__()

    如果使用子类,则无需注册。但是,我觉得这会在可能不需要完整类时强制定义类。此外,.__subclasses__()引擎盖下的使用对消费者来说也很神奇。但是,即使是 Java 也可以用于搜索带有注释的类。

  3. 显式注册

    忘记以上所有内容并强制显式注册。没有装饰器。没有子类。就像这样:

    def build_foo():
      # ...
    
    factory.register('foo', build_foo)
    
    Run Code Online (Sandbox Code Playgroud)

python idioms python-3.x python-decorators

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

在C#中,将该方法封装在这个类中的目的是什么?

我是C#的新手.将main()方法放在"类"中的目的是什么.不会为这个"所谓的"类创建任何对象.我不知道为什么他们将整个程序视为类和方法.另外为什么main()函数被称为方法?显然它是在课堂上,但我总是把它称为一个功能.像这样:

using System;
public class MyApp // What is the purpose of this class?
{
  public static void main() // Why is this called a method & not a function when no objects use it?
  {
    //Statements Here
  }
}
Run Code Online (Sandbox Code Playgroud)

c# oop methods programming-languages

3
推荐指数
1
解决办法
452
查看次数

为什么要在工厂功能上使用pytest工厂作为固定装置?

py.test文档中,它描述了将工厂方法声明为fixture,例如:

@pytest.fixture
def make_foo():
    def __make_foo(name):
        foo = Foo()
        foo.name = name
        return foo
    return __make_foo
Run Code Online (Sandbox Code Playgroud)

与仅定义make_foo函数并使用它相比,这样做有什么好处/缺点?我不明白为什么它是固定装置。

python unit-testing fixture pytest

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

Swift 中的函数是 ScriptEngine 还是 eval() 之类的函数?

在 Java 中,我们可以使用ScriptEngine. 这对于基于通用命名约定构建框架非常有用。在 JavaScript 中,当然有eval(). Swift 是否有某种机制来评估包含 swift 表达式的字符串?我知道这可能会被滥用;然而,它会简化我目前的发展。

eval ios swift

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