上一篇
提及了一些入門必練的基礎。而現在要繼續寫的是進階篇。大致
分為兩個方向:隨心所欲整合 / Scale 與 Deploy
* 隨心所欲的整合
1. 認識更多的 Plugin / Gem,減少重造輪子的機會
Gem / Plugin 的擴充性一向對 Rails 的開發加速作用有大大的加分效果。
- Github
或 RubyForge
- RailsEnvy
每週介紹 新穎 /
亮眼 / 實用 / whatever 的 gem / plugin 與新知
2. 可以移植到其他專案的好用 code,重寫成 plugin 或者 porting 成 Rails Engine
。撰寫自己的 Template
。
Plugin
Patterns (Peepcode)
想學會寫 Rails plugin 請看這份 PDF 。
Rails Engine # 把以前的 app 當成一個 plugin 使用
Rails Template # 每次開專案都會安裝的套件以及執行的動作寫成 Template
3. 開發自己的 View Helper 以及 Form builder。
Rails 不僅僅提供好用的 helper,甚至你可以利用 Rails 提供的 API 撰寫自己的 Helper 和
Builder。為自己的專案套上 standard layout 以及減少寫噁心 html 的機會。
handicaft_interfaces
handicraft_ujs
handicraft_helper
建議閱讀 ihower 在上次 Ruby Tuesday 釋出的 Building
Web Interface on Rails
,以及把玩 ihower 在 github 上提供的 demo
application。這次的 demo 含了 Rails3 提供的 Unobtrusive Javascript 的概念實作,使用
jQuery on Rails 作為範例。
4. 對於各項第三方整合方案的熟悉
Rails 只是一套網頁框架,但它並不是阿拉丁神燈。比如說你需要搜尋功能、付款功能、寄送簡訊、與 IM 整合 …。Rails 當然 ….*
不可能*
內建。雖然比較少書籍在介紹這方面的資訊,但是有幾個 Site 出了不錯的 Video Turtorial(付費 /
不付費都有..)。
Peepcode
Railscasts
AsciiCasts
#
Railscasts 的圖文教學版 …
Railskits
#
當然你有能力開發、有能力改,但沒時間從頭開發,也可以從這裡買 Solution 回去改 …
5. Deep in Ruby / Rails
Advanced
Rails (O’Reilly)
難得真的有 Advanced 到的書
Writing Efficient Ruby Code (Addison Wesley shortcut PDF)
Code Review (Peepcode)
* Scale 與 Deploy
當站大了(code 變多, query 變多 , 活動變多 ) 以後就會遇到架構複雜 / 速度慢的問題。有幾個方向是可以鑽研的
1. 換掉 Ruby 。
well … Ruby 有很多種版本,也許你可以嘗試換上 Ruby Enterprise
節省記憶體以及改善 GC 。
2. 嘗試不同的 Web Server / Rails Web server,找出最適合的搭配。
Mongrel / Thin / mod_rails / FastCGI + Apache / Nginx / lighthttpd
都是可以嘗試的組合。
3. 使用 Rails
Metal
或拆散架構
Rails 不是萬能框架,也沒必要用 Rails 這種肥重框架單做簡單的事(如 API 的提供)。能改用其他語言或其他框架(Sinatra
)都是可以嘗試的方法
…。
Sinatra with ActiveRecord 的整合方法,我寫了一份 demo
放在 github 上。
4. 檢視 SQL Query 與 Code 效率。
可以使用 NewRelic
RPM
,監視整個網站。找出下的不好的 query,或者是寫的不好的 ORM 語法改善。
關於 ActiveRecord 的基礎與進階可以參考 RailsEnvy 出的 Advanced
ActiveRecord
和 Pragprog 出的 Everyday
ActiveRecord
。少用 join,多用幾個 select 達到同樣的效果,必要時自己手寫 query…
Code 效率可參考 “Deep in Ruby / Rails” 的書單 …
5. Scaling Rails
看完照著 tune,能 cache 的就 cache ..
6. Monitor
Hoptoad
#500
自動寄信 / 整理 log
God
#
監視誰死掉了,記憶體吃太多,自動重開 ….
7. Deploy
機器很多架構複雜,update code 重開麻煩。就寫個 Capistrano
Recipes 幫你的忙吧 …。也可搭配 Chef
。
8. EC2onrails
懶人架構,前提是要熟 EC2
與 Capistrano …
9. 雲端:Heroku
/ GAE
有興趣可以參考上個月我寫的這一篇的 Sinatra on the Cloud
。
其他 Scale 和架構 design 的東西就都屬於 General Scaling Knowledge,就不在這篇專講 Rails
的文章詳述下去…。
* 總結
練到最後其實就是固定訂一些重要的 feed 來看,有新東西就練和寫心得 …這樣會進步的非常快。只看書當然不可能比直接看 API 和
blog post 學的快…
介紹幾個消息來源是值得訂的:
RailsEnvy
Ruby on Rails
Official Blog
RubyInside
Dr. Nic
Yahuda Katz
Rick Olson
每一次當 Rails 界舉辦 Conf ,例如 RailsConf 2009
或者是 Acts as
Conference 2009
,其實也都還蠻多 slides 和 video 可以看,看完以後知識會長不少 ….
railsconf 2009 的 video
與 slides
act_as_conf 2009 的 video
希望提供這些資訊能讓大家對學習和練習有個方向….
分享到:
相关推荐
<br>第三天 完成《Ruby语言入门教程》,并上机调试 熟悉Ruby语言基本语法和常用函数<br>第四天 完成《Ruby语言进阶教程》,并上机调试 <br>第五天 按照《应用Rails进行敏捷Web开发.pdf》学习第二部分购物车示例。<br...
本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序的技能。同时你还能够通过一些进阶...
Camaleon CMS是基于Ruby on Rails 4和Ruby 1.9.3+的动态高级内容管理系统。 对于Ruby on Rails开发人员而言,Camaleon CMS是wordpress的替代方法。 Camaleon CMS是一个灵活的管理器,您可以在其中构建内容结构而...
学习资源 [在线 YAML 解析器](Online YAML Parser) 好文共分享 [Ruby 与多态](Polymorphism and Ruby) 书籍推荐 由于 ruby 和 rails 的版本迭代都很快,这就导致很多出版的 ruby 书籍过了几年都严重落伍,所以一定要...
一本Rails 4开发进阶教程,适合有一定开发经验的Ruby on Rails开发人员阅读
进阶报告 见解 坚固的仪表板 销售报告 趋势报告 搜索报告 进阶见解 管理员 场地规划和自动化 常见任务的工作流程 内联见解 搜索优先管理 评论 审核日志以进行更改 演示版 在安装通过在终端中运行以下命令来运行的...
前端技术: ... CSS :用于设计网页外观和样式的样式表语言。 JavaScript:用于在网页上实现交互性和动态效果的脚本语言。...Ruby on Rails:一个基于Ruby编程语言的Web应用框架,提供了高效的开发工具。
JSPrintManager从Javascript打印命令和文件,管理打印机和扫描文档是针对客户端打印和扫描方案的Javascript + Client App解决方案,旨在用于在任何Web平台(如ASP.NET,PHP,Django,Ruby On Rails(RoR),Express....
对C语言、Java语言/JavaEE系统、Ruby on Rails、Flex、Ajax等领域都有深入的研究:国内第一个Flex企业级上线项目核心开发者,属于国内最早一批应用Flex进行企业级开发的软件工程师;国内第一批Ruly on Rails架构的...
Code StyleGuides程序员能力矩阵VIM 进阶使用提问的智慧SOHO如何开始你的 SOHO 之旅Remote workingRemote working TipsRemote working 文章集锦我如何把薪水从 50人民币/天 提升到 100美元/小时的3远程工作资料整理...