SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
   
上海 TopGeek  沙龙
Ruby 敏捷开发实践
– 网游运营平台开发心得
   
自我介绍
6 年的 Java 程序员, 3 年的 Ruby 程序员
目前在 bihannet.com 负责网游运营平台的开发
   
Ruby 的发展
90 后 ­  松本行弘 "Matz" (Matsumoto Yukihiro) 
2000 ­ Programming Ruby 
2005 ­ Ruby on Rails
2010 ­ 敏捷,高效,享受编程的快乐
   
Ruby 的优势
Matz:
Ruby is designed for 
programmer 
productivity and 
fun
   
例子 1
­3 的绝对值是什么?
public class MathExample {
public static void main(String[] args) {
System.out.println(Math.abs(-3));
}
}
javac MatchExample.java
java MatchExample
   
例子 1
脚本语言
面向对象
简洁
ruby -e "p -3.abs"
   
例子 2
"The quick brown fox jumps over the lazy dog".downcase.
split("").uniq.sort.join.strip
=> "abcdefghijklmnopqrstuvwxyz"
内建功能丰富
函数式编程风格
   
例子 3
User.find_all_by_dob_month(Time.now.month).each do |user|
  user.increment!(:score, 100)
end
给本月过生日的所有用户每人加 100 积分
贴近自然语言,非常直观
   
Ruby 的劣势?
Ruby 很慢
Ruby 程序员很少
Ruby 第三方的库太少
   
Ruby 很慢 ?
http://shootout.alioth.debian.org/
和 c 比 慢 4~800 倍
和 java 比 慢 0~400 倍
和 python 比 慢 0~9 倍
Ruby 是很慢
可是大部分的应用不是单纯数值计算和文字处理
   
Ruby  程序员很少 ?
51job 搜搜看
50 Ruby v.s 1,000,000 Java
小团队 v.s  大团队
JavaEye: 1.5 Ruby developer
Bihannet: 3 Ruby developer
从 Python / Java 程序员转行培养
   
Ruby 第三方的库太少?
rubygems.org
从文字处理到消息中间件,从小插件到 All­in­on 框架
github.com
给力的,有趣的,开源代码集中地
贡献开源
   
网游运营平台介绍
常见的网游运营平台功能包括 : 
–官网 CMS
账号,充值 ­  安全和高可靠性
论坛,社区 ­  可扩展性
   
CMS
http://radiantcms.org/ 
适合小团队用,或者中小型企业展示站点
http://webiva.org/
功能丰富,日常维护比较方便
为什么一定要选择基于 Ruby 的 CMS ?
我们陷入了一个误区
   
CMS
Ruby 很慢?
有 Memcached ,很快
还嫌不够快?我们可以静态化
Page.find_all_by_status("published").each do |p|
`wget -O "#{dir}#{page.node_path}/#{page.permalink}.html"
"#{domain.name}#{page.node_path}/#{page.permalink}"`
end
   
账号,认证,权限
丰富而且成熟的插件
restful_authentication
devise
authlogic
open_id_authentication
omniauth
......
3 小时搞定
   
充值
“充值这样 Mission Critical” 的事情用 Ruby 可靠么?
  Ruby Message Queue?
基于 Java 的 ActiveMQ
基于 ErLang 的 RabbitMQ
ruby amqp client
   
充值
支付网关接口插件
activemerchant
国内大部分的支付网关都没有 Ruby 库,贡献开源:
http://github.com/flyerhzm/activemerchant_patch_for_china
大部分都是实现一个参数签名 (md5)
   
论坛
为什么要自己用 Ruby on Rails 开发论坛?
有丰富的插件支持
方便以后的集成和定制
搭积木, 2 天搭好一个论坛
   
ROR 提供了最佳实践
image_tag(“index.jpg”)
=> <img src=”/images/index.jpg?1271919288”/>
config.action_controller.asset_host = "cdn.com"
=> src=”http://cdn.com/images/index.jpg?1271919288”
自动添加 timestamp ,利用 http cache
修改一下配置, CDN 自动生效
   
Ruby 开发游戏
Flash 做前端
Ruby 做后端
AMF 协议做通讯
rubyamf
rocketamf
   
Thank You
Twitter: quakewang
Blog: http://quake.javaeye.com
Email: quake.wang@gmail.com

Mais conteúdo relacionado

Destaque

20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I  加拿大人機介面技術發展與經驗分享20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I  加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享Justin Lee
 
了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)teddysoft
 
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean StartupWen-Tien Chang
 
從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神teddysoft
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享teddysoft
 
敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介曦 徐
 
How to be a great scrum master
How to be a great scrum masterHow to be a great scrum master
How to be a great scrum masterDaniel Shupp
 

Destaque (7)

20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I  加拿大人機介面技術發展與經驗分享20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I  加拿大人機介面技術發展與經驗分享
20130604 Prototype Driven Design@Computex 2013 智慧手持裝置論壇 I 加拿大人機介面技術發展與經驗分享
 
了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)
 
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup
從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup
 
從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享
 
敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介
 
How to be a great scrum master
How to be a great scrum masterHow to be a great scrum master
How to be a great scrum master
 

Semelhante a Ruby agile development_of_game_operation_platform

Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plusDongxu Yao
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨Wen-Tien Chang
 
第1章 入门
第1章 入门第1章 入门
第1章 入门Runa Jiang
 
Rails ABC
Rails ABCRails ABC
Rails ABCqtlove
 
前端爆肝之旅+React上山前的小專案心得分享
前端爆肝之旅+React上山前的小專案心得分享前端爆肝之旅+React上山前的小專案心得分享
前端爆肝之旅+React上山前的小專案心得分享Yao Nien Chung
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版Simen Li
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享Cam Song
 
