Rails 學習感想

后端(應用層)不同于前端,最重要的概念是 middleware/pipeline.

Rails能較為深入的理解一定要建立在對后端整體架構理解架構的基礎上,不然就會進入開始很爽越來越暈的尷尬節(jié)奏。

大致分為兩大部分:Server/App,一個負責接收分發(fā) request,一個負責業(yè)務邏輯,他們之間的數據對接靠 Rack 規(guī)范。Server 具體可參考這篇文章。而 App 部分就是 Rails。

Rails干的活一句話就是一個按照 Rack 標準數據格式化的 Request 進來,分析url,分配給它一個 Handler 方法處理:

  1. 解析 url 參數,HTTP header/body
  2. 身份驗證,權限驗證
  3. Database操作
  4. 渲染需要返回的數據(html/json)

當然為了控制 App 的邏輯復雜度,Rails 采用 MVC 架構,遵循 convention over configuration,don't repeat yourself 理念,盡量將 Server API 設計的 restful.

Rails 重要的組件都是根據 Handler 來,ActionController,ActiveRecord(ORM),ActiveView(view).

然后對一個項目還有:配置,第三方庫管理(bundler),測試(RSpec/factory_girl)

這里要提一下Rspec,對于魔法語言 Ruby 來說,只有相對完善的測試(最好TDD)心里才踏實,推薦一本書《Everyday Rails Testing With RSpec》。

有時有些 Request 是好是操作,我們需要后臺任務,需要了解 sidekiq.
對于 HTML 有時可能需要 Cache,這時簡單粗暴的內存KV數據庫 memcached。

有哪些地方容易寫出坑:

  1. 低效 SQL,所以對 SQL 也要有一定了解,知道一個鏈式 ActiveRecord 操作背后執(zhí)行的哪條 SQL,而且對所用數據庫(MySQL/Postgresql/MongoDB)有一定了解。
  2. 盡可能不要在 View 中寫業(yè)務邏輯。
  3. Controller 中有過多邏輯。
  4. 當我們把邏輯從 Controller 遷入 Model,Model 會迅速臃腫起來。

對 Ruby 的理解需要達到什么程度?看懂《Ruby元編程》。

拓展閱讀:

再談 API 的撰寫 - 架構-程序人生

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Awesome Ruby Toolbox Awesome A collection of awesome Ruby...
    debbbbie閱讀 3,088評論 0 3
  • 楊城篇(四) “楊城哥,我暫時不要你給我好處,你答應我件事,至于什么事,等我想好在告訴你,好不好?!?“嗯,好好。...
    思定城閱讀 7,730評論 0 1
  • 我拿著墨鏡 墨鏡中有倒影 你站在十字路口 駐足凝望 你上了電車 我下了電車 那一瞬 我覺得離你 很近 又很遠 (圖...
    insensation壁紙閱讀 217評論 0 0

友情鏈接更多精彩內容