首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用体系结构

应用体系结构
EN

Software Engineering用户
提问于 2013-03-31 11:22:04
回答 1查看 320关注 0票数 2

首先,我是新来的,我希望这是适合我提问的地方。关于推荐的项目架构,我有一个问题。

想法:自动化一些有关空气动力学的计算。我有一些输入数据,我需要在几个子计算中处理这些数据。你可以在某种程度上看到这样的计算就像一个黑匣子:

输入=>计算=>结果

这些计算中有一些已经可以作为开源程序使用,还有一些是我需要自己编写的。这不应该是个问题。但我想用一种灵活的方式把这些计算联系起来。例如:

输入=>计算1 =>计算2 =>计算3 =>结果

计算的次数和顺序应该是可变的。我是否应该将每个计算看作是独立的程序,并将它们连接到一种框架中,以便指定程序调用的顺序和参数?或者还有其他技术来解决这样的问题呢?

非常感谢你的每一个建议和建议。

塞巴斯蒂安

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-03-31 16:54:35

您正在考虑的是Unix哲学的原则之一:您构建了许多小型工具,并将它们连接到输油管道中以生成更大的工具。

与您的问题类似的一个现实世界的例子是一组名为NetPBM的程序。NetPBM由200多个过滤器组成,这些过滤器可以流水线方式读取图像的任何一长串格式,操纵图像--通常不止一次--并以任何受支持的格式写入结果。使这些工具工作的关键是对数据使用一组固定的标准格式,每个筛选器都可以读取和/或写入数据,或者使用转换筛选器导出数据。

在您的情况下,只要任何计算的输出格式可以被任何其他人读取,您就可以按您喜欢的任何顺序混合和匹配它们。例如,如果所有东西都是10x10矩阵,那么以下任何一个矩阵都可以正常工作(“AC.26”符号的意思是“管道”,或者“将程序左侧的输出指向右侧的程序输入”):

代码语言:javascript
复制
Get Input | Calculation 1 | Calculation 2 | Calculation 3 | Write Output
Get Input | Calculation 3 | Calculation 2 | Calculation 1 | Write Output
Get Input | Calculation 1 | Write Output
Get Input | Calculation 1 | Calculation 3 | Write Output

正如您在注释中提到的,您可能需要编写过滤器才能进行转换,这很好,因为它们符合这样的想法,即拥有一个充满小型、有用工具的工具箱:

代码语言:javascript
复制
Get Input | Calculation 1 | Convert 1 out to 2 in | Calculation 2 | Write Output

尽管如此,我还是建议您探索一个像MATLAB八度这样的数值分析工具。两者都是专门为这类事情而设计的。一旦你超越了学习曲线,你就会花更多的时间做数学,少花很多时间编程。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/193469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档