0335期:Yahoo Pipes 的日期時間處理

作者:CGS •  日期:2009/12/24  •  類別: 程式漫談 ;•Friendly Print ;•

  

昨天寫的 Yahoo Pipes 文章(0334期)中提到了用一個 Datee Formatter 來轉換日期時間格式,原始的版本在 http://pipes.yahoo.com/pipes/pipe.info?_id=xMo_xxo23BGLjCC91fC6Jw ,不過回家後細想了一下,原作者似乎只是為了創造一個 RSS 的物件而去做讀取網頁的動作,所以讀取的網頁必須穩定,而且回應很快速(預設去抓 Google News),然後他再去對 pubDate 及 y:published 的所有欄位作取代的動作。

Yahoo Pipes Date

回頭思考一下邏輯與效能,每一次轉換都要做網頁的讀取是很奇怪的思考,萬一要轉換 100 筆資料,不就讀了 100 次網頁,如果我們能自己製作出單筆的 RSS Item,那就可以省下這些讀取的時間。其實 Yahoo Pipes 有一些其他內建的元件可以取代。

於是我改寫了 Date Formatter ,用原本的 RSS Item Builder 元件來製作單一筆 RSS Item ,將轉換後的時間拋進 RSS Item Builder ,我一開始時是將 Date Input 轉換出來的時間值直接放在 pubDate 中,RSS Item Builder 元件會產出 pubDate 及 y:published ,兩個都是日期時間格式,與 Yahoo Pipes 要求正規的 pubDate 是字串, y:published 是日期不同,於是再 Rename 元件任意的把任意字串放進 pubDate ,再以 Date Formatter 產出的日期字串覆蓋上去。

Yahoo Pipes Date

最後的版本(程式的網址請見 http://pipes.yahoo.com/cgspipes/dateformat )又再思考了一下,其實 RSS Item Builder 如果直接設定格式化好的日期字串進去,pubDate及 y:published 就不用轉換了,於是我改寫了最後的版本如下。用 Date Input 元件輸入日期,然後製作成標準的日期字串,再送進 RSS Item Builder 做成 RSS Item 即可。

Yahoo Pipes Date

偶爾都會有人會問我程式設計是如何學習,程式效能又是如何去改變,就拿這個日期程式不斷調整的過程為例,通常我自己為盡量使用我所知道的方法來解決問題,但是如果試了一陣子,由於自己的思路是有所局限,回頭看看別人怎麼解決類似的問題,就像我會先去找到一個 Date Formatter ,經過這樣的程式處理,產生出來的日期時間是正確無誤的。

接下來我們就可以慢慢的研究對方的程式是如何運行的,可以把這樣的技巧先改寫到自己的程式之中,讓程式先產生出來正確的結果,最後再想辦法來調整效能的問題。透過不同的模仿與嘗試,自己對程式開發的工具也會更了解和熟悉。

先求正確的解答,再來求好求快,中間可能也會遇到改寫後,發生一些新的問題,慢慢的調整與改變,最後總能找到一個比較令人滿意的解答,為什麼程式剛寫出來的第一版通常不會是最好的版本,大約到了第三、四版才會令人驚豔,有時也是相同的道理。



« 上一篇文章下一篇文章 »

Add this page to MyShare  Add this page to Hemidemi  Add this page to Yahoo  Add this page to FunP  Add this page to udn  收藏到Fiigo書籤  加入此網頁到 YouPush  Diigo it  Add this page to del.icio.us
引用
目前沒有任何引用.
使用 引用文章網址l 來通知本網站關於您的引用文章(按右鍵,複製捷徑).
引用本站文章需經過人工審核 ,所以如果你的引用沒有馬上出現 ,請稍待站長處理 .
如果你的部落格不支援引用 ,你可利用 此視窗手動加入你的引用.

留言

沒有任何評論 ,您可以寫下您的意見!

留下你的意見