The ruby-way
The ruby-wayThe ruby-way
The ruby-wayfangdeng
 
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)Will Huang
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用hugo
 
高雄前端上課簡報 #29
高雄前端上課簡報 #29高雄前端上課簡報 #29
高雄前端上課簡報 #29reactmaker9527
 
漫谈php和java
漫谈php和java漫谈php和java
漫谈php和javasulong
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒Maxis Kao
 
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例亮齊 曾
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺宗凡 楊
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺hydai
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)xzdbd
 

Semelhante a Ruby agile development_of_game_operation_platform (20)

第七組
第七組第七組
第七組
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
Clojure的魅力
Clojure的魅力Clojure的魅力
Clojure的魅力
 
⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨⼤語⾔模型 LLM 應⽤開發入⾨
⼤語⾔模型 LLM 應⽤開發入⾨
 
第1章 入门
第1章 入门第1章 入门
第1章 入门
 
Rails ABC
Rails ABCRails ABC
Rails ABC
 
前端爆肝之旅+React上山前的小專案心得分享
前端爆肝之旅+React上山前的小專案心得分享前端爆肝之旅+React上山前的小專案心得分享
前端爆肝之旅+React上山前的小專案心得分享
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
 
Ruby rails分享
Ruby rails分享Ruby rails分享
Ruby rails分享
 
The ruby-way
The ruby-wayThe ruby-way
The ruby-way
 
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
高雄前端上課簡報 #29
高雄前端上課簡報 #29高雄前端上課簡報 #29
高雄前端上課簡報 #29
 
漫谈php和java
漫谈php和java漫谈php和java
漫谈php和java
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒
 
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例
用 Ruby 開發 IoT 應用 - 以 RubyConf.tw 打卡系統為例
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)
 

Mais de topgeek

明洪涛 个性化推荐系统@土豆
明洪涛 个性化推荐系统@土豆明洪涛 个性化推荐系统@土豆
明洪涛 个性化推荐系统@土豆topgeek
 
项亮 推荐系统实践 从入门到精通
项亮 推荐系统实践 从入门到精通 项亮 推荐系统实践 从入门到精通
项亮 推荐系统实践 从入门到精通 topgeek
 
空望 推荐系统@淘宝
空望 推荐系统@淘宝空望 推荐系统@淘宝
空望 推荐系统@淘宝topgeek
 
从长津湖战役看团队建设
从长津湖战役看团队建设从长津湖战役看团队建设
从长津湖战役看团队建设topgeek
 
Agile changes in liba
Agile changes in libaAgile changes in liba
Agile changes in libatopgeek
 
I hate unit test
I hate unit testI hate unit test
I hate unit testtopgeek
 
百姓网的网速优化之路
百姓网的网速优化之路百姓网的网速优化之路
百姓网的网速优化之路topgeek
 
图形组件技术杂谈
图形组件技术杂谈图形组件技术杂谈
图形组件技术杂谈topgeek
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发topgeek
 
腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析topgeek
 
腾讯大讲堂38 oracle基础体系结构及性能优化
腾讯大讲堂38 oracle基础体系结构及性能优化腾讯大讲堂38 oracle基础体系结构及性能优化
腾讯大讲堂38 oracle基础体系结构及性能优化topgeek
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析topgeek
 
腾讯大讲堂46 自由cgi之路v3
腾讯大讲堂46 自由cgi之路v3腾讯大讲堂46 自由cgi之路v3
腾讯大讲堂46 自由cgi之路v3topgeek
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttctopgeek
 
腾讯大讲堂26 带宽优化之道
腾讯大讲堂26 带宽优化之道腾讯大讲堂26 带宽优化之道
腾讯大讲堂26 带宽优化之道topgeek
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍topgeek
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程topgeek
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向topgeek
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化topgeek
 

Mais de topgeek (20)

明洪涛 个性化推荐系统@土豆
明洪涛 个性化推荐系统@土豆明洪涛 个性化推荐系统@土豆
明洪涛 个性化推荐系统@土豆
 
项亮 推荐系统实践 从入门到精通
项亮 推荐系统实践 从入门到精通 项亮 推荐系统实践 从入门到精通
项亮 推荐系统实践 从入门到精通
 
空望 推荐系统@淘宝
空望 推荐系统@淘宝空望 推荐系统@淘宝
空望 推荐系统@淘宝
 
从长津湖战役看团队建设
从长津湖战役看团队建设从长津湖战役看团队建设
从长津湖战役看团队建设
 
Agile changes in liba
Agile changes in libaAgile changes in liba
Agile changes in liba
 
I hate unit test
I hate unit testI hate unit test
I hate unit test
 
百姓网的网速优化之路
百姓网的网速优化之路百姓网的网速优化之路
百姓网的网速优化之路
 
图形组件技术杂谈
图形组件技术杂谈图形组件技术杂谈
图形组件技术杂谈
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发
 
腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析
 
腾讯大讲堂38 oracle基础体系结构及性能优化
腾讯大讲堂38 oracle基础体系结构及性能优化腾讯大讲堂38 oracle基础体系结构及性能优化
腾讯大讲堂38 oracle基础体系结构及性能优化
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
腾讯大讲堂46 自由cgi之路v3
腾讯大讲堂46 自由cgi之路v3腾讯大讲堂46 自由cgi之路v3
腾讯大讲堂46 自由cgi之路v3
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc
 
腾讯大讲堂26 带宽优化之道
腾讯大讲堂26 带宽优化之道腾讯大讲堂26 带宽优化之道
腾讯大讲堂26 带宽优化之道
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化
 

Ruby agile development_of_game_operation_platform