如何记录在函数参数中解构的函数参数?
/**
* Function deconstructs argument and do stuff.
* @param {} *** what should i do here? ***
*/
function someFunction({ key1, key2, key3 }) {
// do function stuffs
}
Run Code Online (Sandbox Code Playgroud) 为了加快我们的开发工作流程,我们拆分测试并在多个代理上并行运行每个部分。然而,编译测试源似乎需要大部分时间用于测试步骤。
为了避免这种情况,我们使用 sbt 预编译测试test:compile并构建一个带有编译目标的docker镜像。
稍后,此映像在每个代理中用于运行测试。但是,即使存在已编译的类,它似乎也会重新编译测试和应用程序源。
有没有办法让 sbt 使用现有的编译目标?
更新:提供更多上下文
这个问题与 scala 和 sbt 严格相关(因此是 sbt 标签)。
我们的 CI 过程分为多个阶段。它大致是这样的。
第 1 阶段:使用 SBT 将 Scala 项目编译为 java bitcode 使用sbt compile我们在同一个测试中使用编译测试源sbt test:compile目标捆绑在 docker 映像中并推送到远程存储库,
第 2 阶段:我们使用多个代理来并行拆分和运行测试。测试从构建的 docker 镜像运行,所以环境是一样的。但是,sbt test即使存在已编译的 bitcode ,运行也会导致项目重新编译。
为了说明这一点,我基本上想在一台机器上编译并在另一台机器上运行已编译的测试源,而无需重新编译
更新
我不认为/sf/answers/2620850011/是同样的问题,因为与它不同,我不安装卷或在主机上构建。一切都在 docker 中编译和运行,但分为两个构建阶段。因此,文件修改时间和路径保持不变。
调试输出有这样的东西
Initial source changes:
removed:Set()
added: Set()
modified: Set()
Invalidated products: Set(/app/target/scala-2.12/classes/Class1.class, /app/target/scala-2.12/classes/graph/Class2.class, ...)
External API changes: API Changes: Set()
Modified binary dependencies: Set() …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的存储库的通用接口。
export interface IBaseRepository<T> {
create(model: T): T;
edit(model: T): T;
read(): T
}
Run Code Online (Sandbox Code Playgroud)
我试图在这样的功能模块中实现这个存储库接口(因为它基本上是一个无状态的单例)。
// user-repository.ts
export function create(model: IUser): IUser { ...code }
export function edit(model: IUser): IUser { ...code }
export function read(): IUser { ...code }
Run Code Online (Sandbox Code Playgroud)
有什么方法可以确保IBaseRepository在UserRepository. 或者我是否必须始终将存储库实现为一个类并导出一个实例化的单例?