[.net开发交流会][2010.06.19]better framework better life(吕国宁)
TRANSCRIPT
Better Framework, Better Life.
我打算说什么?• 介绍我是谁?
• 介绍什么是Rails,为什么Rails?
• Rails的特点
• Rails的隐忧
• 从Rails的发展中,我们可以学到什么?
• 如何学习Rails?
• Shanghaionrails, RubyConfChina
我是谁?
• 吕国宁 (Daniel Lv)
• @lgn21st
• 主修机械,半路出家作程序员• Shanghaionrails的founder之一
• 曾在Red.com, Elctech.com, Factual.com工作
• 现在是Intridea.com得资深工程师
在Intridea, 我们作什么?
• Design & User experience
• Web Development
• Mobile Development
在这里说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/
什么是Rails
• Rails是用Ruby语言写的Web Framework
• 2004年7月份发布
• 由DHH从37signals公司的项目管理工具Basecamp里抽取出来的
• 以开源的方式发布• 符合实际需要,高效,受到广泛关注
Web Framework?
• 为什么要web framework
• 为什么web framework要MVC
• 为什么web framework要ORM
• 为什么web framework要route mapper,Template,Session,Ajax,Security......
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>>
继续认识Rails
• 开源框架设计紧凑,优雅• 第一个完整实现了REST架构风格
• 先进,并持续提供更好,更有用的功能• 开发高效,快捷,代码清晰易读
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
Rails节约代码行数?
• Justin Gehtland 提出 Java : Rails = 3.5 : 1
• Proc.net 提出 PHP : Rails = 10 : 1
• JavaEye的Robbin估算 Java : Rails = 10 : 1
Rails Live demoCreating a weblog in 15 minutes
http://media.rubyonrails.org/video/rails_blog_2.mov
Rails高效的总结
• 基于Ruby语言,Less code do more
• 提供完善,便利的基础设施• 架构简洁清晰,易于维护修改• 开发过程充满乐趣
谁应该用Rails?
• 创业项目• 通过数据库生成动态内容,对网站功能要求比较复杂的网站
• 企业开发...
Rails的足迹• 从诞生到今天,已经6年
• 2005年DHH获得年度最佳Hacker
• 2006年Rails获得Jolt年度最佳产品
• 2005~2006年Ruby/Rails的相关书籍销售量增长1552%
• Rails一直在快速演进
开发高效是Rails独有的?
• Rails的优势其实不是独有的
• 有些语言,技术比Rails更先进
• 为什么只有Rails取得今天的成绩?
关键是要赚钱!
• 其他语言/框架,在技术上的确有独创性
• 但是关于赚钱能力 ......
• 不管过去还是将来,优秀的技术必须能转化为能卖得出去的产品
Rails其实仍然很小
• 目前不是Web开发领域的主导技术
• 社区规模仍然在不断壮大• 相对其他语言/框架,开发效率优势显著
什么地方有钱赚?
企业开发领域?
Rails不合适企业开发?
• 这个问题被反复探讨许多年• 为了推翻这一论调,Rails做了许多努力
• 也有人认为Rails是企业开发的新星
• Rails在企业开发领域取得长足进步
• 反问大家,到底什么是企业开发?
Rails is ready for enterprise
• 你并不一定需要去赢一场争论• 只需要用时间证明你是对的• REST, COC, OpenSource...
• 新观念总是需要多一点时间,人们才能慢慢接受,这是规律
Rails用通过时间的方式来证明自己得价值。
Rails的社区很成功• Rails的开发主力军
• 不断分享我们的知识• 不断分享我们的信仰• 不断分享我们的价值• 不断提升我们的生产力• 让程序员保持更高的生产力,比打造一个更快的web framework更重要
Rails并不特殊
• 我们承认我们不特殊• 能打造出最好的web框架,Rails并不唯一
• 我们把精力放在解决普通的问题上• 我们只提供通用解决方案
Rails谨慎对待灵活• Flexibility is not free
• 其实人们往往只是喜欢选择最好的方案,而不是喜欢选择本身。
• 我们为开发者提供了默认选择• Convention over configuration
• 非阻塞式开发
Rails发展靠技术驱动
• Rails的发展不是由商业利益驱动的
• Rails的发展不一定遵循一个明确的规划
• 技术对优秀的开发人员最重要• Rails在乎开发人员
Ruby is designed to make programmers happy!
-Matz
Ruby的隐忧
如何一直保持优势?
• 这个问题一直被讨论• 没有行之有效的办法让Rails一直先进
• 有太多的其他语言/框架在Clone Rails
• 其实,仅仅抄袭模仿是打败不了Rails的
来自创新语言/框架的挑战
• 创新,有特点的语言/框架仍然有机会
• 在开发效率上打败Rails难度很大
• 学习新语言,框架要投入成本
对Rails的质疑
• Rails doesn’t scale?
• Rails固步自封?
• Rails变化太快?
如何面对这些隐忧?
Rails选择继续扩大优势
从Rails中,我们可以学到什么?
现实世界中程序员
• 110%努力,每一分每一秒都被工作消耗
• 疲劳,冷淡,缺乏激情• 工作生活的平衡不易维系,没有时间去尝试新事物
聪明的人,会在非常有限的时间,用最优秀的技术去作尽可能号的产品。
你需要的是释放潜能你需要的是提高效率你需要的是拯救自己你需要的是激情工作
怎么释放潜能?怎么提高效率?
你最好的投资对象,就是你自己!
成为高效的程序员
• 增加思考的时间• 保证睡眠• 多看好书• 少写代码
如何学习Rails
• Rails的变化很快
• Agile web development with Rails
• 视频教学 http://railscasts.com/
• 网上教程 http://www.railstutorial.org/book
如果你现在就开始学习Rails3,并自己到网上找教程(已经有很多),我只想对你说,你太COOL了!
Just remember:Doing website for fun
听我讲完了,然后呢?
把自己宅出去积极参加技术活动
Shanghaionrails
• 上海的最大Ruby & Rails技术社区
• 非盈利组织,积极推动ROR在国内发展
• 每个季度举办线下活动• 成功的筹备了RubyConfChina和
KungfuRails活动
RubyConfChina
• 2010年6月26日,上海电视大学
• 早上八点半到下午六点• 预计超过400人参加
• 免费, 由shanghaionrails和JavaEye合作筹办
• www.rubyconfchina.org
Q&A
谢谢!