我有几个关于在开发阶段使用 Docker 的问题。
我将提出三种不同的场景,说明我认为 Docker 可以在开发环境中使用的方式。假设我们正在用 Java 和 Spring Boot 创建一个 REST API。为此,我需要一个 MySQL 数据库。
第一个场景是使用 docker-compose 使用 MySQL 容器进行开发,并使用另一个容器中的 MySQL 和 Java 应用程序 (jar) 进行生产 docker-compose。为了开发,我启动 docker-compose-dev.yml 以仅启动数据库。使用 IDE(例如 IntelliJ Idea)启动和调试应用程序。对代码所做的任何更改,IDE 将通过应用更改来识别并重新启动应用程序。
第二种情况是,对于开发和生产环境,都有一个带有数据库和应用程序容器的 docker-compose。这样,每次我对代码进行更改时,我都必须重建映像,以便将更改加载到映像中并再次启动容器。这种场景可能是最典型的,用于使用 Docker 进行开发,但由于每次发生更改时都需要重建映像,因此看起来很慢。
第三种情况是前两种情况的混合。两个 docker-compose。开发 docker-compose 包含两个容器,但具有允许实时重新加载应用程序、映射卷和使用例如 Spring Dev Tools 的机制。通过这种方式,启动容器,如果文件发生任何更改,应用程序容器将检测到更改并重新启动。对于生产,docker-compose 将简单地使用两个容器创建,但没有实时重新加载的功能。在我看来,这将是理想的情况,但我认为这非常依赖于所使用的技术,因为并非所有技术都允许实时重新加载。
问题如下。
使用 Docker 进行阶段时,以下哪种场景最典型?
场景1是否很好地提出?即仅dockerize 外部服务,如数据库、队列等,使用IDE 进行应用的开发和调试,不使用Docker。
我提出的疑问和场景是在我提出场景 2 的问题之后出现的。随着代码的每次更改,必须重新构建映像并再次启动容器是浪费大量时间。简而言之,一个问题是:如何避免这种情况?
在此先感谢您的时间。
注意:这可能是一个受制于意见的问题,但很高兴知道开发人员通常如何处理这些问题。
development-environment hotdeploy livereload docker docker-compose
领域事件在 DDD 中众所周知,可以在聚合根或领域服务中发布。我的问题是,域事件可以在应用程序服务/用例中发布吗?
例如,简化。我有一个名为 的应用程序服务UseCaseA,它执行调用一些聚合根的各种操作。如果我想在该用例结束时引发一个事件,我可以UseCaseAFinished在此应用程序服务中发布该事件吗?它是领域事件还是应该称为应用程序事件?DDD 中是否存在应用程序事件术语?
提前致谢。
Python类属性和Java静态属性有什么区别?
例如,
在Python中
class Example:
attribute = 3
Run Code Online (Sandbox Code Playgroud)
在Java中
public class Example {
private static int attribute;
}
Run Code Online (Sandbox Code Playgroud)
在Python中,可以使用对实例的引用来访问静态属性吗?
在遵循具有 ddd 原则的六边形架构时,用例或应用程序服务是否应该具有接口和实现?例如,用例“删除视频”,是否应该让 IDeteVideo(接口)和 DeletVideoImpl(实现)实现该接口?
如果答案是肯定的,那么用例的接口应该在哪里,在领域层还是在应用层?很明显,实现应该总是在应用层。
我认为用例不是经常变化的东西,所以在我看来,我认为没有必要有一个接口,有实现就足够了。但是就六边形架构和 DDD 原则而言,是否对此有所说明?
提前致谢。
当我使用 Service Worker 构建 Angular 应用程序时,它会创建一个包含每个文件的哈希值的哈希表,以检测应用程序的新版本何时可用。该哈希表位于 ngsw.json 中。
这是哈希值的示例。

如果我想使用 PurifyCSS 清理未使用的 css,则 dist/styles.*.css 将更改文件内容及其哈希值,但 ngsw.json 具有旧哈希值。
在这种情况下,Angular Service Worker 将失败,因为存在哈希不匹配。
我怎样才能避免这种情况呢?运行 PurifyCSS 后是否应该在 ngsw.json 中手动更新哈希?是否有某种机制可以自动更新此值,或者可以在 angular-cli 为每个文件生成哈希之前执行 PurifyCSS 吗?
这个问题通常针对对服务工作者缓存的 dist 文件进行的任何类型的修改,因为哈希会改变,因此会出现哈希不匹配。这意味着 Service Worker 将无法工作。
先感谢您。
angular ×1
attributes ×1
class ×1
docker ×1
gulp ×1
hash ×1
hotdeploy ×1
java ×1
livereload ×1
purifycss ×1
python ×1
terminology ×1
use-case ×1