RailsFun-0907筆記
Table of Contents
受到朋友的邀請
藉著這機會參加了一直很想去但又沒去的 RailsFun 聚會
得到了蠻多新知識
在下次聚會之前可以來好好研究一下
Gitflow ¶
如何利用 git branch 來協助軟體開發,在幾年前就有人提出了 gitflow 的概念
以下是幾篇推薦的文章:
Bear 實驗室: 什麼是Git flow ? 如何在SourceTree使用Git flow管理開發!
Ruby Web Crawler ¶
利用 rest-client 抓取網頁,並用 nokogiri 解析取得想要的資訊
在開始開發網頁爬蟲以前,需要先對爬取的網頁進行分析
分析的工具可以使用 Google Chrome 的開發者工具來檢視網頁內容,以了解資料的呈現規則
有些需要帶有參數的網頁,可以透過開發者工具網路的頁籤檢視請求內容
開發一個簡單的網頁爬蟲首先要能夠取得頁面,透過 rest-client 可以很容易的發送帶有參的送請求
再來需要將回傳的頁面透過 nokogiri 進行解析
nokogiri 解析後的回傳的物件,我們可以透過所提供的方法,依 css selector 取得所要的資料
以下是有使用到的 gem:
rest-client 用來取得網頁
nokogiri 用來解析網頁
pry 方便除錯
awesome_print 可以將變數內容顯示的較為美觀
Regex Practice ¶
在解析網頁時常常會利用正規表示式來處理,以下是好用的參考網頁
Use ActiveRecord in Ruby Script ¶
希望能夠將網頁爬蟲抓取的資料寫進資料庫,可以使用 active-record
這裡需要紀錄資料庫連線資訊的 database.yml
,這份檔案可以從任一 Rails 專案中取得範本
將 database.yml
放在目錄下,便可以透過以下程式碼,讓 ActiveRecord 載入資料庫連線資訊:
require "active_record"
require "yaml"
database_config_file_path = "#{__dir__}/database.yml"
ActiveRecord::Base.establish_connection(
# load development environment setting
YAML.load_file(database_config_file_path)["development"]
)
但如何建立資料表跟 Model 呢?
最簡單的方法就是開一個 Rails 專案跑 Migration 吧 :P
一些有關rails model欄位設計的原則 ¶
分享了一些實務上的經驗:連結
推薦的 gem:
enumerize 有些欄位的值是有限選項的,譬如付款狀態,這時在資料庫可以用整數型態儲存,在程式中則用比較有意義的名稱來操作。這個 gem 支援 simple_form 18n ,在最下拉式選單的時候很方便
default_value_for 以往除了在資料庫設定預設值,有時也需要用 before_save 來設定,使用這個 gem 能夠少寫一些程式碼
uidable 幫助產生 uid 欄位的值,預設使用
Array.new(10){[*'a'..'z', *'0'..'9'].sample}.join
產生亂數,但也可以透過覆寫gen_*
方法使用自己的產生邏輯awesome_nested_set 用來儲存樹狀結構的 gem
Database Comparition ¶
memcached 超級快,但只有鍵值結構的存取方式
redis 很快,支援許多資料結構
mongodb javascript 的好朋友
elasticsearch 很熱門的搜尋引擎
ssdb redis 的替代方案?
couchdb 可以直接開出 WEB API 存取資料