[.net开发交流会][2010.06.19]better framework better life(吕国宁)

50
Better Framework, Better Life.

Upload: shanda-innovation-institute

Post on 12-May-2015

1.102 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Better Framework, Better Life.

Page 2: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

我打算说什么?• 介绍我是谁?

• 介绍什么是Rails,为什么Rails?

• Rails的特点

• Rails的隐忧

• 从Rails的发展中,我们可以学到什么?

• 如何学习Rails?

• Shanghaionrails, RubyConfChina

Page 3: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

我是谁?

• 吕国宁 (Daniel Lv)

• @lgn21st

[email protected]

• 主修机械,半路出家作程序员• Shanghaionrails的founder之一

• 曾在Red.com, Elctech.com, Factual.com工作

• 现在是Intridea.com得资深工程师

Page 4: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

在Intridea, 我们作什么?

• Design & User experience

• Web Development

• Mobile Development

Page 5: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

在这里说Rails?• 为了想多认识朋友• 为了跟.net社区搞好关系

• 想跟大家探讨一下.NET取代Rails得可能性

• Why Would a .NET Programmer Learn Ruby on Rails http://www.infoq.com/articles/Netter-on-Rails

• Moving from ASP.net MVC to Ruby on Rails http://www.infoq.com/articles/

Page 6: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

什么是Rails

• Rails是用Ruby语言写的Web Framework

• 2004年7月份发布

• 由DHH从37signals公司的项目管理工具Basecamp里抽取出来的

• 以开源的方式发布• 符合实际需要,高效,受到广泛关注

Page 7: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Web Framework?

• 为什么要web framework

• 为什么web framework要MVC

• 为什么web framework要ORM

• 为什么web framework要route mapper,Template,Session,Ajax,Security......

Page 8: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Basecamp?

• A web-based project management tool

• About messages, milestone, and todo list

• As simple to use as a weblog

• Recommend to read the book <<Getting Real>>

Page 9: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

继续认识Rails

• 开源框架设计紧凑,优雅• 第一个完整实现了REST架构风格

• 先进,并持续提供更好,更有用的功能• 开发高效,快捷,代码清晰易读

Page 10: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails开发有多块?Metric Java (Spring/Hibernate) Ruby & Rails

Time to market4 month, approximately

20 hours/week4 night (5hours/night)

Lines of code 3293 1164

Lines of configuration 1161 113

Number of classes/methods 62/549 55/126

Justin Gehtland: Better, Faster, Lighter Java 的作者http://commons.oreilly.com/wiki/index.php/Beyond_Java/Ruby_on_Rails

Page 11: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails节约代码行数?

• Justin Gehtland 提出 Java : Rails = 3.5 : 1

• Proc.net 提出 PHP : Rails = 10 : 1

• JavaEye的Robbin估算 Java : Rails = 10 : 1

Page 13: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails高效的总结

• 基于Ruby语言,Less code do more

• 提供完善,便利的基础设施• 架构简洁清晰,易于维护修改• 开发过程充满乐趣

Page 14: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

谁应该用Rails?

• 创业项目• 通过数据库生成动态内容,对网站功能要求比较复杂的网站

• 企业开发...

Page 15: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails的足迹• 从诞生到今天,已经6年

• 2005年DHH获得年度最佳Hacker

• 2006年Rails获得Jolt年度最佳产品

• 2005~2006年Ruby/Rails的相关书籍销售量增长1552%

• Rails一直在快速演进

Page 16: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

开发高效是Rails独有的?

• Rails的优势其实不是独有的

• 有些语言,技术比Rails更先进

• 为什么只有Rails取得今天的成绩?

Page 17: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

关键是要赚钱!

• 其他语言/框架,在技术上的确有独创性

• 但是关于赚钱能力 ......

• 不管过去还是将来,优秀的技术必须能转化为能卖得出去的产品

Page 18: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails其实仍然很小

• 目前不是Web开发领域的主导技术

• 社区规模仍然在不断壮大• 相对其他语言/框架,开发效率优势显著

Page 19: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

什么地方有钱赚?

Page 20: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

