该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-23
最后修改:2009-06-23
pipilu 写道 另外,一个设计的很灵活的程序,它会比一个“写死”了的程序,代码量要多出好多,但改的时候,“写死”的那个程序,改起来可谓是伤筋动骨的。而设计灵活的程序,所做的可能仅仅是修改一个配置,或者加几个适配器。这也是代码少并不代表改的快的例子。 本来是横向比较,怎么跑题到纵向比较了。 老实说我觉得灵活的 Ruby 太难“写死”了,前面已经说过,和动态语言尤其是解释型的 Ruby 比灵活性和松耦合,就是自取其辱 …… 其实你隐含了一个前提,你觉得长的代码做了更多的事情 —— 但是如果长代码和短代码做了同样的事情,又有同样的门面呢? 代码冗长的很大一部分原因在于重复,无谓的大量重复。大量复制粘贴,或者 IDE 给你自动完成,变相复制粘贴。 |
|
返回顶楼 | |
发表时间:2009-06-23
night_stalker 写道 pipilu 写道 另外,一个设计的很灵活的程序,它会比一个“写死”了的程序,代码量要多出好多,但改的时候,“写死”的那个程序,改起来可谓是伤筋动骨的。而设计灵活的程序,所做的可能仅仅是修改一个配置,或者加几个适配器。这也是代码少并不代表改的快的例子。 本来是横向比较,怎么跑题到纵向比较了 …… 老实说我觉得灵活的 Ruby 太难"写死"了 …… 在一个团队中,是否有代码质量参差的机会更高? |
|
返回顶楼 | |
发表时间:2009-06-23
ray_linn 写道 在一个团队中,是否有代码质量参差的机会更高?
团队越大越参差 …… 所以,还能得出一个大部分情况都成立的规律: 代码越长越参差 …… |
|
返回顶楼 | |
发表时间:2009-06-23
最后修改:2009-06-23
我不明白hibernate和rails的active record有什么本质的区别.
一个是基于xml配置的,在xml中配置类与表,类属性与表列的关系,一个是直接基于一种约定,绑定死类与表,类属性与列. 除了这个还有什么? 这点区别很重要吗? |
|
返回顶楼 | |
发表时间:2009-06-23
ironsabre 写道 我不明白hibernate和rails的active record有什么本质的区别.
一个是基于xml配置的,在xml中配置类与表,类属性与表列的关系,一个是直接基于一种约定,绑定死类与表,类属性与列. 除了这个还有什么? 这点区别很重要吗? 问你个问题:h 可以轻松的做运行时绑定么? 譬如我想让一个类绑定到 A 表,然后在网页上点一个键,就让它绑定到 B 表。 ar 就很简单 …… |
|
返回顶楼 | |
发表时间:2009-06-23
最后修改:2009-06-23
每一门语言都有自己的特点,我们不能用java的思想去想ruby,反之也一样
写的代码是否好维护,在于你所写代码的质量,不于在语言本身 |
|
返回顶楼 | |
发表时间:2009-06-23
night_stalker 写道 ironsabre 写道 我不明白hibernate和rails的active record有什么本质的区别.
一个是基于xml配置的,在xml中配置类与表,类属性与表列的关系,一个是直接基于一种约定,绑定死类与表,类属性与列. 除了这个还有什么? 这点区别很重要吗? 问你个问题:h 可以轻松的做运行时绑定么? 譬如我想让一个类绑定到 A 表,然后在网页上点一个键,就让它绑定到 B 表。 ar 就很简单 …… 能了又如何? |
|
返回顶楼 | |
发表时间:2009-06-23
最后修改:2009-06-23
ironsabre 写道 能了又如何?
你不是比灵活么,这就是 ar 比 h 灵活的例子啊。 什么绑定死了,你不知道 ar 是可以改表改列的么 …… 区别在:配置是死的,ar 的对应关系只是类方法调用。 Coc 无非是设定良好的默认值,但是 Coc 不代表不能改。 |
|
返回顶楼 | |
发表时间:2009-06-23
最后修改:2009-06-23
ironsabre 写道 night_stalker 写道 ironsabre 写道 我不明白hibernate和rails的active record有什么本质的区别.
一个是基于xml配置的,在xml中配置类与表,类属性与表列的关系,一个是直接基于一种约定,绑定死类与表,类属性与列. 除了这个还有什么? 这点区别很重要吗? 问你个问题:h 可以轻松的做运行时绑定么? 譬如我想让一个类绑定到 A 表,然后在网页上点一个键,就让它绑定到 B 表。 ar 就很简单 …… 能了又如何? AR的扩展性可不是你所能想象的 引用 def self.included(base) # :nodoc: base.class_eval do alias_method :hello, :hello_with_world end end so what ? |
|
返回顶楼 | |
发表时间:2009-06-23
ray_linn 写道 night_stalker 写道 ray_linn 写道 我想现在即使再出现ruby orm框架,大家也会考虑尽量facade到AR里去,而不是象JDO与Hibernate那样差别巨大。 你这个需求比较奇怪,既要用新 ORM,又不能改代码 …… 正常来说没人会这么想的,大部分人一开始选好框架就不换了。想中途换 ORM 框架的,目的基本都是想要大量重构让代码变得 pp …… 我觉得新框架出现的原因是:这些人对 AR 的写法存在不满 …… 如果不是为了让代码写起来更 pp,我才不把 AR 换掉呢。 新近的ORM代表有啥。。。。俺一直想C# 4.0之后,很有可能为C#其写一个AR,而不需要nhibernate. 用LINQ |
|
返回顶楼 | |