ごぶさたしてました

例によってまた超久し振りだったりします。あーそういや前回(1年以上前)はRoRについてやってたっけなーと読み返してしみじみしてしまう程度には時間が空いてしまいました。そのRoRはといえば、2ヶ月そこらでプロジェクトが解散してしまいまして。それ以降使わずじまいだったりします。もったいないなあ。おうちにRubyの本はあるので再度読み返そうかな・・・。
でその後は延々LAMP現場に送り込まれて、業務的なあんちょこは溜まる一方だけど技術的には特に書くこともないよーな状態で。いやMySQLの関連でメモっておくようなものはあるっちゃあるんですが、なんとなく書かずに今に至るのです。

そればっかりじゃやっぱりいかんよなーと思い、ちょっと前に勉強し始めたのがCoffeeScript
なぜCoffeeScriptよ?という感じですが、元々は「iPhoneアプリ作りたいなー」が発端で。

iPhoneアプリ作りたいなー
 ↓
でもC++できないからObjective-Cだと完全にいちからになるなー
 ↓
Titaniumってどう?
 ↓
これはいい!
でもJavaScriptjQueryを使ってちょこっと書けるぐらいのレベルだし、大して書ける訳じゃないからなあ
 ↓
最近CoffeeScriptっての流行ってるっぽいよ
 ↓
ソース読みやすい!RubyとかPythonっぽい!(段落が)
 ↓
よし覚えよう

こういう流れで、現在はHerokuに既存サイトをスクレイピングして表示するサイトとか、mongoDBを使ってちょろっとデータ表示するサイトをお試し作成中です。まだiPhoneアプリまで全然届いてません。
GitとかHerokuとか、新しいものを試行錯誤しながら使うのはやっぱ楽しいですなー。(職場ではCVSSVNだったので・・・)
この辺はそのうち書きたいです。

Rubyの例外処理をPHPと比較してみるよ

というか、まあ比較しながらじゃないと私が分からないだけなんだけど。

catchとthrow

Rubyにおいてcatch・throwはループ処理のメソッドで、例外処理とは全く関係ない。例外処理はraise・rescueメソッドを使う。

catch
ループを抜け出す為のラベルとして使う。
throw
設定されたcatchに抜ける為のメソッド。

throwはイメージとしてgotoみたいな感じ?

catch :ラベル名 do
  処理
  処理
  for ほげほげ do
    処理
    throw :ラベル名 処理条件
  end
  処理
  処理
end
# ← throw :ラベル名 に引っかかったらここに抜ける

こういうこと?

例外処理

try〜catch〜exception は、Rubyだとこんな感じになる。

begin
  処理
  処理
rescue Exception => e
  エラー処理
ensure
  エラーに関係なく必ず通る処理
end

PHPでいうところの

try {
  処理
  処理
}
catch (Exception $e) {
  エラー処理
}
finally {
  エラーに関係なく必ず通る処理
}

と同じ。

画面ロード時にメッセージをフェイドアウト

前も使ってたんだけどいざもう一度使おうとしたら思い出せなくて、きっとまた忘れると思うのでメモっておく。

JavaScript:

$(function(){
    $(".notice").fadeOut(6000);
});

HTML:

<p class="notice">ほげほげ</p>

こんな感じで書いておくと、HTMLファイルロード時にnoticeクラスを指定したタグがじわーっとフェイドアウトする。
タグには

.notice {
  background-color: #5C832F;
  color: #fff;
  padding: 4px 10px;
  margin-bottom: 10px;
}

とかスタイル指定しとくと見た目よろしくていいかも。後は左端をパディング取って背景画像張ってみるとか。


参考:jQuery日本語リファレンス