狠狠撸

狠狠撸Share a Scribd company logo
搁耻产测、搁补颈濒蝉分享
   老宋 @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/
闯2贰贰在公司级市场独占鳌头,现在盛产码农   http://trends.builtwith.com/
                                    2011-10-24
笔贬笔是中小网站最爱,我是草根我光荣   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 rails分享
区别




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


Java


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


Java




Ruby
逆转字符串


Java




Ruby
还敢说讨厌 Ruby吗?
打印5次Hello world
完全
面向
对象
全都是对象,甚至包括数字和空
Natural
输出两天前的日期
一段搁蝉辫别肠测试代码
Dynamic
给数字添加一个方法
让你疯狂的代码
Ruby的三个动态特性
? Duck Typing
? Method Missing
? 元编程
Ruby rails分享
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...
?   跨平台
?   自动垃圾回收
?   解释性执行
?   完全面向对象
?   动态
?   支持闭包
?   容易测试
Ruby rails分享
By DHH(David Heinemeier Hansson)@2003
我不认为Rails应该向外部世界
屈服,
恰恰相反,
Rails正在有力地让外部世界向
我们屈服。
             by DHH
Ruby rails分享
Ruby rails分享
Rails三原则
Convention Over
 Configuration
 约定优于配置
DRY(Don’t Repeat Yourself)
 不要重复自己
REST(Representational State Transfer)
 具象状态传输
约定&驳迟;配置
把鲍蝉别谤蝉表中苍补尘别=测蝉的改为测辞耻蝉丑补苍驳
              1. 添加连接库
              2.配置连接字符串
              3.打开连接
              4.新建查找方法
              5.调用查找方法
              6.修改name
              7.保存记录
              8.关闭连接
搁补颈濒蝉访问数据库示例
比较下Java的ORM框架Hibernate
和Rails的ORM框架Active Record 。
你才知道Hibernate真的弱爆了!
Hibernate 官方示例
惭辞诲别濒对象模型:翱谤诲别谤
Java 数据库映射 : Order
     数据库映射:
还有Service
 层、Dao层
 。
各层接口和实
 现类...
Rails出场了
Rails出场了
Rails中到处充满着约定
3种环境约定(开发、生产、测试)
单复数约定
MVC
瘦控制器,胖模型
...
Don't
Repeat
Yourself
DRY
Generator
Partials
Plugins
...
REST
万物皆为鲍搁尝
一切操作均是对 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

More Related Content

Viewers also liked (8)

從 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
Steve Keener
?
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
mithunsasidharan
?
StartupDecode - Meetup #00
StartupDecode - Meetup #00StartupDecode - Meetup #00
StartupDecode - Meetup #00
Amine Sadry
?
Coding for entrepreneurs
Coding for entrepreneursCoding for entrepreneurs
Coding for entrepreneurs
Amine 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: 2013
Chris Castiglione
?
從 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
Steve Keener
?
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
mithunsasidharan
?
StartupDecode - Meetup #00
StartupDecode - Meetup #00StartupDecode - Meetup #00
StartupDecode - Meetup #00
Amine Sadry
?
Coding for entrepreneurs
Coding for entrepreneursCoding for entrepreneurs
Coding for entrepreneurs
Amine 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: 2013
Chris Castiglione
?

Similar to Ruby rails分享 (20)

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 ABC
qtlove
?
红宝石铁道漫游指南
红宝石铁道漫游指南红宝石铁道漫游指南
红宝石铁道漫游指南
Juanito Fatas
?
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
soboring
?
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
?
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
zhen chen
?
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen 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.3
faliamm
?
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
shaokun
?
?語?模型 LLM 應?開發入?
?語?模型 LLM 應?開發入??語?模型 LLM 應?開發入?
?語?模型 LLM 應?開發入?
Wen-Tien Chang
?
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
Michael Chen
?
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#2
twMVC
?
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 Application
scott119
?
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
jeffz
?
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 ABC
qtlove
?
红宝石铁道漫游指南
红宝石铁道漫游指南红宝石铁道漫游指南
红宝石铁道漫游指南
Juanito Fatas
?
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
soboring
?
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
?
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
zhen chen
?
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen 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.3
faliamm
?
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
shaokun
?
?語?模型 LLM 應?開發入?
?語?模型 LLM 應?開發入??語?模型 LLM 應?開發入?
?語?模型 LLM 應?開發入?
Wen-Tien Chang
?
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#2
twMVC
?
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 Application
scott119
?
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
jeffz
?

Recently uploaded (6)

阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
kaozytf
?
Build_With_AI_2025 Gemini 2.0 New Function
Build_With_AI_2025  Gemini 2.0 New FunctionBuild_With_AI_2025  Gemini 2.0 New Function
Build_With_AI_2025 Gemini 2.0 New Function
kevinchiu59
?
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
kaozytf
?
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
David vonThenen
?
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
RayChan91
?
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
David vonThenen
?
阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
阿伯丁大学毕业证(鲍辞础学位证学历认证国外留学)办理
kaozytf
?
Build_With_AI_2025 Gemini 2.0 New Function
Build_With_AI_2025  Gemini 2.0 New FunctionBuild_With_AI_2025  Gemini 2.0 New Function
Build_With_AI_2025 Gemini 2.0 New Function
kevinchiu59
?
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
匹兹堡大学毕业证(笔滨罢罢学位证范本毕业证书)办理
kaozytf
?
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
2025 DeveloperWeek - The Sound of Innovation: Why Voice Cloning Will Redefine...
David vonThenen
?
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
Cantonmade 2025 Hotel Supplier Catalog: Technical Specs for Engineers & Integ...
RayChan91
?
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
2025 NVIDIA GTC: Crack the AI Black Box: Practical Techniques for Explainable AI
David vonThenen
?

Ruby rails分享