企业开发领域?

Page 21: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails不合适企业开发?

• 这个问题被反复探讨许多年• 为了推翻这一论调,Rails做了许多努力

• 也有人认为Rails是企业开发的新星

• Rails在企业开发领域取得长足进步

• 反问大家,到底什么是企业开发?

Page 22: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails is ready for enterprise

• 你并不一定需要去赢一场争论• 只需要用时间证明你是对的• REST, COC, OpenSource...

• 新观念总是需要多一点时间,人们才能慢慢接受,这是规律

Page 23: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails用通过时间的方式来证明自己得价值。

Page 24: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails的社区很成功• Rails的开发主力军

• 不断分享我们的知识• 不断分享我们的信仰• 不断分享我们的价值• 不断提升我们的生产力• 让程序员保持更高的生产力,比打造一个更快的web framework更重要

Page 25: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails并不特殊

• 我们承认我们不特殊• 能打造出最好的web框架,Rails并不唯一

• 我们把精力放在解决普通的问题上• 我们只提供通用解决方案

Page 26: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails谨慎对待灵活• Flexibility is not free

• 其实人们往往只是喜欢选择最好的方案,而不是喜欢选择本身。

• 我们为开发者提供了默认选择• Convention over configuration

• 非阻塞式开发

Page 27: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails发展靠技术驱动

• Rails的发展不是由商业利益驱动的

• Rails的发展不一定遵循一个明确的规划

• 技术对优秀的开发人员最重要• Rails在乎开发人员

Page 28: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Ruby is designed to make programmers happy!

-Matz

Page 29: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Ruby的隐忧

Page 30: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

如何一直保持优势?

• 这个问题一直被讨论• 没有行之有效的办法让Rails一直先进

• 有太多的其他语言/框架在Clone Rails

• 其实,仅仅抄袭模仿是打败不了Rails的

Page 31: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

来自创新语言/框架的挑战

• 创新,有特点的语言/框架仍然有机会

• 在开发效率上打败Rails难度很大

• 学习新语言,框架要投入成本

Page 32: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

对Rails的质疑

• Rails doesn’t scale?

• Rails固步自封?

• Rails变化太快?

Page 33: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

如何面对这些隐忧?

Page 34: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Rails选择继续扩大优势

Page 35: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

从Rails中,我们可以学到什么?

Page 36: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

现实世界中程序员

• 110%努力,每一分每一秒都被工作消耗

• 疲劳,冷淡,缺乏激情• 工作生活的平衡不易维系,没有时间去尝试新事物

Page 37: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

聪明的人,会在非常有限的时间,用最优秀的技术去作尽可能号的产品。

Page 38: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

你需要的是释放潜能你需要的是提高效率你需要的是拯救自己你需要的是激情工作

Page 39: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

怎么释放潜能?怎么提高效率?

Page 40: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

你最好的投资对象,就是你自己!

Page 41: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

成为高效的程序员

• 增加思考的时间• 保证睡眠• 多看好书• 少写代码

Page 42: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

如何学习Rails

• Rails的变化很快

• Agile web development with Rails

• 视频教学 http://railscasts.com/

• 网上教程 http://www.railstutorial.org/book

Page 43: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

如果你现在就开始学习Rails3,并自己到网上找教程(已经有很多),我只想对你说,你太COOL了!

Page 44: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Just remember:Doing website for fun

Page 45: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

听我讲完了,然后呢?

Page 46: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

把自己宅出去积极参加技术活动

Page 47: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Shanghaionrails

• 上海的最大Ruby & Rails技术社区

• 非盈利组织,积极推动ROR在国内发展

• 每个季度举办线下活动• 成功的筹备了RubyConfChina和

KungfuRails活动

Page 48: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

RubyConfChina

• 2010年6月26日,上海电视大学

• 早上八点半到下午六点• 预计超过400人参加

• 免费, 由shanghaionrails和JavaEye合作筹办

• www.rubyconfchina.org

Page 49: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

Q&A

Page 50: [.Net开发交流会][2010.06.19]better framework better life(吕国宁)

谢谢!