SlideShare une entreprise Scribd logo
1  sur  81
Télécharger pour lire hors ligne
Ruby、Rails分享
   老宋 @2011-12-12
   老宋@2011-12-12
Me
Ruby迷



Blog:   http://rubyer.me
Github: https://github.com/camelsong
Email: neosoyn@gmail.com
语言趋势
2011年12月   很不靠谱的排名   http://www.tiobe.com
如果还有人争论
Ruby/Rails和
Python哪个更适
合Web开发,这
个数据可以参考




              2011-10-24   http://trends.builtwith.com/
J2EE在企业级市场独占鳌头,现在盛产码农   http://trends.builtwith.com/
                                    2011-10-24
PHP是中小网站最爱,我是草根我光荣   http://trends.builtwith.com/
                                 2011-10-24
看来喜欢Ruby on Rails 的人还是有的   http://trends.builtwith.com/
                                       2011-10-24
基点虽小,但我们看中的是未来   http://trends.builtwith.com/
                             2011-10-24
Python为啥下降这么快,难道是没给领导送礼 http://trends.builtwith.com/
                                    2011-10-24
摘要

 Ruby介绍
 Rails介绍
 10分钟写博客
Who is on
Ruby on Rails?
区别




编程语言   开发框架
Ruby
http://www.ruby-lang.org
Ruby 由日本人 松本行弘(Matz)
1995年发布
人们特别是电脑工程师们,常常从机
器着想。他们认为:
 “这样做,机器就能运行的更快;这
样做,机器运行效率更高;这样做,
机器就会怎样怎样怎样。”
机器就会怎样怎样怎样。”
  实际上,我们需要从人的角度考虑
问题,人们怎样编写程序或者怎样使
用机器上应用程序。我们是主人,他
们是仆人。
              - Matz
Simplicity
打印Hello world
Ruby就像超人,只穿内裤。
代码少到不能再少,
简单到不能再简单。
下面分别用 Ruby和Java实现相同功能
做一个比较。
一段空程序


Java


       不用写代码
Ruby
调用一个方法


Java




Ruby
逆转字符串


Java




Ruby
还敢说讨厌 Ruby吗?
打印5次Hello world
完全
面向
对象
全都是对象,甚至包括数字和空
Natural
输出两天前的日期
一段Rspec测试代码
Dynamic
给数字添加一个方法
让你疯狂的代码
Ruby的三个动态特性
• Duck Typing
• Method Missing
• 元编程
Typing
Duck
最给力的代码
最给力的代码
                  issing
               dM
         M etho
Java




Ruby
元 编程
Java




Ruby
闭包
Java使用内部类模拟闭包




打开连接    处理迭代
关闭连接    处理异常
迭代
管
理
资
源
“跨平台”
真正跨平台
JRuby      Java
IronRuby   C#
MacRuby    Object-C
RubyJS     JS
Ruboto     Android
Ruby Enterprise Edition
JRuby 示例
Ruby is...
•   跨平台
•   自动垃圾回收
•   解释性执行
•   完全面向对象
•   动态
•   支持闭包
•   容易测试
By DHH(David Heinemeier Hansson)@2003
我不认为Rails应该向外部世界
屈服,
恰恰相反,
Rails正在有力地让外部世界向
我们屈服。
             by DHH
Rails三原则
Convention Over
 Configuration
 约定优于配置
DRY(Don’t Repeat Yourself)
 不要重复自己
REST(Representational State Transfer)
 具象状态传输
约定>配置
把Users表中name=ys的改为youshang
              1. 添加连接库
              2.配置连接字符串
              3.打开连接
              4.新建查找方法
              5.调用查找方法
              6.修改name
              7.保存记录
              8.关闭连接
Rails访问数据库示例
比较下Java的ORM框架Hibernate
和Rails的ORM框架Active Record 。
你才知道Hibernate真的弱爆了!
Hibernate 官方示例
Model对象模型:Order
Java 数据库映射 : Order
     数据库映射:
还有Service
 层、Dao层
 。
各层接口和实
 现类...
Rails出场了
Rails出场了
Rails中到处充满着约定
3种环境约定(开发、生产、测试)
单复数约定
MVC
瘦控制器,胖模型
...
Don't
Repeat
Yourself
DRY
Generator
Partials
Plugins
...
REST
万物皆为URL
一切操作均是对 URL操作
RESTful操作符 HTTP动词
RESTful
Create   Post
Read     Get
Update   Put
Delete   Delete
RESTful操作符 Rails方法
RESTful
         new
Create   create


Read     show

          edit
Update    update

Delete   destroy
         index
操作          HTTP     URL                   Rails 对应
            请求                             Action
