9/27/2006

十年之前

Ruby on Rails 另一個讓我感到很驚訝的部份
就是他製作 lib 的想法,完全遵照 The Ruby Way
一切以為人為本

當你的程式越接近人的語言
那你程式就越好維護

不了解我的意思嗎?
給個小範例
if Time.now - session[:last_login_time] > 3600
上面這段代表什麼意思,如果上次 login 的時間距離現在的時間只要超過 3600 秒(也就是一小時)就成立

我們可以改成
if Time.now - session[:last_login_time] > 3600.seconds
上面這段什麼意思,跟上面一模一樣

我們還可以改成
if Time.now - session[:last_login_time] > 1.hours
上面這段什麼意思,跟上面一模一樣

最後最後我們還可以改成

Session[:last_login_time] < 1.hours.ago

所以陳奕迅的歌可以改成 10.years.ago

當然還有 1.hours + 2.days 這樣的搞法@@!

本 lib 是 Rails 裡面的 ActiveSupport::CoreExtensions::Numeric::Time
要在Ruby 裡面使用請先宣告
require 'active_support'
然後就可以使用啦
當然啦,沒有 metaprogramming 觀念的語言是搞不出這種玩意的:p


1 意見:

匿名 提到...

Протасовская диета отзывы
http://bistro-pohudenie.ru/silnie-dieti.php
Худей быстро и бесплатно
http://pohudenie-diet.ru/dieta-medvejonki.php
Азартные игры, казино онлайн
http://stavka-casino.ru/samoe-luchshee-kazino-internet.shtml
Продажа элитных копий часов
http://major-watch.ru/kupit-chasi-raymond-weil.shtml
Простутитки Москвы и Петербурга
http://prostitutki-moskva-peterburg.ru/shlyhi-sao-moskva.shtml

[url=http://bistro-pohudenie.ru/samaya-efektivnaya-dieta.php]Протасовская диета отзывы[/url]
[url=http://pohudenie-diet.ru/kak-delat-klizmu-dlya-pohudeniya.php]Худей быстро и бесплатно[/url]
[url=http://stavka-casino.ru/jimmy-eat-world-big-casino.shtml]Азартные игры, казино онлайн[/url]
[url=http://major-watch.ru/kupit-chasi-seiko-peterburg.shtml]Продажа элитных копий часов[/url]
[url=http://prostitutki-moskva-peterburg.ru/prostitutki-shlyhi-individualki-moskvi.shtml]Простутитки Москвы и Петербурга[/url]

Протасовская диета отзывы
Худей быстро и бесплатно
Азартные игры, казино онлайн
Продажа элитных копий часов
Простутитки Москвы и Петербурга