PIXNET Logo登入

Always on Rails

跳到主文

xdite 主筆的 Ruby on Rails 部落格

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 07 週五 200912:43
  • Set Your Server Right

Set Up Your Server Right, Part 1

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(89)

  • 個人分類:Deployment
▲top
  • 8月 03 週一 200911:37
  • [Basic] Git Basics at Rails

Git Basics at Rails Underground
View more presentations from Ariejan De vroom.

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(118)

  • 個人分類:Deployment
▲top
  • 8月 03 週一 200911:31
  • Rails I18n From The Trenches

Rails I18n From The Trenches
View more documents from clemensk.

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(152)

  • 個人分類:Development Tips
▲top
  • 7月 22 週三 200910:42
  • Pragmatic Patterns of Ruby on Rails

這份投影片做了摘要

Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
View more documents from nay.

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(204)

  • 個人分類:Development Tips
▲top
  • 5月 28 週四 200921:52
  • [懶人] Ubuntu / Debian + nginx + mod_rails

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(448)

  • 個人分類:Deployment
▲top
  • 5月 28 週四 200921:30
  • [懶人] Youvegotrails - 自動產生 Rails Template

yougotrails.png

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(219)

  • 個人分類:Deployment
▲top
  • 5月 28 週四 200920:42
  • Roodi - parses your code and warns you about design problems.

Roodi

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(50)

  • 個人分類:Ruby Gems
▲top
  • 5月 28 週四 200920:39
  • Flay - finds code duplication in your project.

Flay

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(50)

  • 個人分類:Ruby Gems
▲top
  • 5月 28 週四 200920:27
  • [Scale] Scaling Rails Application 的五個小技巧

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(157)

  • 個人分類:Scaling Tips
▲top
  • 5月 28 週四 200919:36
  • 進階學習 Ruby on Rails (2009)

原文連結

上一篇提及了一些入門必練的基礎。而現在要繼續寫的是進階篇。大致分為兩個方向:隨心所欲整合 / 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。

(繼續閱讀...)
文章標籤

rails 發表在 痞客邦 留言(0) 人氣(974)

  • 個人分類:General Turtorial
▲top
«123»

最新文章

    文章搜尋

    熱門文章

    • ()深入淺出 RoR (1)
    • ()深入淺出 RoR (2)
    • ()深入淺出 RoR (3) - 目錄結構
    • ()深入淺出 RoR (4-1) - 打造你第一個 Rails Project
    • ()深入淺出 RoR (4-2) - Post 的 CRUD
    • ()深入淺出 RoR (4-3) - RESTful 與 CRUD action
    • ()Ubuntu 上跑 apache mod_proxy 的注意事項
    • ()如何入門 Ruby on Rails?(2009)
    • ()進階學習 Ruby on Rails (2009)
    • ()[Basic] 一些新手學習 rails 可以當做 example 的 application

    文章分類

    toggle Rails 教學文章 (2)
    • General Turtorial (0)
    • 深入淺出RoR (0)
    toggle Rails (3)
    • Development Tips (0)
    • Deployment (0)
    • Scaling Tips (0)
    toggle Plugin & Gems (1)
    • Ruby Gems (0)
    • 未分類文章 (1)

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣: