`
j_butterfly
  • 浏览: 114073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails - 开发企业级应用另一种选择

阅读更多

Rails (Ruby on Rails - 基于Ruby语言的一个Web应用框架,类似Java里的Struts,Spring,Hibernate等框架)

 

目的

其实我写这篇文章的目的并不是想把Java程序员拉到Ruby阵营中来,只是想让Java程序员们知道在有些情况下,Rails可能是一个更好的选择,并且通过学习Ruby会加深对Java语言的理解,也希望通过这篇文章能让您知道敏捷开发的魅力。

 

刚开始接触Ruby很抵触

在刚进入Rails的世界的时候,对于有4年JAVA开发经验的我来说,对Rails的抵触心理还是挺强的,原因有两个:

1.想精通一门语言,不想分散精力,而且认为Java是很完美的

2.看了下Ruby的语法,感觉非常乱,不像Java那样规整,简单

我相信也有大部分Java程序员会和我有同样的感受。由于后面有一个项目由Rails实现是最佳选择。所以迫不得已开始学习Rails,看的书是《Agile Web Development with Rails 3rd_Edition》。

 

对Rails观点的转变

看了三章后,发现用Rails去实现一个Web应用是如此的简单,几十行代码就实现了Java几百行代码的功能。所以非常好奇的继续看下去,想知道为什么可以这么简单。通过学习慢慢发现了不少Rails的好处。

习惯约定优于配置

在Rails里没有很多的配置文件要去写,我想Java程序员最大的痛苦之一就是XML配置文件了,不小心写错了也不好调试,不知道问题出在哪里。之前Struts+Spring+Hibernate非常流行,要实现一个简单功能,你要配置几个XML文件?但在Rails里,使用约定就行了,当有特殊情况时,再去修改配置。

代码简洁

发现同样实现一个功能,代码量是Java的1/3左右,甚至还要少。

对Rails越来越有好感,并且喜欢上它了。

 

如何进行敏捷开发

敏捷开发   Agile development )是一种以人为核心、迭代、循序渐进的开发方法。

后来我们团队用Rails做了三个成功的项目,一个在线CRM应用,体会到了敏捷开发的好处。

结对编程

我们是两个人结对编程,做任何事情都是Pair的,包括分析、写测试、写实现代码或者重构。Pair做事有很多好处,两个人在一起探讨很容易产生思想的火花,也不容易走上偏路,还会及时发现一些小Bug。

重构

相信大家对它都很熟悉了,有很多很多的书用来介绍重构,最着名的是Martin的《重构》,Joshua的《从重构到模式》等。重构是在不改变系统外部行为下,对内部结构进行整理优化,使得代码尽量简单、优美、可扩展。我们经常会重构,好处就是项目代码一直是非常容易维护的。

小版本发布

在敏捷开发中,不会出现这种情况,拿到需求以后就闭门造车,直到最后才将产品交付给客户,而是尽量多的产品发布,一般以周、月为单位。这样,客户每隔一段时间就会拿到发布的产品进行试用,而我们可以从客户那得到更多的反馈来改进产品,不会发生客户说“这不是我想要的东西!" 的情况。

客户一起参与

客户是与开发团队一起工作的,团队到客户现场进行开发或者邀请客户到团队公司里来开发。如果开发过程中有什么问题或者产品经过一个迭代后,能够以最快速度得到客户的反馈。

敏捷开发过程与传统的开发过程有很大不同,在这过程中,团队是有激情有活力的,能够适应更大的变化,做出更高质量的软件。

 

性能

据robbin说:“JavaEye的PV到了140万,仍然是单台Web服务器,Rails处理动态请求超过340万,除了真实用户访问,还有API,RSS以及很多爬虫的请求。”

易趣,阿里巴巴刚开始也都用的PHP,国外的Twitter也用的是 Rails,我们在做了三个企业级项目和一个SaaS的CRM(WorkXP)之后,我们都没发现很多人所担心的性能问题,所以大家不用急着担心性能问题,如果真到了有性能问题的时候,说明你已经非常成功了,到那时再迁移到Java平台也来的及。

 

小团队的最佳选择

我非常同意JavaEye的robbin观点:“我认为目前小公司唯一的活路就是高效率的小规模团队,这样的团队才能充分发挥小公司灵活创新的特点,才有可能在某些方面战胜大公司,也才有可能在人才竞争方面胜出。”

WorkXP只有2个开发人员,用了3个月的时间就上线了!为什么可以这么快完成这么优秀的产品?这正是Rails敏捷开发带来的好处。如果用Java开发,我不知道半年是否可以上线? 所以如果你是小团队创业,可以考虑用Rails敏捷开发。

 

下一个项目,尝试用Rails吗?

现在我们再打算做一个项目或产品时,会多了一个选择,用J2EE还是Rails?这个要根据团队实际情况和项目需求来定,如果是小团队创业,试一下Rails的敏捷开发吧,一定会给您带来不少的惊喜!

 

WorkXP  核心成员 袁平

3
3
分享到:
评论
3 楼 j_butterfly 2011-07-12  
chenjianjx 写道
很不错的文章

谢谢支持:)
2 楼 chenjianjx 2011-07-12  
很不错的文章
1 楼 yzhw 2011-07-06  
引用
如果真到了有性能问题的时候,说明你已经非常成功了

相关推荐

    Ruby on Rails Enterprise Application Development.pdf

    《Ruby on Rails Enterprise Application Development》是一本专注于Ruby on Rails框架的书籍,主要讲述了如何利用Ruby on Rails开发企业级应用程序。本书作者是Elliot Smith和Rob Nichols,他们在IT行业有着丰富的...

    Ruby on Rails and J2EE

    - [Struts, an open-source MVC implementation](资源链接):了解另一种流行的Web应用框架。 - [Object-relational mapping without the container](资源链接):探讨不依赖容器的ORM技术。 通过以上内容,我们可以...

    ruby gems (rails ,padrino, cancan ,puppet)

    此外,`puppet-3.3.2.gem`是Puppet的版本,`chef-11.8.2-x86-mingw32.gem`则是另一个流行的配置管理工具Chef。`ffi-1.3.1-x86-mingw32.gem`是Foreign Function Interface,允许Ruby调用C库,而`tiny_tds`和`yajl-...

    javaCVCVB等软件开发工具的区别.docx

    它的优点是可以直接与硬件交互,但缺点是不适用于大规模的企业级应用开发。 3. **C++**:C++是C语言的扩展,包含丰富的库,如MFC,可用于桌面应用和游戏开发。C++的学习难度较大,但精通后能成为强大的开发工具,...

    结合使用 Oracle 和 Ruby on Rails 教程

    在企业级应用中,Oracle数据库由于其稳定性和强大的功能,被广泛采用。 Ruby on Rails,另一方面,是一个基于Ruby编程语言的Web开发框架,强调生产力和乐趣。RoR遵循DRY(Don't Repeat Yourself)原则,使得代码...

    matlab开发-cjavapythonrubyandmtlausingobjectorientedexample的比较.zip

    Java类库丰富,适合开发大型企业级应用。其强类型、垃圾回收机制和面向对象特性,如类、接口、封装、多态性,使得Java在复杂项目中表现出色。 Python是另一种高级脚本语言,注重代码可读性和简洁性。Python的OOP...

    RubyonRails之Oracle应用_简易教程.doc

    Oracle数据库是企业级的关系型数据库管理系统,广泛应用于大型项目。然而,Rails在原生状态下并不直接支持Oracle作为其数据库后端,因为Rails的设计主要针对SQLite、MySQL和PostgreSQL等数据库。为了在Rails中使用...

    IT公司中最流行的10种编程语言.pdf

    它拥有简洁的语法,支持多线程,常用于企业级应用、安卓应用开发和大数据处理。 4. **PHP**:PHP是一种开源的脚本语言,特别适合于服务器端的Web开发,能够创建动态网页内容。它可以与多种数据库系统集成,如MySQL...

    java开发所有框架简介

    Spring的核心特性之一是依赖注入(DI)和面向切面编程(AOP),这些特性使得Spring成为构建复杂企业级应用的首选。 Java中还存在其他多种框架,如MyFaces、JQuery等,它们提供了各种独特的功能和模块来辅助开发。...

    Jruby_windows_1_6_7_2.exe

    Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端...

    各种在线api

    Spring Framework是另一个非常流行的Java平台上的开源框架,用于构建企业级应用。2.5版本的Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对Web应用的全面支持,包括MVC控制器、视图解析器等,...

    后端开发简单介绍(见下)

    这些语言各有特点,Java以其跨平台性、安全性被广泛应用在大型企业级应用中;Python以其易读性和简洁的语法著称,常用于数据处理和人工智能领域;Ruby则以其优雅的语法和快速开发特性而受到一些开发者的喜爱。 ...

    jruby_windows1.7and bin1.7

    Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端...

    服务器开发技术—.zip

    每种语言都有其优势和适用场景,例如Java以其稳定性和企业级特性受到青睐,而Node.js则因其非阻塞I/O模型在实时应用中表现出色。 框架的选择对于提升开发效率至关重要。例如,Spring Boot简化了Java应用程序的部署...

    export-handlers(fusioncharts离线导出服务).rar

    3. **java-export-handler**:Java版本的导出处理器,Java是一种跨平台的编程语言,适合大型企业级应用。此处理器可以与任何支持Java的Web服务器配合使用,如Tomcat、Jetty等,为Java应用程序提供离线导出功能。 4....

    MyBatis-Plus入门.pdf

    MyBatis-Plus是一种针对MyBatis框架的增强工具,它的出现是为了简化数据库操作的开发流程,提高开发效率。...无论是在大型企业级应用还是小型项目中,MyBatis-Plus都是一个值得推荐使用的数据库操作框架。

    企业网站框架可以很方便的进入加数据

    它们提供了一种结构化的方法,使得开发人员能够快速地构建出功能丰富的网站应用,同时简化了数据管理和交互的过程。"企业网站框架可以很方便的进入加数据"这一主题,强调了框架在处理数据输入和管理方面的便捷性。 ...

    巧妙规避Java与Ruby语言迁移过程中的风险

    在IT行业中,语言迁移是一个常见的现象,特别是在软件开发领域,开发者可能会从一种编程语言迁移到另一种,例如从Java转向Ruby。然而,这种迁移过程往往伴随着风险。本文主要探讨了Java和Ruby这两种语言在迁移过程中...

Global site tag (gtag.js) - Google Analytics