这是关于在 Linux 上工作的一般软件工程问题。假设我有源代码,主要是脚本。他们操作文本数据,将文本文件作为输入和输出。我正在考虑如何适当地分离 src 代码和数据,同时最大限度地减少工作期间的目录更改。我看到两种可能性:
将代码和数据混合在一起。通过这种方式,它最大限度地减少了目录转换并消除了在工作期间键入文件路径的需要。大多数时候我只是打电话:
script1 data-in data-out # call script vi data-out # view result
问题是随着代码和数据文件数量的增长,面对一长串代码和数据文件看起来很混乱。
将代码和数据分别放在两个文件夹中,比如“src”和“data”。当我在“src”文件夹中时,执行上述操作需要:
script1 ../data/data-in ../data/data-out # call script vi ../data/data-out or cd data; vi data-out # view result
父目录“../data”的额外输入会造成麻烦,尤其是在对脚本进行大量快速测试时。
您可能会建议我在数据文件夹中以相反的方式执行此操作。但是同样我需要调用../src/script1,再次输入前缀“../src”的麻烦。是的,我们可以将“src”添加到 PATH。但是,如果跨父子目录的脚本之间存在依赖关系怎么办?例如,假设“src”下有“subsrc/script2”,而在script1中,它调用“./subsrc/script2 ...”?然后在“data”文件夹中调用script1会抛出错误,因为“data”文件夹下没有“subsrc”文件夹。
代码和数据的良好分离以及最小化目录更改似乎是相互矛盾的要求。你有什么建议吗?谢谢。