`
knwang
  • 浏览: 3118 次
  • 性别: Icon_minigender_1
  • 来自: 硅谷
最近访客 更多访客>>
文章分类
社区版块
存档分类

2011 RailsConf 回述

阅读更多

 

这周去了巴尔的摩的RailsConf, 感觉收获很大。本来打算写出来之后翻译成中文在贴过来,但最近比较忙没时间。 想大家看我写的简单英文应该没什么问题的。。还有就是我不是科班出身很多词不知到怎么翻译。 有问题请尽管问,我可以尽所能回答。

--------

 

 

Day 1 of RailsConf is the day of tutorials

 

I attended the HTML5 session by @subelsky in the morning and learned a bunch. Like everybody else, I have heard about the HTML5 buzz for a while, but never got deeper into it than scratching the surface. The session ran in the form of 13 labs, and drawing, sockets, native storage, and of course native media support are the highlights. In fac you can do many cools things with just html5 now.. such as this game. The presenter did a great job packaging the material as a series of easy to follow labs. You can get them here and follow it. It will all just take a couple of hours. 

 

I went to "Building Bulletproof Views" in the afternoon by the LivingSocial guys.. Solid presentation and I learned quite a lot.. I tend to agree with them that the rails view layer is wild west and is probably the least organized part of the framework, and I didn't see much "best practices" before on this layer - good work that they put this together. Interestingly, I found half of the issues are made really easy with using an authorizing framework like Compass. They also talked about some tools like formastic, goose (a gem for tab navigations), responsive design and the mobile web. Presentation is here

Also, the Envy Labs guys gave sessions on Rails for Zombies (beginner's course to Ruby on Rails) and Rails Best Practices. Check them out. 

 

Finally, IgniteRails is awesome! @drnic is hilarious

 

 

Day 2:

 

 

@dhh gave the keynote in the morning to unveil Rails 3.1 RC - asset pipeline, jQuery default, native CoffeeScript + Sass support and all. No big architectural changes but solid steps to make Rails more organized. He also hinted that pjax and backbone.jscould be there in Rails 3.2 (presentation layer MVC is a recurring topic this year).

 

Jeff Casimir / @j3 gave a very nice session on "Fat Models aren't enough", where he talked about better organization of code in the models, the presenter pattern (don't just pass a bunch of instance variables into the view, pack them up in a presenter class), scopes (or the no need of ) with lots of code snippets. Presentation here

 

Another session that I found really good is "Confident Code" by Avdi Grimm / @avdi. Presentation here. He talked about the Nil objects being over used in Ruby is so true. The idea of killing all nil in the code is refreshing (therefore eliminating all the checking).  I'll certainly incorporate that in my code.

 

Eric Ries, the godfather of the "lean startup" movement gave the evening keynote. I've seen him speak before, but it makes me think every time. If you are into building a software product start up, his work is a must read. Video is here

 

 

 

Day 3: 

 

Dr. Nic  @drnic 's opened up the morning keynote to talk about Ruby's history, but it's really from Engine Yard to get folks to use JRuby and Rubinius.

 

Aaron Patterson / @tenderlove (only person in both Ruby core team and Rails core team) gave an "Intense" keynote - you have to see it to know what's in it - it's definitely more than you think. :-) He dived into some under the hood stuff in Rails 3.1 improvements  - prepared statement caching, new serialization strategies, streaming response, reduced middleware stack. 

 

The "Controlled Choas" session is a case study of NASA transitioning from legacy system (yes, Java is now considered Legacy now!!). The reasons behind the switch are 1) they want a easier interface (SOAP to REST) and 2) They started to lose developers because nobody wanted to work on old technologies. They switched to JRuby to make use of the JVM. The result: happy developers, team moving much faster, much more maintainable code base. 

 

The two BoF sessions I went to were awesome -

 

Ryan Bates / @rbates (of the Railscast fame) led a walkthrough on the Cancan gem 2.0 version (for role based authorizations). It's still under development.. but is a huge step over 1.0. I have actually evaluated Cancan for one of my projects but found it somewhat limited on the finer level of controls. 2.0 would change that - I like where this project is going. 

 

Yehuda Katz / @wycats gave a presentation on SproutCore. This is one of the things coming up that I am really excited to dig into (the other is the Ruby EventMachine). It has matured much from when I looked at it last time - for one.. there's online documentation now! I think desktop like web applications are the way to go, and it's really cool to have a framework like SproutCore to make things easier. There was a heated discussion on SproutCore vs Backbone.js and Yehuda's message was: SproutCore has everything Backbone (mostly observers) has and more, and the argument that SC is too big is not so important in the bigger scheme of things. 

 

 

Day 4: 

 

 

Keynotes of Day 4 were some of the best:  Check out Corey Haines keynote here on becoming awesome. and if you are a manager and claims that people are your best assets you need to check out how to optimize for developer's happiness. Glenn Vanderburg gave an insightful presentation comparing software engineering with other engineering disciplines - are we craftsmen, engineers, architects, artisans all of the above, or none of the above? Watch it, it'll be worth your time. 

 

Yehuda Katz / @wycats talked about "Building Rails Apps for the Rich Client". I thought he was going to talk quite a bit on SproutCore but he barely touched it. I could not find the presentation for this so here is a summary: 

  • Rails can be very useful in making APIs for machine to machine communications. 
  • Q: If all I need is JSON, why do I need Rails?  Isn't something like Sinatra better? 
  • A: Rails is not trivial, a lot is hidden. It's a rich abstraction of HTTP. It takes care of a lot for you: sessions, cookies, security, standards, constraints, caching, etc. If you move away from Rails you have to do these yourself. and it's hard to make things work well together. Rails does a lot of awesomeness underneath. 
  • Some rules on API design: 1) root has to have resource keys 2) no nested URLs. 3) nested object should follow 1) and 2)

Passing JSON back to the rich client to have a JavaScript templating engine (SproutCore, Backbone.js, Mustache.js etc) to render is a trend.. and Yehuda is making the point that Rails is still a good choice for building APIs. 

 

 

I picked up some nice tips from the "Bridging the Gap between Rails and JavaScript in Rich Client Apps" session (presentation here). A very brief summary - how to reuse code across Ruby and JavaScript in your app? 

  • Write JavaScript code in CommonJS modules
  • Use IncludeJS to use them in Ruby
  • DRY!

 

Matt Kelly / @mkelly12 gave the presentation on Backbone.js, a popular JavaScript templating engine. As I said before, having a MVC front end structure is a trend building rich client apps... and it can really do magic.. check out the Chop app that backbone guys just released (make sure to drag and drop on the code). The presentation itself is a lot of fun too!

 

 

FINAL WORDS: 

 

I got a lot from this conference - it has certainly been information overload, but I came back home excited about all the people doing interesting projects. Met many people who I have known but never got to meet in person. It is very true that open source is all about the community, and RoR has the best community there is.. it almost feels like a fraternity. 

 

分享到:
评论
1 楼 lzqustc 2011-06-02  
Thanks, nice memo.

相关推荐

    rails3-railsconf2010

    标题与描述均提到了"rails3-railsconf2010",这表明内容主要聚焦于Rails 3在2010年的RailsConf会议上的关键更新与特性。Rails(Ruby on Rails)是一种用Ruby语言编写的开源全栈web应用框架,以模型-视图-控制器(MVC...

    railsconf_scripts:我的RailsConf实验室关于贡献Rails的Active Record脚本

    RailsConf脚本此回购包含用于练习我们将在RailsConf上学习的工具的脚本。 首先克隆仓库,然后安装缓存的gem: cd railsconf_scripts# if using windowsgit checkout windowsbundle install --local# if using mac/...

    railsconf-2015:Railsconf 2015 演讲和视频

    RailsConf 2015 演讲和视频时间表: : 浏览 RailsConf 2015 视频: : 如果您发现新的谈话/视频链接,请随时发送请求请求!主题演讲David Heinemeier Hansson 的开幕主题演讲Aaron Patterson 的主题演讲Sara Chipps...

    railsconf:奥斯丁on Rails RailsConf社区活动

    欢迎来到 Rails是一个Web应用程序框架,其中包括根据Model-View-Control模式创建数据库支持的Web应用程序所需的一切。 ... 该模型包含“智能”域对象(例如客户,产品,人员,过帐),该对象包含所有业务逻辑并知道...

    railsconf2013-tech-demo:Seahorse是描述您的API的一种方式

    海马 Seahorse是一种通过声明性DSL将您的服务API描述为一流公民的方法。 该库还提供Ruby on Rails集成,以便在控制器操作中利用您的API模型。 特征 Seahorse提供了定义API模型的功能,还具有支持参数验证以及对API...

    railsconf-2015:进程和线程 - Resque 与 Sidekiq

    我的 RailsConf 2015 演讲中的笔记和材料。 有关(Deckset)幻灯片,请参阅slides.md 。 在本地运行 您关心以下命令: $ ./q (resque|sidekiq) <JobName> [job args] # enqueue a job $ rake resque:work # start...

    sales_app_demo:用于 RailsConf 2015 演示的演示销售应用程序

    销售应用在 RailsConf 2015 上演示数据仓库和多维分析演示的销售应用程序。查询按产品系列获取 2014 年第一季度加利福尼亚州的总销售额 OrderItem . joins ( :order => :customer ) .where ( "customers.country" =>...

    rails_conf_2021_hotwire:RailsConf 2021示例代码存储库

    这是RailsConf 2021上的一个研讨会的代码,请参阅上有关该计划的其他研讨会。 Hotwire:The Wire上HTML 去年12月,Basecamp和Hey背后的团队发布了Hotwire,这是一个通过将HTML发送给客户端来管理客户端交互的库。 ...

    stimulating_events:杰西·斯佩瓦克(Jesse Spevack)的Railsconf 2021演讲纲要

    该存储库包含Jesse Spevack的Railsconf 2021演讲“刺激事件”的代码和文档。 设置 本节包含有关如何使用Stimulus和Tailwind CSS设置新的Rails应用程序的分步说明。 Tailwind CSS安装程序可以在找到更多详细。 创建一...

    rails magazine issue 2

    - **活动规模**:2009年的RailsConf吸引了超过1000名来自美国及世界各地的Ruby on Rails开发者参加。 - **活动目的**:参会者不仅是为了学习交流,还为了社交、放松等目的。 - **会议地点**:此次活动在美国...

    railsconf2015-chef:与Chef一起试驾您的Rails基础架构

    与Chef一起试驾您的Rails基础架构 使用诸如Chef之类的配置管理工具管理基础架构,将开发和运营实践融合在一起。 本讲习班将侧重于开发实践-测试驱动开发-以及如何将该方法应用于管理Rails基础结构和部署。...

    campfire:RailsConf 2021研讨会编写更好的表格的示例应用程序

    编写更好的表格表单是网络应用程序的无名英雄。 没有它们,我们的大多数站点将没有任何数据甚至用户。 但是,除了说构建表单很困难之外,我们谈论的不是很多形式。 我们希望表单看起来不错并且有用,但是有时候感觉...

    delorean:示例Rails应用说明了DDD重构原理

    德洛兰人观看Railsconf视频请务必观看有关Railsconf 2017的DDD和Rails演讲( ),然后返回此存储库以查看其中的一些想法。 伟大的斯科特! Delorean(tm)是镇上最热门的时间旅行拼车创业公司。 但是,它的工程师正...

    rails magazine issue 3

    RailsConf 是 Ruby on Rails 社区的年度盛会,汇聚了全球范围内的开发者、企业家和技术领导者,共同探讨 Rails 的最新发展和未来方向。 通过本期杂志,读者不仅可以获得 Ruby on Rails 技术的深入理解,还能洞察...

    cfp-app, 用于管理会议CFP的Rails 应用程序.zip

    cfp-app, 用于管理会议CFP的Rails 应用程序 cfp应用这是一个 Ruby on Rails 应用程序,允许你管理你的提议( CFP ) 。... 它是由 ruby 中心编写的,用于运行RailsConf和RubyConf的CFPs 。for没有为你的会议提供 pub

    patella:允许人们记忆到 memcache 的 Ruby gem

    Jeff Dwyer 在 RailsConf 2012 上讨论过它: 安装 将此行添加到应用程序的 Gemfile 中: gem 'patella' 然后执行: $ bundle 或者自己安装: $ gem install patella 用法 post = Post . find ( params [ :...

    ultra_light_wizard:没有时间管理向导状态机,会话变量或复杂的控制器吗? 使用超轻精灵!! Rails中的一种RESTful无需会话的易于验证的简单多步骤表单方法

    这个RailsConf 2014演讲视频对此进行了全部解释: : 原则REST:向导(多步骤表单)步骤表示为正在构建的模型资源下的REST嵌套资源MVC:尊重MVC分离关注点面向对象:遵循面向对象的低耦合和高凝聚力原则设计模式:...

    Ruby / Rails应用程序的授权框架-Ruby开发

    ”演讲(幻灯片)RailsConf,2018年“ Access Denied”演讲(视频,幻灯片)集成GraphQL Ruby(action_policy-graphql)安装将此行添加到应用程序的Gemfile中:gem“ action_policy”,“〜> 0.4”。 0“,然后执行...

Global site tag (gtag.js) - Google Analytics