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
核心成员 袁平
分享到:
相关推荐
《Ruby on Rails Enterprise Application Development》是一本专注于Ruby on Rails框架的书籍,主要讲述了如何利用Ruby on Rails开发企业级应用程序。本书作者是Elliot Smith和Rob Nichols,他们在IT行业有着丰富的...
- [Struts, an open-source MVC implementation](资源链接):了解另一种流行的Web应用框架。 - [Object-relational mapping without the container](资源链接):探讨不依赖容器的ORM技术。 通过以上内容,我们可以...
此外,`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-...
它的优点是可以直接与硬件交互,但缺点是不适用于大规模的企业级应用开发。 3. **C++**:C++是C语言的扩展,包含丰富的库,如MFC,可用于桌面应用和游戏开发。C++的学习难度较大,但精通后能成为强大的开发工具,...
在企业级应用中,Oracle数据库由于其稳定性和强大的功能,被广泛采用。 Ruby on Rails,另一方面,是一个基于Ruby编程语言的Web开发框架,强调生产力和乐趣。RoR遵循DRY(Don't Repeat Yourself)原则,使得代码...
Java类库丰富,适合开发大型企业级应用。其强类型、垃圾回收机制和面向对象特性,如类、接口、封装、多态性,使得Java在复杂项目中表现出色。 Python是另一种高级脚本语言,注重代码可读性和简洁性。Python的OOP...
Oracle数据库是企业级的关系型数据库管理系统,广泛应用于大型项目。然而,Rails在原生状态下并不直接支持Oracle作为其数据库后端,因为Rails的设计主要针对SQLite、MySQL和PostgreSQL等数据库。为了在Rails中使用...
它拥有简洁的语法,支持多线程,常用于企业级应用、安卓应用开发和大数据处理。 4. **PHP**:PHP是一种开源的脚本语言,特别适合于服务器端的Web开发,能够创建动态网页内容。它可以与多种数据库系统集成,如MySQL...
Spring的核心特性之一是依赖注入(DI)和面向切面编程(AOP),这些特性使得Spring成为构建复杂企业级应用的首选。 Java中还存在其他多种框架,如MyFaces、JQuery等,它们提供了各种独特的功能和模块来辅助开发。...
Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端...
Spring Framework是另一个非常流行的Java平台上的开源框架,用于构建企业级应用。2.5版本的Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,以及对Web应用的全面支持,包括MVC控制器、视图解析器等,...
这些语言各有特点,Java以其跨平台性、安全性被广泛应用在大型企业级应用中;Python以其易读性和简洁的语法著称,常用于数据处理和人工智能领域;Ruby则以其优雅的语法和快速开发特性而受到一些开发者的喜爱。 ...
Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端...
每种语言都有其优势和适用场景,例如Java以其稳定性和企业级特性受到青睐,而Node.js则因其非阻塞I/O模型在实时应用中表现出色。 框架的选择对于提升开发效率至关重要。例如,Spring Boot简化了Java应用程序的部署...
3. **java-export-handler**:Java版本的导出处理器,Java是一种跨平台的编程语言,适合大型企业级应用。此处理器可以与任何支持Java的Web服务器配合使用,如Tomcat、Jetty等,为Java应用程序提供离线导出功能。 4....
MyBatis-Plus是一种针对MyBatis框架的增强工具,它的出现是为了简化数据库操作的开发流程,提高开发效率。...无论是在大型企业级应用还是小型项目中,MyBatis-Plus都是一个值得推荐使用的数据库操作框架。
它们提供了一种结构化的方法,使得开发人员能够快速地构建出功能丰富的网站应用,同时简化了数据管理和交互的过程。"企业网站框架可以很方便的进入加数据"这一主题,强调了框架在处理数据输入和管理方面的便捷性。 ...
在IT行业中,语言迁移是一个常见的现象,特别是在软件开发领域,开发者可能会从一种编程语言迁移到另一种,例如从Java转向Ruby。然而,这种迁移过程往往伴随着风险。本文主要探讨了Java和Ruby这两种语言在迁移过程中...