管理软件中复杂性/可视化组件的最佳实践?

Kal*_*lid 7 complexity-theory

我们正在构建工具来从网络中挖掘信息.我们有几件,比如

  • 从网络抓取数据
  • 根据模板和业务规则提取信息
  • 将结果解析为数据库
  • 应用规范化和过滤规则
  • 等等

问题在于解决问题并对每个阶段发生的事情有一个很好的"高级图片".

哪些技术可以帮助您理解和管理复杂的流程?

  • 使用Windows Workflow Foundation等工作流程工具
  • 将单独的函数封装到命令行工具中,并使用脚本工具将它们链接在一起
  • 编写特定于域的语言(DSL)以指定在更高级别发生的事情.

只是好奇你如何处理具有许多交互组件的系统.我们希望记录/理解系统如何在比追踪源代码更高的层次上工作.

tom*_*mym 2

代码说明了每个阶段发生的情况。使用 DSL 会是一个好处,但如果它以编写自己的脚本语言和/或编译器为代价,则可能不是。

更高级别的文档不应包含每个步骤中发生的情况的详细信息;它应该概述步骤以及它们如何相互关联。

好提示:

  • 可视化您的数据库架构关系。
  • 使用 visio 或其他工具(如您提到的工具 - 尚未使用过)进行流程概述(恕我直言,它属于您项目的规范)。
  • 确保您的代码结构正确/划分/等正确。
  • 确保您有某种项目规范(或其他一些“通用”文档,可以在抽象级别上解释系统的功能)。

我不建议构建命令行工具,除非您确实需要使用它们。无需维护您不使用的工具。(这并不等于说它没有用;但是您所做的大部分事情听起来更像是属于一个库而不是执行外部进程)。