我发现有时很难清楚地表达我想要创建的特定模型 - 特别是随着项目变得越来越大,我必须围绕所有事物之间的关系展开思考。
您如何组织数据和用户模型?你会在纸上画出它们吗?也许网上有一个简洁的工具?
我发现有时很难清楚地表达我想要创建的特定模型 - 特别是随着项目变得越来越大,我必须围绕所有事物之间的关系展开思考。
您如何组织数据和用户模型?你会在纸上画出它们吗?也许网上有一个简洁的工具?
是的,我相信好的旧铅笔和纸是用于此目的的工具。请记住,最终您的模型将通过对象关系映射器访问数据库,您应该考虑关系。
大多数情况下,值得先考虑关系,然后为模型找出名称。考虑以下情况,您需要存储以下内容的内容:
现在,在您考虑如何命名它们之前,请先考虑它们之间的关系。我发现主要通过这样做,您将直观地选择正确的名称:
一个帖子属于一个用户,一个用户有很多帖子,一个评论属于一个帖子,一个帖子有很多评论,一个用户有很多评论,一个评论属于一个用户。
在最后一个相当直观的句子中,您拥有所需的一切:名称和关系。Rails 支持这种直觉,因为它非常地道。
就规划数据库和模型而言,如果您有一个现有的应用程序并且需要弄清楚模型的关系,我建议使用名为railroady的 UML(统一建模语言)gem ,它会自动创建一个漂亮的图形概览您的应用程序的数据。
我发现可视化对建立数据模型和处理数据流图等有很大帮助。铅笔和纸对我来说从来没有用过,因为我对整洁非常着迷,讨厌做出改变和重做事情,而且我也不想通过在屏幕上移动小盒子来分散注意力,让它们看起来不错,因为它打破了“创意流程”。
出于多种原因,我过去曾为此使用过 GraphViz http://www.graphviz.org/ 。
首先,我为很多公司工作过,这些公司的成本太低,无法在任何可能意外帮助软件开发的软件上花钱。
其次,文本输入不会让人分心——它可以让您专注于内容而不会分心。文本输入也可以由代码生成,因此它非常适合(半)自动代码和模式可视化。
第三,可以将输入文本添加到源代码存储库并进行注释和更改跟踪。
我最近发现了http://graphviz-dev.appspot.com/这使它变得更加容易——不要忘记点击它们的广告链接。