呼,脫稿好久,終於把最後的 Part 4 整理好了。雖說是 Sales,其實都是在強調行銷 Marketing 的重要性。其中 Closing the Gap 這兩章同時也收錄在 Joel 的 Best Software Writing 1一書當中,也可以說是這本書最總結的部分,非常值得一讀。 Read more…

今天看 AWDwR 2nd. 第16章 Migrations 的時候,有一節叫 When Migrations Go Bad,意思是說若跑 Migrations 的時候意外死掉,例如以下這種情況,table one好了,table two還沒…

def self.up do…
  create_table :one do …
  end
  create_table :two do..
  end
end

def self.down
  drop_table :two
  drop_table :one
end

此時要怎麼處理呢? up跟down進退不得呢,書上的解法很簡單,就是砍掉重練,把全部 table drop掉,重新跑一遍 rake db:migrate。

讓我印象深刻的是這招最後一節又提到一次。問題是說隨著 migrations 的累進,每個 schema 定義可能會散佈在各個 migration 檔案中,我們要如何一眼看懂每張 table 最後到底有哪些欄位?

方法一是看 db/schema.rb 檔,有全部的定義(Ruby form)

方法二是保持每張 table 只有唯一的 migration 檔案,有任何修改不要新增再 migration檔案了,而是用編輯的方式,每次有修改就砍掉重練即可。話說此招雖然跟 Migrations 版本累進的概念不同,但也是可以work。

方法三是裝 annotate_models plugin,每次有變動你只要跑 rake annotate_models,他就會在你的 model 自動加上 table column 註解,一目瞭然。用法跟結果可以參考這篇

題外話,今天系上有某老師進不去openwebmail,登入後吐 Internal error,我跟電腦助理最後的解法也是砍掉重練… :p (有種很遜的感覺)

Eirc Sink 開頭就提到在 smaill ISV 至少要有人得會基本的行銷概念才行。

作者把行銷跟程式設計類比在一起,程式設計的第一階段是 deisign,第二階段 implementation。行銷同樣也是兩個階段,第一是 strategy,第二才是 maketing communications(如打廣告)。奇妙的是大家都喜歡忽略第一階段的重要性…:p Read more…

Next Page »