你会使用数组或定制类来进行简单的数据操作吗? (红宝石)

时间:2010-01-17 10:52:59

标签: ruby arrays oop

我可以在ruby中编写一些代码。我只是触摸了物体,我不是那么有文化对象,我的意思是我不想在物体中:-)

我有定期从论坛中搜集的数据。我需要像

这样的字段
    在我看来,
  • 作者,发布日期,标题,类别,观看次数等等 = array

然后我希望能够在ruby中使用

  • 保存整批(快速解决方案是csv或xml - 后来可能是一些sql数据库)
  • 按字段排序
  • 加载/读取我的文件以更新字段并执行一些统计,提取一些数据
  • 添加新字段轻松以防我需要

编辑,修改我的“文件/数据库”外部红宝石

我相信我可以做所有操作,比如改变帖子的观看次数,更改帖子中最后一次回复的日期等,或者使用数组或对象。


所以我的问题是:你会使用

吗?

...................................... 自定义类/对象数组

你能说出原因吗?


3 个答案:

答案 0 :(得分:1)

对象封装具有行为的数据,即可以对数据执行的功能或操作。但是,array只是一个包含元素集合的数据结构。基本上,数据结构暴露数据并且没有有意义的功能。

由于您希望对收集的数据执行保存,排序,更新,统计等操作,因此有一个Post对象具有数据/属性(如作者,发布日期,标题,类别等)和您希望对数据执行的操作/方法。将对象的数据和行为抽象到类中将使您的代码易于维护和理解,您可以通过该类中定义的方法轻松地查看类的责任,以及这些方法如何通过操作来更改对象的状态对象属性/数据。

答案 1 :(得分:1)

您的意思是“您是否会使用数组或自定义类”来处理此数据。

我可能会做的是创建一个类,将内部存储的数据存储为数组或散列。然后,您可以调用该类的方法来执行您描述的任务。

答案 2 :(得分:1)

至少,对我来说,创建一个用于存储和处理您正在抓取的数据的对象似乎是合乎逻辑的。通常,您已经为您提到的每个字段(作者,标题,类别,视图,date_posted)提供了实例变量,并且可能还有一些方法可以从已删除的数据中填充它们以及读取/写入它们。

在存储这些对象的数据方面,使用ActiveRecordDataMapper之类的ORM非常容易。 ORM允许您将数据存储(例如MySQL)中的数据映射到相应的Ruby对象。它还将提供一系列方便的方法来保存,更新和查询这些对象。

但是,尝试编写自己的方法将数据映射到XML文件可能是一种很好的学习体验。