论坛首页 编程语言技术论坛

我怎么就觉得rails适合做大型应用

浏览 104764 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-08-26  
ltian 写道
gigix 写道
ltian 写道
您能说明用rails 开发的系统用10万行,而别的语言,比如java就要用100万行吗?大型系统靠的是通用框架和组件来缩短代码行数,提高系统的稳定性和易维护性,而不是靠语言本身吧?

不信就算了。我没啥必要非说服你不可。

咱们讨论道理,不是谁要说说服谁的问题。我的观点是,大型系统开发方面,通用框架和平台的作用远远超出语言本身的作用。比如没用工作流系统、没有图形开发库、没有应用建模框架、没有企业建模框架、没有权限资源管理框架,没有应用建模框架、没有消息框架那么开发大型企业应用是很困难的。大型企业应用可不单单是人机界面多的问题。用rail开发人机界面可能比JSF或者其他JAVA的表现层技术要快捷些。但是这不能说明开发大型企业应用就占优势。当然我也不反对rails能开发大型应用,关键是你的团队有没有很多成熟的框架,如果仅仅是依靠语言本身,我觉得远远不够。


工作流方面ruby是有的,但是目前比较简单,可能没有达到jBPM的完善程度;
图形开发库方面ruby的RMagic并不比Java2D,3D差呀,甚至性能更好;
应用建模框架是什么概念?你举个Java的开源例子给我听听看?
企业建模也不明白,麻烦你也举个开源的Java例子?
权限资源管理框架麻烦去看看看ruby版好吗?孤陋寡闻本不是错;
消息框架也麻烦你去看看ruby版,ruby的消息框架现在实在太多了;




0 请登录后投票
   发表时间:2008-08-26  
愿意实践的就去实践(比如说我)
不愿意实践的看看热闹就行了,看完了各回各家吧

实践是检验真理的唯一标准,产品决定命运嘛。

BTW:因为业余时间多人开发,俺这里大家时间不统一,所以最近尝试把一个WEB站点的功能模块拆分成很多个Rails工程,使用单点登录进行用户认证,依靠REST资源访问架构实现数据访问,依靠Thrift实现方法调用。正在进行共用memcache资源的实践。

弄了个不成熟的雏形出来,还在完善。
0 请登录后投票
   发表时间:2008-08-26  
mycybyb 写道
Rails在web表现层有什么好的解决方案吗?


rails的表现层好的解决方案有一点体现在从.rhtml=>.html.erb这个转变上,除了解析引擎的进步之外,里边将不同的文档模板加以区分这种思想也是非常之善的,比如还可以有.xml.erb,.pdf.erb,呵呵。

rails的表现层有partial,有<%=yieldx%>,足以应付web2.0时代的灵活多边需求

rails的helper对于表现层是一个很好的辅助,尽管也有很多人诟病helper泛滥,但在java中要写相关的Util类也是很烦的事情,不如rails框架给你自动织入helper方法方便,而且页面的调用都是面向方法,而不是对象!

rails的表现层优势点还在于ruby语言和类库本身,对集合的便利操作令人击节叫好,如collect,each_with_index等,java虽然有jstl或者el,但是相比起来太笨拙了。

rails的扩展也是对web表现层的一种支持,比如对时间,数据的格式化

rails的action view写得也很不错,如表单元素生成的helper,跟页面服务脚本一样,同样是面向方法,这跟struts、jsf这些jee展示技术的标签技术<f:xx/>也简化了好多,写页面时的一致性和简洁性非常高。

rails的plugin机制让你很方便的创建可重用组件,当然plugin不仅仅可以做展示层的插件了,比jee的taglib方案要好



7 请登录后投票
   发表时间:2008-08-26  
ltian 写道
gigix 写道
引用
用Ruby能比用Java减少30%代码量这样结果不知道谁统计的?同样的功能?指哪些方面的功能呢?不要专门指Ruby擅长的或者Ruby自身封装的 API库里那部分功能?不知道Ruby做一个组态图形库的代码量如何?用Ruby写数学算法的代码会比java减少出30%吗? 谢谢。

sigh
其实这个事情我都说过好多遍,说得都疲了…好吧再说一遍
companies.collect(&:departments).flatten.select{|dep|dep.location=="Shanghai"}.collect(&:employees).flatten.uniq.size

拿Java写一个来看看?
有些东西啊,既然别人这么言之凿凿的说,那肯定是有一定道理的,别人肯定是想过的
您这上来就“我们如何如何”,行,您什么都知道了,我也没啥必要非得说服谁不可,我又不损失什么


这样的代码我是反对的。级联太多,调试不好调。通过这样的代码来减少代码行,却牺牲了程序的可读性,我认为不可取。你的心情我能理解,但是这一行代码说不明不了问题。



有点搞笑呀,这行ruby代码的可读性是非常好的,不需要你懂ruby的API,只要你对这几个英文单词的意思比较熟悉,而且对回调有那么点概念,你不觉得这行代码就像读英文句子那么通顺吗?

这行代码就是说: 把一堆公司的部门统统展开,选择那些位于“上海”的部门,然后把这些部门的员工放在一起,去掉重复人员,统计这些员工总共有多少个人。

不要告诉我连这个意思你都看不懂。
0 请登录后投票
   发表时间:2008-08-26  
无知产生恐惧,人天生会对陌生的事物排斥,在未了解之前就否定掉了
当然也不排除人不拥有认知事物所要具备的技能
22 请登录后投票
   发表时间:2008-08-26  
