gpt4 book ai didi

codebase - 混合两种或多种语言(如 Java 和 C++)时组织源代码库

转载 作者:行者123 更新时间:2023-12-03 21:44:17 24 4
gpt4 key购买 nike

几天前,我不得不将 C++ 文件引入 Java 项目时遇到了一个问题。它首先需要测量 Java 进程的 CPU 使用率,然后决定采用 JNI 调用用 C 编写的 native 库(Unix 机器上的共享库)。问题是找到一个合适的位置将 C 文件放在仅包含 Java 文件的源存储库(顺便说一下 Clearcase)中。

我想到了几个替代方案:

(a) 创建一个单独的目录,用于将 C 文件(具体来说,一个 .h 文件和一个 .c 文件)放在源代码库的顶部,例如:

/vobs/myproduct/javasrc
/vobs/myproduct/cppsrc

我不喜欢这样,因为我只有两个 C 文件,而且像这样在语言级别拆分源代码库似乎很奇怪。如果项目的大部分内容或多或少地用 C++ 和 Java 编写,这可能没问题。

(b) 将 C 文件放入使用它的 Java 包中。

我在/vobs/myproduct/com/mycompany/myproduct/util/中有调用 Java 类,C 文件也放在那里。

我也不喜欢这个,因为我认为 C 文件不属于 Java 包。

以前有没有人解决过这样的问题?一般来说,在组织混合两种或多种语言的代码库时,应该遵循什么好的策略?

更新:我没有任何计划在我的项目中使用任何 C 或 C++,也许是一些 Jython,但你永远不知道我的客户何时需要只能通过使用 C 来解决或最好通过使用 C 来解决的功能。

最佳答案

“我不喜欢这样,因为我只有两个 C 文件,而且像这样在语言级别拆分源代码库似乎很奇怪”

为什么看起来很奇怪?考虑这个项目:

项目1\src\java
项目1\src\cpp
项目 1\src\python

或者,如果您决定将内容拆分为模块:

项目1\模块1\src\java
项目1\模块1\src\cpp
项目1\模块2\src\java
项目1\模块2\src\python

我想这是个人品味的问题,但上面的结构相当普遍,我认为一旦你习惯了它就会很好地工作。

关于codebase - 混合两种或多种语言(如 Java 和 C++)时组织源代码库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/126898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com