ちょくちょくMy Outlook Todayの質問が外人さんからくるんだけど、開発を2年も放置している。
outook使ってた会社やめたってのがでかいけど、一応Officeのライセンスもってたけどもうoutookすらインストールしてない状態だし、Microsoft OfficeのバージョンアップせずにOpenOffice使ってる。。。
商用ならまだしも、趣味のプログラミングで自分が使ってないものをサポートするのはしんどい。
ただそれはそれはそれで使ってる人に失礼だと思うので、いま使っているGoogle CalendarでMy Google Todayってのを作ってうまくMy Outlook Todayも保守するってのが落としどころじゃなかろうか。予定とってくるところと、新規予定の作成だけ抽象化すればあとは共通化できるだろうと安易に考えてる。
しかし、久しぶりにWidgetのコードみたら自分のコードがあまりにひどくて心が折れそうになる。widgetにしてもwebアプリにしてもそうなんだけど、javascriptレイヤでUIも書いてしまうから、アプリレイヤ(ビジネスロジック)とUIレイヤ(プレゼンテーション)がごっちゃになってしまう。これじゃー再利用しづらい。
そんなわけでこんな風に作ろうと心に決めた。

widgetにはajaxでデータをとってきて表示するたぐいのものが多い。なのでなんらかのAjaxフレームワークを使いたい。実はいままでprototype.jsを使っていたのだけど、Ext JS CoreがMITライセンスになったのを受けてこれを使ってみることにした。
WALってのはもともと作ろうとしていたWidget Abstract LayerというYahoo WidgetとかSidebar Gadgetとかを抽象化するAdapter。これによってFoundationとApplicaitonレイヤのコードを再利用可能にする。
UIはwidgetによってアプローチが変わってくるのでこの部分は書き直しになるのは仕方がない。Yahoo WidgetやGoogle Desktop GadgetはUI層は独自のコントロールを持っているので独自の記述が必要になるし、Sidebar GadgetはIEなのでEXT JSとかYUIとかjqueryでwebアプリと同じように描画することもできる。このあたりの選択も自由だ。
UI層のコードを減らすためにはfuncationableなものはなるべくApplicationレイヤにねじこめばいい。一番シンプルなのはUI層にはupdateという描画更新の関数しかなくて、設定の変更やデータの変更のイベントをうけてupdateを呼ぶだけってのが良い。あとはApplication層でデータをとってきてUi層からとれるようにするだけでいい。そうすればUI層が書き直しになるといってもそれほど苦にならないはずだ。
new Text();… と書くのかdocument.createElement(“p”);…と書くだけの違いだけだというレベルにまで持って行けば移植しやすくなる。
19
2009
No Trackbacks
Trackback URL:
SEARCH
PROFILE
PORTFOLIO
WordPress Plugin
Movable Type Plugin
Firefox Extension
RECENT
Loading...
- Silverlight4(RC)の開発環境 - 2010-03-17 (水)
- コードは美なり - 2010-03-16 (火)
- symfonyのview.ymlネタ。というかyamlネタ。 - 2010-03-15 (月)
- FirefoxのID/PWの自動入力を抑止する - 2010-03-14 (日)
- DevFestをよりよくするネタを考えてみる - 2010-03-12 (金)
- github - 2010-02-16 (火) updated
- subversionからgithubへの移行 - 2010-02-16 (火) updated
- git - 2010-02-16 (火) updated
- Chrome Extension - 2010-02-10 (水) updated
- Movable TypeからWordPressへの移行メモ - 2010-01-16 (土) updated
- PukiWiki for WordPress TechnoCore - PukiWiki for WordPressをインストール - 2010-03-11 (木)
- iPad+電子版新聞は電車で普及するか attrip - 2010-03-04 (木)
- Chrome Extension makoto_kw - 2010-02-26 (金)
- Chrome Extension yotaroo - 2010-02-26 (金)
- Movable Type 4でSyntaxHighlighterを使うプラグイン makoto_kw - 2010-02-15 (月)
CATEGORY
TAG
はてな Trends
.NET
AIR
Apollo
aTunes
Cooking
Eclipse
git
Google
Google App Engine
Google Chrome
iPhone
iPhone SDK
iPod touch
Jailbreak
Janne Da Arc
jQuery
kwLabs
MacBook Pro
MacOSX
Movable Type
mRadio
MTOS
MTSmileVideo
My Outlook Today
Nico2Mobile
OpenSocial
PHP
Pixar
PSP
PukiWiki
PukiWiki for WordPress
saguri
sagurplayer
Silverlight
SongWidget
Sony
symfony
Twitter
W-ZERO3
WALKMAN.LOG
WordPress
x-jukebox.com
Yahoo Widget
YouTube
AWASETE YOMITAI
- LOADING...
powered by awasate.com
Comments