iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
自我挑戰組

富士大顆系列 第 12

vol. 12 Rails 裡的設計原則 CoC:9大慣例提升你的開發速度!

  • 分享至 

  • xImage
  •  

你好,我是富士大顆 Aiko
這個會被問到爛的概念,你一定要知道
CoC = Convention over Configuration 慣例優於設定


簡單介紹常見的 Rails Conventions:

Ruby on Rails(簡稱 Rails)是一個基於 Ruby 的網頁框架,它有一個很重要的設計原則叫做 Convention over Configuration(慣例優於設定,COC)。這個原則讓開發者可以用更少的程式碼和設定來完成更多的事情,最重要的就是開發速度RRR。以下介紹一些 Rails 中重要的慣例:

  1. 資料夾結構(Directory Structure): Rails 有一個特定的資料夾目錄結構,如 app/models 存放模型(Model)、app/controllers 存放控制器(Controller)等。

  2. 命名規則(Naming Conventions): Rails 對類別名稱、資料表名稱等都有特定的命名規則。例如,一個名為 User 的模型會對應到名為 users 的資料表。單複數在一開始真的會滿難記得,所以多寫來加深印象吧!另外 Rails 使用駱駝式命名法(CamelCase)用於類別(class)名稱,而蛇型命名法(snake_case)用於變數和函式名稱(function)

  3. 路由(Routing): 在 config/routes.rb 檔案中定義 Routs。Rails 會依照 RESTful 架構去設計路由,並預設使用七個基本的 CRUD 操作(index, show, new, create, edit, update, destroy)。直接送,真的是直接送給你。

  4. 資料庫遷移(Database Migrations): 使用 rake db:migrate ,可以更改資料庫結構而不需要手動調整 SQL。例如:執行 rails generate migration AddEmailToUsers email:string 會生成一個migration 遷移檔案,接著執行 rails db:migrate 就會將 email 欄位加入 users 表。

  5. ActiveRecord: 這是 Rails 的 ORM(Object Relational Mapping)工具。不需要寫 SQL 語法來進行資料操作,Rails 會根據模型和資料表的命名和結構來對映。例如:User.find(1) 會找到 users 表中 id 為 1 的記錄,而不需要寫 SQL 指令: SELECT * FROM users WHERE id = 1 LIMIT 1

  6. DRY(Don't Repeat Yourself): 不要重複。這不僅是 Rails,也是一般程式設計的好原則。Rails 提供各種方式(例如,partials, helpers, concerns)來讓你遵循這個原則。例如:使用partial _form.html.erb 來rend 重複樣貌表單的 HTML 程式碼。concern 則可以把「通用的或相關的方法」集中成一個 concern,再讓 Concern 包含在多個 Module 裡,讓多個 class 可以共用。Concern 就是 Ruby 裡的 module,需要使用的時候是引入,而非類別方法的繼承。

  7. Strong Parameters(強型別參數,俗稱洗資料): 在控制器中,為了安全考量,Rails 4 以上版本需要明確指出哪些參數是允許傳送來進行資料庫操作的。例如:在 Controller 中使用 params.require(:user).permit(:name, :email) 來限制允許 nameemail 參數進來操作。

  8. Asset Pipeline(資源管道): 統一管理 JavaScript、CSS 和圖片等前端資源,使之更容易開發和維護。例如:將所有的 CSS 檔案放在 app/assets/stylesheets 目錄下,Rails 會自動將它們合併和壓縮。也比較好找~

  9. I18n(國際化): Rails 內建支持多語言,讓你可以輕鬆地將應用程序本地化。例如:使用 I18n.t('hello') 在不同的語言設定下顯示不同的問候語。


以上這些都是 Rails 中不可或缺的慣例和設計原則,讓開發更快速、更高效。遵循這些慣例,你會發現自己可以用更少的時間和精力來建立功能豐富、可維護的應用程式。
下一篇來介紹 MVC !


上一篇
vol. 11 Ruby on Rails 是什麼?基礎入門概念介紹
下一篇
vol. 13 Rails 的精髓 MVC 架構:不只是概念還有用法,專案開發不再害到人
系列文
富士大顆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言