`
lgx522
  • 浏览: 125842 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

RoR企业应用实践之一:移植物资管理系统

    博客分类:
  • Ruby
阅读更多

前些日就打算开展RoR的实践活动了,见前文“在rails中,多个字段关联同一张表如何做? ”。在此感谢众热心道友的支持,尤其是sun201200204 的代码圆满地解决了问题。

近两月忙于家事和单位上的诸多琐事,一直未得空闲。近日工作生活终于有点闲暇,才得以静下心来付诸实施。经过近两周的工作,终于大体上完成,算是笔者在RoR上第一次重要的实践,就谈几点体会吧:

1、RoR开发这种中小系统,对于熟悉了Spring+Hibernate+XXX的程序员来说,的确效率惊人。笔者基本上是单干,当初用Spring+Hibernate+JSF作开发的时候,耗掉了两个月左右。除去建模、业务逻辑所耗去的近三周时间外,RoR仍有将近3倍的开发效率(考虑到笔者对RoR的熟悉程度有限)。细下想来,以前用Java开发多浪费的时间依次为:1、配置及布署;2、错误查找;3、多写的代码。其实RoR的ORM、MVC思想与Java是一致的,差别就在于动态语言的优势。所以Ruby可以说是“动”起来的Java。

2、个人感觉RoR的Model这一层比Java中的ORM更上一层楼。简单、直接、清晰,更加适合快速建模与业务逻辑的调整、修改。从这个角度来说,RoR其实是应当在企业实用中发扬光大的。企业应用中,业务逻辑的复杂与混乱历来是个大问题,用RoR的Model来进行建构与变更是相当高效的。

3、企业应用中,很多是联机事务应用,需要快速的界面响应性,这类应用需要用Ajax甚至Flex作表示层来解决。笔者对JS和Flex基本上是生手水平,今后将通过自修及培养其它同事来解决View这层的问题。

经过慎重的实践,笔者现认为RoR是有足够的实力在中等规模的企业应用中获得成功,今后将继续努力的脚步。在此与诸位共勉。

 

分享到:
评论
11 楼 9esuLuciano 2007-12-03  
刑天战士 写道
每个业务流程都应该是一个service的方法,而这些方法并不单单属于某一个model,所以他应该是另外一个service层  BTW:为什么我再一个controller的方法里面再render :action,那个方法的所有instance variable不起作用?
<br/>
render :action只在当前action里渲染另外一个view模板而已,指定的action本身是不被执行的
10 楼 花花公子 2007-11-29  
刑天战士 写道
每个业务流程都应该是一个service的方法,而这些方法并不单单属于某一个model,所以他应该是另外一个service层

BTW:为什么我再一个controller的方法里面再render :action,那个方法的所有instance variable不起作用?
难道rails对于REST的支持不能解决你的问题吗?
render :action 只起render作用吧,和render :template应该是差不多的效果。
9 楼 刑天战士 2007-11-29  
每个业务流程都应该是一个service的方法,而这些方法并不单单属于某一个model,所以他应该是另外一个service层

BTW:为什么我再一个controller的方法里面再render :action,那个方法的所有instance variable不起作用?
8 楼 gigix 2007-11-29  
刑天战士 写道
谁告诉你RoR本身的分层好了?连个service层都没有……别告诉我你不需要!你要是不需要,说明你那点东西根本不需要那么复杂的框架……

……
愤青了?
你要一个所谓的“service层”来干嘛?
7 楼 刑天战士 2007-11-29  
谁告诉你RoR本身的分层好了?连个service层都没有……别告诉我你不需要!你要是不需要,说明你那点东西根本不需要那么复杂的框架……
6 楼 lgx522 2007-11-29  
1、配置问题是很大程度上是由Java的自由所带来的,把各种框架和表示层技术配在一起,再配置应用服务器,加上配置IDE,相当地耗时并且容易出错。
还有动态语言即时更改即时生效的特点,不是静态编译语言能够比拟的,即使是热布署也不容易完全达到。

2、个人感觉RoR报错的信息比JSP明确得多,大多数情况下能够根据提示的代码文件、出错的行数和出错的提示信息找到问题所在,查错要快得多。

3、RoR的分层和架构代表了当前B/S系统的最佳实践,加上REST后更是如虎添翼,异构集成与多种客户端兼容逐渐不成问题,可以放心使用了。如果能严格遵循TDD,代码的质量和维护也有保证。这样下来省去近一半的代码量就相当可观了。

唯一不爽的是rails的Document写得太简略,不便初学者使用,如果能像programing ruby一样带上示例代码就好了。
5 楼 daquan198163 2007-11-29  
“以前用Java开发多浪费的时间依次为:1、配置及布署;2、错误查找;3、多写的代码”
不是太明白:
1、配置及布署:用java的话(其实用任何技术),这个步骤不会占用多少时间吧;
2、错误查找:你现在用ror可以省去了?
3、多写的代码:比较代码绝对数量没有意义,分层和架构的好坏对开发和维护影响更大,毕竟敲字符所用的时间只占整个开发周期的很小部分
4 楼 gigix 2007-11-29  
mcpssx 写道
不是ror快,

而是很多java项目根本就不需要这一大堆框架

那显然不是这样。实现同样的功能,用Java需要写的代码量就是会有Ruby的三到五倍以上。代码越少越好,这个道理是永远不变的。
3 楼 lgx522 2007-11-29  
比较复杂烦琐的业务逻辑,个人感觉还是SQL来得快(虽然不够OO),项目中使用find_by_sql很爽,提出来的字段可以直接作属性访问,非常舒服。
RoR是相当实用主义的,以实用至上的观点加以应用还是很好的。以本人现在的RoR水平,暂且定位在中小系统吧。

至于功能,必须要用到Hibernate甚至EJB的时候再用吧。
2 楼 JavaInActoin 2007-11-28  
楼主遇到的需求比较简单吧,物资管理系统很烦琐。
1 楼 gigix 2007-11-28  
RoR的Model只是用起来便利而已。它用的ActiveRecord不能算是一个真正的ORM,功能比Hibernate差了很多。而在企业应用中很可能会需要一个真正的ORM,那时候RoR会觉得比较累。你的项目不需要它,很幸运。

相关推荐

    机遇ROR 的图书管理系统

    通过学习和实践《机遇ROR的图书管理系统》,你不仅能掌握Ruby on Rails的核心技能,还能提升对Web开发整体流程的理解,为未来开发更复杂的Web应用打下坚实基础。而提供的"EasyKey1.1.exe"可能是用于辅助学习的工具,...

    ruby_full:RoR_Full_29 :: Ruby_reports

    在这个资源包中,我们可以推测主要探讨的是如何在Ruby on Rails应用中创建和管理各种报告。报告生成是任何业务系统的关键部分,它涉及到数据收集、处理和可视化,以便为决策者提供有价值的信息。 首先,我们要理解...

    ASP.NET项目移植ROR实践----DB转移(已完成)

    ASP.NET项目移植到Ruby on Rails (ROR)的实践中,DB转移是一个关键步骤。这个过程涉及到将现有的ASP.NET应用程序的数据模型、数据库结构以及业务逻辑迁移到ROR框架中。在这个过程中,我们需要理解两个不同框架之间的...

    RoR性能优化经验谈

    RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为...通过学习和实践这些经验,开发者可以更好地应对RoR性能挑战,创建出更健壮、高效的Web应用。

    RoRBlog 基于RoR的博客系统

    基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。

    初探ROR

    Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat Yourself”(DRY,...

    ror中文资料

    6. **Gem生态系统**:Ruby有一个庞大的Gem包管理系统,允许开发者轻松安装和使用第三方库,如Devise(身份验证),Paperclip(文件上传)等。 7. **测试驱动开发(TDD)**:RoR鼓励TDD,提供了Rspec、Cucumber等测试...

    ror实例

    "ror实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...

    用于ROR应用的lighttpd配置模板

    "用于ROR应用的lighttpd配置模板"提供了一个预设的配置,帮助开发者快速配置lighttpd以支持Rails环境。 Lighttpd以其低内存占用和高并发能力而受到欢迎,它支持FastCGI,这是与Rails应用进行通信的常见接口。...

    RoR选题方向—源代码

    Ruby on Rails(RoR)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程。在这个选题方向中,我们主要探讨的是与RoR相关的源代码分析和学习。源代码是...

    使用ROR编写ORACLE WEB应用

    标题“使用ROR编写ORACLE WEB应用”表明我们要探讨的是如何使用Ruby on Rails(简称ROR)框架来构建与Oracle数据库交互的Web应用程序。Ruby on Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-...

    ROR绿色最新环境(2013/3/10)

    ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...

    RoR 培训课程PPT

    - **书籍推荐**:《Agile Web Development with Rails》是一本经典的RoR教程,适合进一步深入了解RoR的开发实践。 - **在线社区**:参与Ruby on Rails官方论坛或Stack Overflow等社区,获取最新的技术资讯和解答开发...

    ROR 文件的上传与下载

    ### ROR 文件的上传与下载:深入解析与实践 在Ruby on Rails(简称ROR)框架下,处理文件的上传与下载是一项常见的需求,尤其是在构建包含媒体内容的应用程序时。本文将基于给定的文件信息,详细阐述如何在Rails...

    ror

    NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696

    freemis 基于ror框架的mis

    **FreeMIS:基于Ruby on Rails框架的企业管理系统** FreeMIS是一个基于Ruby on Rails(RoR)框架构建的管理信息系统(MIS)。RoR是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它遵循“Don't Repeat...

    intimate_web:一个 ROR 应用程序

    "intimate_web" 是一个基于 Ruby on Rails (ROR) 框架开发的应用程序。Ruby on Rails 是一种流行的开源 Web 开发框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建数据库驱动的 web 应用程序。这个应用...

    ror留言板程序

    "ror留言板程序"是一个基于Ruby on Rails框架开发的简单应用,它主要用于实现用户在网站上留言和查看他人留言的功能。Ruby on Rails(简称RoR)是用Ruby语言编写的开源Web应用程序框架,遵循MVC(Model-View-...

    ROR安装必备所有架包

    首先,`actionpack`是Rails的核心组件之一,它提供了控制器、路由和视图等功能。`actionpack-1.13.5.gem`是ActionPack的一个特定版本,包含了处理HTTP请求、执行控制器动作以及渲染视图所需的所有类和模块。它还负责...

Global site tag (gtag.js) - Google Analytics