没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Rail 快速上手中文教材
Java 框架到底怎么了?
如果你作为一个Java 程序员从事j2ee开发的话,你一定会使用到众多应用程序框
架。没有任何一个语言会象java 语言社区那样活跃,任何一种新的程序理念都
会很快在网上出现相应的开源实现。对应最常用的网站开发模式MVC,每一层
都会有很多框架,Struts, Tapestry 属于控制器层(C), Velocity 框架属于视图
层(V), 你使用的数据持久层可能是 Hibernate, iBatis, OJB, 或者是 JDO 的众多
开源实现中的任何一个,比如 JPOX 。 但是你的选择太多,未必是件好事,并
不是任何人都能采用正确的框架来做正确的事情。如果你的开发平台是 .net,那
么你也许会避免这种情况,通常你只要安装一个 Visual Studio .net 作为开发工
具,然后安装一个 MSDN 来查找资料就可以了。对于程序开发人员来说,这是
非常两难的事情。我本人很喜欢 Java ,无论是学习还是实践,它的确给我们提
供了很多。但是为什么我觉得 .net 那样“一站式”解决方案在很多时候是正确的
呢?
作为一个Java 程序员,我觉得Java一些比较明显的问题,首先是Java 太复杂,
其次Java 太面向程序员了,而不是面向用户。相对 C++ 来说, Java 已经很
简单了。现在Java 程序员数量如此多就说明了这点。但是正如有人曾经说过的
那样,“在linux 上,你很容易区分出谁是高手”,在 Java 领域中就不那么容易
了。我就经常发现身边的同事还在犯很低级的概念性错误,他们甚至在无法准确
地区分什么是接口,抽象类和 Servlet的情况下仍然可以从事多年的j2ee 开发。
但为什么又说 Java 复杂呢,因为它完成一件事情,需要太多不同的技术来实现
了。这样对于那些概念不很清楚的程序员来说,你如何能保证他们作出正确的选
择呢?而众多框架中有没有多少提供“一站式”服务的。最近冒头的 Spring 框架
提供的服务在众多的框架中算是最多的了,但是它又有个新问题,就是它还是太
面向程序员了,而不是用户。为什么这么说呢?框架本来就是面向程序员的,这
难道不对吗?Spring 虽然提供了众多选择(但是还是不够多,它本身没有ORM ),
但它没有提供简单的使用方式,所以我们只能说它是面向程序员的。绝大多数
java框架都存在这个问题,就是学习曲线比较高。我觉得学习曲线的高低是区分
一个框架是否是面向程序员还是用户的关键,我想这主要表现在框架的易用性
上。其实框架最终的用户还是程序员,之所以用“用户”和“程序员”来区分,是因
为一些面向“程序员”的框架比较难以使用,虽然提供了大量的基础设施和零件,
但是还是要求程序员自己来组装。而面向“用户”的框架就简单一些,用户只要按
照说明书来使用就可以了。为什么 Ruby on rails 会在 Java 社区引发轰动,我
想原因就在于此,它提供了一个“一站式”面向用户的简单易用的框架,这是 java
框架所缺乏的。为什么 Ruby on rails 能做到这点,难道 java 本身做不到吗? 事
实是众多 Java 框架的设计者不这么做,可能是他们的思维已经限制在如何用模
式设计一个好的框架上了,而没有在框架的易用性上做更多文章。使用过 Spring
的人就知道它的 xml 配置文件会渐渐的膨胀,虽然我们很容易将其分解为更多
的小配置文件来解决这个问题。 但是在使用 xml 配置文件上,它沿袭了 Java
编程的习惯性概念:“Java 是最好的编程语言,XML 是最好的描述数据的语言,
两者的结合是最完美的。如果一个应用不使用 xml 来描述,那么它就不是好的
java 应用。
但是 ruby on raiils 就是在这点上和众多 java 框架区别开来,才达到了框架易用
性上的一次突破。这个思想贯穿了 Rails 设计的始终:习惯约定优于配置。 举
个例子,通常我们写java web 应用程序,都会按照 MVC 来给对应类做区分,
我个人喜欢将 Controller 类放在 web 目录中,将 View 类放在 view 目录中,
将 model 类放在 domain 目录中。但是不同的人有不同的设置,不同的命名,
如何让框架知道这些不同的目录呢, java 框架的解决之道,只能是通过 xml 配
置文件让它了解这些信息。而 rails 的解决方式就是: 目录结构我来定义,你
只要在我定义好的目录中放东西就可以了。 这也就是为什么 rails 中很少有配
置文件(但不是没有)的一个重要原因。虽然思想很简单,但是它带来的好处就
是,Rails 的开发效率是 java 开发的 10 倍(这是 rails 的 fans 宣称的,不过我
相信这点,相信看完这篇文章你也一定会的)。那么光这点就能让 rails 开发比采
用 java 更快了吗?不完全是这样,因为这还得益于 rails 的另外一个设计理念:
更少的代码。 并不是任何语言都能那么宣称的,rails 实现这点完全得益于它的
设计语言 Ruby 。使用 Ruby 你的确能用很少的语言写很多的功能,这是其他
语言所无法实现的。 想要掌握Rails,你一定要了解 Ruby。 曾经有人说:Zope
(著名的 python web 框架)是 python 的 killer 级应用,python 是 zope 的秘密
武器。 我想这句话用在描述 rails 和 ruby 的关系再合适不过了。那么我们还是
来先了解一下 ruby 的一些基本概念吧但是 ruby on raiils 就是在这点上和众多
java 框架区别开来,才达到了框架易用性上的一次突破。这个思想贯穿了 Rails
设计的始终:习惯约定优于配置。 举个例子,通常我们写java web 应用程序,
都会按照 MVC 来给对应类做区分,我个人喜欢将 Controller 类放在 web 目录
中,将 View 类放在 view 目录中,将 model 类放在 domain 目录中。但是不
同的人有不同的设置,不同的命名,如何让框架知道这些不同的目录呢, java 框
架的解决之道,只能是通过 xml 配置文件让它了解这些信息。而 rails 的解决
方式就是:目录结构我来定义,你只要在我定义好的目录中放东西就可以了。这
也就是为什么 rails 中很少有配置文件(但不是没有)的一个重要原因。虽然思
想很简单,但是它带来的好处就是,Rails 的开发效率是 java 开发的 10 倍(这
是 rails 的 fans 宣称的,不过我相信这点,相信看完这篇文章你也一定会的)。
那么光这点就能让 rails 开发比采用 java 更快了吗?不完全是这样,因为这还
得益于 rails 的另外一个设计理念:更少的代码。 并不是任何语言都能那么宣
称的,rails 实现这点完全得益于它的设计语言 Ruby 。使用 Ruby 你的确能用
很少的语言写很多的功能,这是其他语言所无法实现的。 想要掌握Rails,你一
定要了解 Ruby。 曾经有人说:Zope (著名的 python web 框架)是 python 的
killer 级应用,python 是 zope 的秘密武器。 我想这句话用在描述 rails 和 ruby
的关系再合适不过了。本书不是介绍ruby的书,关于ruby的知识这里不做介绍。
序
Ruby 的中文教材较少,中文的多数都是以帖子的形式出现的,比较零散,于是,
我就搜集下一些帖子合成了此书。我们应该感谢那些有实力无时间的人,是他们
让我这个无实力有时间的人捡了个便宜,完成了此书。本书是整理别人的作品,
目的是方便大家学习,如果本书对你有用的话,请感谢原作者。
整理者 :ror_python
大连海事大学计算机科学与技术 ohmynews@163.com QQ:342438276
第一章 初探 Rails
Rails 是基于 Ruby 的框架,因此 Rails 也是可以跨平台的,关于 Rails 的安装,
本 blog 里面已经有了阐述,这里就不多说,注意我们 安装的时候使用到了 gem
这个命令,其实这个是一个著名的包管理工具,rubygems。在这里,我是用的是
mysql 数据库,来给大家做一个演示,本文 大部分资料参考《ruby on rails
实践》而写的。
rails 简单,最简单的一个 blog 应用,只要 1 行代码,对了,只要 1 行代码,
你就可以完成一个 blog
1.建立我们的 blog app
D:\>rails blog
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
...
rails 命令建立 web app,格式:rails appname,它就会在当前目录下面身成一
个文件夹保存此 web app
2.rails 不单是一个 framework,还包括 script,我们从上面的文件夹就可以看
到,里面包含了服务器程序 server.rb,启动服务器:
D:\blog>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2006-07-10 21:45:38] INFO WEBrick 1.3.1
[2006-07-10 21:45:38] INFO ruby 1.8.4 (2005-12-24) [i386-mswin32]
[2006-07-10 21:45:38] INFO WEBrick::HTTPServer#start: pid=2556
port=3000
在浏览器中输入:http://127.0.0.1:3000 就可以访问默认页面:
剩余84页未读,继续阅读
资源评论
apple20140612
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- #P0015. 全排列 超级简单
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功