有关跨多种语言创建“标准”组件的一般建议

时间:2018-12-04 21:24:56

标签: java python .net design-patterns

长话短说:我正在寻求有关如何创建在多种语言上功能相同的“标准”组件/包装库的建议。最终目标是拥有所有软件都可以使用的通用库,以便可以轻松更改后端,而无需接触100多种软件

一个简单的示例是采用日志名称和详细级别的日志记录包装器。它将具有默认的日志记录/时间戳格式,目录位置和.log扩展名。后端实现会有所不同,但输出应该相同。

Java

public Logger log = new Logger("mylog", 20);
log.info("This is a Java log")

Python

log = Logger("mylog", 20)
log.info("This is a Python log")

C#

public Logger log = new Logger("mylog", 20);
log.info("This is a C# log")

mylog.log中的输出:

  

2018-12-04 15:00:00 |信息|这是一个Java日志

     

2018-12-04 15:00:01 |信息|这是一个Python日志

     

2018-12-04 15:00:02 |信息|这是一个C#日志

假设以下内容:

  • 使用的语言是Java,C#,Python
  • 使用了GitHub
  • 库组件的数量将从3开始,但会缓慢增长到10 +。
  • 前三个组件/包装器将是日志记录,SQL连接,配置文件读取器/写入器
  • 每种语言都会被发布,例如DLL或JAR。
  • 有十几个开发人员和100多个脚本/应用程序/ GUI等。

我要提出的问题是:

  1. 每种语言都应该有自己的存储库吗? (我可以考虑每种优点/缺点,并开始倾向于使用单独的存储库)
  2. 如何处理不同的IDE?例如带有Eclipse或NetBeans的Java。应该从cli运行构建吗?
  3. 关于版本的想法?即所有组件最初都是在1.0版中发布的。 C#日志记录获取更新,并且现在是1.1版。理想情况下,在遵守纪律的情况下,Java和Python应该同时进行更新,并且版本必须相同。
  4. 该方法有什么陷阱吗?
  5. 这种方法在小型或大型组织中常见吗?
  6. 我为尝试这个而疯狂吗?!

更长的故事:我们拥有机器(制造中的文字机器)以及0至25年的PC。 PLC,Windows / Linux / Mac,移动设备,GUI /命令行应用程序等。由于无法完全更新所有内容,因此无法进行更改。

因此,我们在组织内使用多种语言,主要是Java,Python和.NET。另外,由于机械和PC的种类繁多,我们有100多个脚本,应用程序(既简单又非常复杂),Web界面等。它们用于诸如自动数据收集,手动数据输入或图形显示之类的事情。

由于许多开发人员创建了许多不同的程序,因此我们试图创建一组通用的组件,这些组件在多种语言中基本相同。

0 个答案:

没有答案