查看列表        Get      http://my/posts       index
查看id=2的帖子   Get      http://my/posts/2     show

新建贴子        Get      http://my/posts/new   new


保存帖子        Post     http://my/posts       create

修改id=2的帖子   Get      http://my/posts/2     edit

保存修改        Update   http://my/posts/2     update

删除id=2的帖子   Delete   http://my/posts/2     Destroy
More Rails
Agile Development
TDD(Test Driven Development )
BDD
Generators
Live on the edge
10分钟写博客
其实只要5分钟
1.rails new blog
2.cd blog
3.rails g scaffold Post title:string
  content:text
4.rails server

现在就可以访问
 http://127.0.0.1:3000/posts
博客已经写好了。
My Blog-web
My Blog-mobile
Q&A
http://rubyer.me

Contenu connexe

En vedette

從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby建興 王
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On RailsSteve Keener
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Railsmithunsasidharan
 
StartupDecode - Meetup #00
StartupDecode - Meetup #00StartupDecode - Meetup #00
StartupDecode - Meetup #00Amine Sadry
 
Coding for entrepreneurs
Coding for entrepreneursCoding for entrepreneurs
Coding for entrepreneursAmine Sadry
 
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
用十分鐘瞭解  陳鍾誠的程式設計課  (採用JavaScript + C的原因)用十分鐘瞭解  陳鍾誠的程式設計課  (採用JavaScript + C的原因)
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)鍾誠 陳鍾誠
 
Programming For Non-Programmers: 2013
Programming For Non-Programmers: 2013Programming For Non-Programmers: 2013
Programming For Non-Programmers: 2013Chris Castiglione
 

En vedette (8)

Java
JavaJava
Java
 
從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On Rails
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
StartupDecode - Meetup #00
StartupDecode - Meetup #00StartupDecode - Meetup #00
StartupDecode - Meetup #00
 
Coding for entrepreneurs
Coding for entrepreneursCoding for entrepreneurs
Coding for entrepreneurs
 
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
用十分鐘瞭解  陳鍾誠的程式設計課  (採用JavaScript + C的原因)用十分鐘瞭解  陳鍾誠的程式設計課  (採用JavaScript + C的原因)
用十分鐘瞭解 陳鍾誠的程式設計課 (採用JavaScript + C的原因)
 
Programming For Non-Programmers: 2013
Programming For Non-Programmers: 2013Programming For Non-Programmers: 2013
Programming For Non-Programmers: 2013
 

Similaire à Ruby rails分享

J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目George Ang
 
Rails ABC
Rails ABCRails ABC
Rails ABCqtlove
 
紅寶石鐵道漫遊指南
紅寶石鐵道漫遊指南紅寶石鐵道漫遊指南
紅寶石鐵道漫遊指南Juanito Fatas
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2致远 郑
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0soboring
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Servicesjavatwo2011
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集zhen chen
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am iTwinsen Liang
 
给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目yiditushe
 
How to-start-your-own-website v1.3
How to-start-your-own-website v1.3How to-start-your-own-website v1.3
How to-start-your-own-website v1.3faliamm
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Railsshaokun
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨Wen-Tien Chang
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails serverMichael Chen
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
Csdn Java电子杂志第1期
Csdn Java电子杂志第1期Csdn Java电子杂志第1期
Csdn Java电子杂志第1期yiditushe
 
Java Web框架汇总
Java Web框架汇总Java Web框架汇总
Java Web框架汇总yiditushe
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2twMVC
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC
 
Rails girls session - Web Application
Rails girls session - Web ApplicationRails girls session - Web Application
Rails girls session - Web Applicationscott119
 

Similaire à Ruby rails分享 (20)

J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目J Ruby和Rails 让Ruby语言融入Java项目
J Ruby和Rails 让Ruby语言融入Java项目
 
Rails ABC
Rails ABCRails ABC
Rails ABC
 
rebar erlang
rebar erlangrebar erlang
rebar erlang
 
紅寶石鐵道漫遊指南
紅寶石鐵道漫遊指南紅寶石鐵道漫遊指南
紅寶石鐵道漫遊指南
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
 
给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目
 
How to-start-your-own-website v1.3
How to-start-your-own-website v1.3How to-start-your-own-website v1.3
How to-start-your-own-website v1.3
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
Csdn Java电子杂志第1期
Csdn Java电子杂志第1期Csdn Java电子杂志第1期
Csdn Java电子杂志第1期
 
Java Web框架汇总
Java Web框架汇总Java Web框架汇总
Java Web框架汇总
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有
 
Rails girls session - Web Application
Rails girls session - Web ApplicationRails girls session - Web Application
Rails girls session - Web Application
 

Ruby rails分享