问题标签 [code-sharing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
293 浏览

c# - 在 2 个项目之间共享通用 c# 类,但允许项目对其进行更改

假设我有一个项目 A,其中包含将在项目 B 和项目 C 之间共享的公共类。

项目 C 是否有可能从项目 A 中实现它自己的类版本,以便项目 A 中的其他类将使用项目 C 版本(如果这将是构建目标)或使用项目 B(共享版本)版本(如果是)是目标。

我认为拥有 2 个单独的类将是一个解决方案,但要确保我更新两个版本,这将是一件令人头疼的事情。我能想到的另一种解决方案是虚拟方法,但我不知道共享类依赖项是使用覆盖方法还是原始方法。

0 投票
1 回答
94 浏览

.net - 在 WPF、UWP、Phone 81 和 Compact Framework 之间共享 C# 代码

多年来,我们通过在包含该项目所有源代码的目录中为每个平台创建项目,在这些平台之间共享我们的 C# 代码。当我们添加新平台时,如果包含的代码文件无法在新平台上编译,我们将创建代码文件的副本并对其进行修改,以便它可以在预期的平台上运行。

项目目录可能如下所示

现在我对 UWP 采用相同的方法,我遇到了这个问题。为 UWP 添加新项目时:

现在,当我转到我的 WPF 解决方案时,编译 Applications.Base.WPF 项目时出现错误(尽管 WPF 项目中没有包含 UWP 项目文件的事件):

您的项目没有引用“.NETFramework,Version=v4.6.1”框架。在 project.json 的“frameworks”部分添加对“.NETFramework,Version=v4.6.1”的引用,然后重新运行 NuGet 还原。DSI.Applications.Base

经过一些 A/B 测试,我发现我可以通过使用 nuget 删除 UWP 对 Microsoft.NETCore.UniversalWindowsPlatform 的引用来修复错误。当然,这破坏了 UWP 项目。根本没有 project.json 存在。

是否有一种解决方法可以让我们继续以这种方式共享代码?重构我们的共享项目以适应所有平台将是一个巨大的负担 - 有许多这样的共享项目 - 其中一些甚至共享到其他平台(我们的 ASP.Net 项目。)

0 投票
2 回答
969 浏览

ios - Swift 中共享 watchOS/iOS 类的平台特定代码?

我目前正在构建一个带有 watchOS 应用扩展的 iOS 应用。我有两个应用程序之间共享的某些类,它们在两个平台上基本相同,但有某些变化。我想知道如何最好地实施。现在我使用以下内容:

或者

虽然这可行,但它带来了几个问题,因为 XCode 似乎对此感到很困惑。使用这种语法时,缩进、自动完成和方法列表都有点偏离。

这样做的正确方法是什么?如何将 iOS/watchOS 特定的属性和方法添加到 Swift 中的共享类?

0 投票
0 回答
629 浏览

angularjs - 使用 ngrx 在 Angular 应用程序之间共享代码

ngrx在两个独立的 Angular 应用程序之间共享一个封装在库中的单个商店是否是个好主意?我们的业务逻辑层非常面向计算(类似于电子表格),因此它自然适合反应式模型。问题是,我不确定拆分此代码的最佳方法,因此我们的团队不必维护两个实现相同逻辑的并行代码库。

背景:我目前正在运行一个 AngularJS 混合应用程序(已经移植到 Typescript),并将开始使用 Angular 5 编写的新应用程序。不幸的是,我们需要在这些应用程序之间共享大量业务逻辑和服务应用程序:混合应用程序目前构建在类似于 Flux 的架构上,其中包含商店、动作创建者和组件(使用.component语法),而我打算在@ngrx/store. 为了弥合差距,我正在考虑创建第三个项目,该项目将是一个依赖于它的库,@ngrx/store它将封装两个应用程序所依赖的动作、存储、reducers 和效果。这是一个好主意,还是非常误导?

0 投票
0 回答
45 浏览

r - 归档/存储/共享代码的最佳实践

注意:我在 R 下标记了这个,因为我是 R 用户,但是这个问题的主题是一般性的,所以无论编程语言如何,我都感谢任何输入。

大家好,

我的公司正在扩展到数据科学/开发人员领域,并将在不久的将来开发代码/脚本。我想为内部共享和归档已开发代码制定标准实践。重点是,如果我们今天开发一个代码,我们可以对那个代码和围绕那个代码做些什么,以便在 5 年后它可以很容易地被理解。本质上,在代码共享和归档方面,最佳实践是什么?

我为此做了一些研究,所以我了解 DRY(不要重复自己)对 WET(我们喜欢打字)的偏好,拥有顶级 README、可读且易于理解的评论,以及截图或示例成品。您对这些做法有何看法,如何改进?

0 投票
2 回答
369 浏览

dll - Xamarin Forms 代码共享

我正在开发一个 xamarin 表单 (PCL) 项目(一个基本的客户服务聊天应用程序,只能在 Android 和 iOS 上运行),它只有两个 xaml 页面、自定义渲染器和少量依赖项。该项目旨在实现到另一个现有项目(我无权访问其源代码),以便将操作绑定到现有应用程序上的按钮以显示我自己项目的页面。

我需要与客户的开发人员共享我的聊天项目,但不暴露我的源代码,可能编译为 dll 或 nuget 包,这些包将添加到现有项目中以访问我的项目的功能和页面。我已经在 xamarin 论坛和 stackoverflow 上进行了搜索,但似乎无法找到解决方案。

这可能吗?如果是,我错过了什么?如果没有,有没有更好的选择?

请注意,聊天应用程序已完全完成,所以我希望也许有一种方法可以直接将项目转换为 Nuget 包。

感谢期待!

0 投票
1 回答
579 浏览

node.js - 如何让位忽略依赖文件?

我们有一个当前的 ReactJS 项目,我们为它构建了一个自定义网格、输入、错误处理程序等。
现在我们开始一个新项目,我们想在项目之间共享我们的组件代码。我们做了一些研究,发现 bit 平台bitsrc.io 非常愉快和好,我们实际上在我们的项目之间共享了一些代码。
唯一的问题是 bit 有一个 import 语句的依赖检查器。
我们将大部分依赖项添加到 bit lifeCycle,但其中一些是配置文件,我们希望它们在我们的项目中有所不同。
谁能知道我们可以忽略配置导入依赖的方式?

0 投票
0 回答
118 浏览

react-native - react-native 如何在多个项目之间共享代码?

有一些技巧,例如使用私有 npm 或使用 git 子目录或凉亭,但效率不高。另一个选项是 bit ,但它不是一个简单的配置是大问题。

是否有另一种用于项目之间代码共享的工具?

0 投票
0 回答
166 浏览

python - 如何将python包分发给小型企业

我在一家小型企业工作,最终用户的数量和对一组特定软件包的贡献永远不会超过 5 个(这是有保证的)。在过去的 3 个月里,我们一直在为每个项目使用 anaconda 和本地 git 存储库在共享 Windows 驱动器上进行所有研究和开发。可以想象,生成的源代码变得有点混乱,每个人的代码都指向其他人文件夹中的特定包,并且依赖关系一直在中断。

我们终于获得了一个 github 存储库,并且我们的大部分代码已经成为生产稳定的。我想在 tarball 中分发此代码,并让每个人在共享的 anaconda 环境中使用 disutils 从源代码构建。完整的包将由每个子包组织,并包含 cython 和 python 文件。最终,它看起来像这样

我将把“工具”包放入 github repo。每次工具包发生重要更改时,我们都会从主分支中提取并重新运行 setup.py 以保持其本地工具包是最新的。此外,我们都将使用共享的 anaconda 环境,因此对外部包的依赖不会破坏工具包的安装。

这是在少数最终用户中分发生产代码的正确方法吗?我来自研究而不是软件开发背景,我真的不知道软件分发是如何工作的。每次我们更新“工具”包时都强迫每个人从源代码重建过大吗?传统上,当我使用 conda/pip 安装时,我可以只说“pip install mypackage --upgrade”之类的内容。我们可以在这里使用某种类似的程序吗?

0 投票
1 回答
93 浏览

nativescript - 使用 Nativescript 构建供第三方使用的库

只是好奇这里是否有人曾经使用过 Nativescript 来构建库,或者 Nativescript 是否仅用于构建独立应用程序。

如果不是,那么共享在 Nativescript 中完成的工作以让这些第三方也在 Nativescript 中重建他们的应用程序的唯一方法是什么?