你会尝试用Rails在下一个项目吗?

开发 后端 前端
其实我写这篇文章的目的并不是想把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的敏捷开发吧,一定会给您带来不少的惊喜!

原文:http://www.cnblogs.com/yuanpingi/archive/2011/07/11/rails_alternative_j2ee.html

【编辑推荐】

  1. Rails 3:提高Ajax应用速度
  2. 程序员的另类境界:Rails创始人驾保时捷参加职业赛
  3. 在Nginx上运行Ruby on Rails
  4. DB2 数据库与 Ruby on Rails 入门
  5. 加速Ruby on Rails 消除N+1查询问题
责任编辑:陈贻新 来源: 袁平的博客
相关推荐

2013-08-28 14:32:19

移动电商

2009-03-28 09:22:12

MID移动OS

2022-02-13 15:49:15

WebAssemblKubernetes容器

2014-11-12 10:26:25

Bootstrap

2015-11-05 15:54:03

马化腾项目合作

2019-01-23 11:07:32

苹果诺基亚iPhone

2012-10-18 10:01:20

亚马逊

2018-05-13 09:45:53

共享经济

2015-10-29 09:35:12

BAT趋势数据

2020-11-15 23:23:21

JavaScriptAPI开发

2012-07-04 17:11:28

微软操作系统

2015-11-02 10:32:43

bat腾讯百度

2009-05-12 10:51:22

职场经济危机裁员

2016-01-04 15:09:14

VR智能电视

2017-12-18 08:55:03

2014-06-17 10:57:09

2019-03-19 19:19:19

Facebook微信转型

2015-08-19 13:50:31

容联云通讯

2019-01-15 10:02:06

Kubernetes开源工具微服务

2021-12-17 10:06:42

鸿蒙HarmonyOS应用
点赞
收藏

51CTO技术栈公众号