gigix 写道
ltian 写道
这里面的功能都以数据库记录增删该为主,简单界面工作量相对大,做简单WEB界面是Railde强项。
如果我让你做企业应用界面恐怕你就累死了,再让你用Rail实现电力、通信、银行的业务逻辑,恐怕也没那么容易了。
这个系统无法代表大型企业应用,只能代表论坛类网站的开发。

瞧瞧,又是这种调调
“我们的东西很牛x的,你这些小花招在我们这里根本行不通”
“我们情况最特殊了,你们那些东西太理想化,不适合我们的情况”
听得我都烦
告诉你两个事实,第一JavaEye的功能显然不是数据库记录增删改为主,第二企业应用我们用Rails做了好多了
信不信随便啦


你们用Rails做企业应用,部署的时候用的是JRuby,还是RubyWorks那个套件?用RubyWorks的时候,monit配置不配置?
0 请登录后投票
   发表时间:2008-08-26  
neodoxy 写道
说说ROR开发的弱点:
Ruby目前漏洞太多,还未成熟
滥用plugins,gems造成的安全性问题
应用服务器的稳定性问题

其他都可以归结为 设计问题,能力问题,信仰问题


Ruby目前漏洞太多,还未成熟?? for example?
滥用plugins,gems造成的安全性问题?? 这是应用的问题,看你会不会用了。别忘了说gem的功劳,现在java的库管理那一个差阿,所以出了个maven,但是maven很可惜也比较复杂,在我看来
应用服务器的稳定性问题??javaeye目前看来还比较稳定,否则可能就看不到你这个贴或者我这个回帖了,开个玩笑
其他都可以归结为 设计问题,能力问题,信仰问题??这些最好不讨论了,因为很虚,不如用事实和代码说话
0 请登录后投票
   发表时间:2008-08-26  
robbin 写道
你们用Rails做企业应用,部署的时候用的是JRuby,还是RubyWorks那个套件?用RubyWorks的时候,monit配置不配置?

RubyWorks,用Monit的
我们最近的一个项目用Rackspace的虚拟主机,环境都配好的
0 请登录后投票
   发表时间:2008-08-26  
gigix 写道
robbin 写道
你们用Rails做企业应用,部署的时候用的是JRuby,还是RubyWorks那个套件?用RubyWorks的时候,monit配置不配置?

RubyWorks,用Monit的
我们最近的一个项目用Rackspace的虚拟主机,环境都配好的


通过我长期的运营经验来看,目前Ruby VM的堆内存管理其烂无比。简单的来说,就是GC之后,尽管对象已经完全回收,但是物理内存释放不够充分,有泄漏的现象。我通过pmap来dump ruby进程物理内存地址映射表以后,经过分析,基本上可以确定是ruby的内存堆总是在不停的扩张,GC之后回收不干净。而我对比观察Java VM,其Full GC之后,物理内存释放的非常干净。所以用Ruby做服务器长期的跑,就会发现Ruby进程总是在没有理由的缓慢泄漏内存,内存堆缓慢增长,貌似没有上限。

总之和JavaVM的分代GC算法,以及对堆的有效管理对比来看,Ruby VM的堆内存管理实在是原始的不能再原始了。这是我现在对Ruby最大的抱怨,而且看起来在未来的一段时间之内不会有特别好的改善。

我看现在很多流行的Rails网站都是用monit去监控mongrel实例,一旦发现内存使用超过限额就杀掉重起,确实是有点简单粗暴了,但似乎无法杜绝这个问题。我现在没有用monit,而是自己写shell脚本来监控,每天大概能出现两三次这种需要杀掉重起的情况,对比每天要处理将近100万动态请求来说,可靠性还是达到了99.999%,五个9的水平了,很满意了。

另外除了ruby VM的问题,Rails的事务处理模式过于简单,也是一个我存疑的地方,不知道用Rails做在线电子支付会不会有问题。
3 请登录后投票
   发表时间:2008-08-26  
mycybyb 写道
gigix 写道
引用
用Ruby能比用Java减少30%代码量这样结果不知道谁统计的?同样的功能?指哪些方面的功能呢?不要专门指Ruby擅长的或者Ruby自身封装的 API库里那部分功能?不知道Ruby做一个组态图形库的代码量如何?用Ruby写数学算法的代码会比java减少出30%吗? 谢谢。

sigh
其实这个事情我都说过好多遍,说得都疲了…好吧再说一遍
companies.collect(&:departments).flatten.select{|dep|dep.location=="Shanghai"}.collect(&:employees).flatten.uniq.size

拿Java写一个来看看?
有些东西啊,既然别人这么言之凿凿的说,那肯定是有一定道理的,别人肯定是想过的
您这上来就“我们如何如何”,行,您什么都知道了,我也没啥必要非得说服谁不可,我又不损失什么


用java把那几个函数封装一下就可以了。
rails不就是把这些功能内置了吗。
还是那句话,java是语言,rails是框架,不具有可比性。用java也可以做个rails出来。


怎么总有人以为JAVA这种OO得不彻底的静态语言通过“封装”就能实现Ruby的特性?- -

java里面数组和int都不是OO的东西

而ruby里面是

怎么封装也不可能封装出
1.times
2.odd?
这种东西好不好。。

发现根本就没理解代码、语言、框架关系的人浩如烟海。。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics