經(jīng)過一個月充實(shí)的調(diào)整后(徒步自助游、攝影、打羽毛球,真懷念啊~~)。終于接到新的開發(fā)任務(wù)---開發(fā)一個可以解析、閱讀RSS的工具。該工具需要運(yùn)行在PC和手機(jī)端,換句話來說也就是要支持不同的終端版本。
對于開發(fā)人員來說,沒有什么比挑戰(zhàn)自己的能力更能讓人興奮地了!在接到開發(fā)任務(wù)并且和客戶進(jìn)行前期溝通后,對項(xiàng)目的需求有了一個基本的了解:
需求雖說不多,但每一個都不是省油的燈。包括了RSS解析引擎和閱讀器,仔細(xì)分析了一下這些需求,發(fā)現(xiàn)重難點(diǎn)和技術(shù)點(diǎn)集中在下面幾個:
◆軟件必須適應(yīng)不同的終端,不同的訪問方式,不同版本的協(xié)議。對設(shè)計(jì)通用性要求較高
◆軟件必須解析和生成XML,涉及到大量的字符串和格式處理。對XML和性能要求較高
◆軟件必須具備實(shí)時監(jiān)控功能,且具備主動推送功能,對多線程和異步通訊要求較高
◆軟件必須支持不同的持久化方式,對緩存和持久化要求較高
◆軟件必須支持基于全文的搜索,對搜索技術(shù)有一定要求
◆軟件界面必須是支持拖拽功能的,對GUI和Ajax有一定要求
基于上面的分析結(jié)果,首先制定開發(fā)計(jì)劃,劃分階段任務(wù):
Phase 1: Prototype構(gòu)建
此階段的主要任務(wù)是過濾需求中最基本最核心的部分---RSS feed的解析和生成。沒有了對RSS的解析和生成一切都是空談,細(xì)化下來則包括了:
◆讀入既有RSS文件和解析
◆構(gòu)建新的RSS文件和保存
Phase 2: 階段更新和提醒功能
此階段的主要任務(wù)是在Phase 1的基礎(chǔ)上fix bug,增加了后臺對RSS消息源的階段檢查、更新及提醒功能。細(xì)化下來則包括了:
◆修正Phase 1的bug
◆定期檢查RSS消息源是否有更新
◆同步更新RSS feed文件
◆提醒RSS訂閱客戶
Phase 3: 全文搜索和二次過濾功能
此階段的主要任務(wù)是在Phase 2的基礎(chǔ)上fix bug,增加了對RSS工具獲取到的news進(jìn)行二次過濾。細(xì)化下來則包括了:
◆對訂閱結(jié)果進(jìn)行二次過濾(即在RSS自動獲取的內(nèi)容基礎(chǔ)上進(jìn)行過濾)
◆對訂閱結(jié)果進(jìn)行全文搜索(即在RSS自動獲取的內(nèi)容基礎(chǔ)上進(jìn)行關(guān)鍵字搜索)
Phase 4: 持久化功能
此階段的主要任務(wù)是在Phase 3的基礎(chǔ)上fix bug,增加了對內(nèi)存數(shù)據(jù)庫和傳統(tǒng)數(shù)據(jù)庫的持久化支持。細(xì)化下來則包括了:
◆支持使用hsqldb進(jìn)行內(nèi)存數(shù)據(jù)庫的讀取和存儲
◆支持使用Hibernate進(jìn)行傳統(tǒng)數(shù)據(jù)庫的讀取和存儲
Phase 5: 導(dǎo)入導(dǎo)出和收藏功能
此階段的主要任務(wù)是在Phase 4的基礎(chǔ)上fix bug,增加了OMPL的導(dǎo)入導(dǎo)出功能。細(xì)化下來則包括了:
◆導(dǎo)入其他OMPL文件到閱讀器
◆導(dǎo)出閱讀器的訂閱列表為OMPL文件(支持不同的協(xié)議和版本)
◆喜愛文章的收藏功能
Phase 6: PC B/S版的閱讀器開發(fā)
此階段的主要任務(wù)是在Phase 5的基礎(chǔ)上fix bug,開始進(jìn)行基于瀏覽器的閱讀器開發(fā)。細(xì)化下來則包括了:
◆閱讀器工具欄(包括OMPL導(dǎo)入導(dǎo)出工具,偏好設(shè)置工具,及其他工具)
◆閱讀器訂閱列表(支持自動排序和手動拖拽排序,支持目錄管理)
◆閱讀器新聞列表(顯示RSS最新更新的新聞的標(biāo)題)
◆閱讀器內(nèi)容窗口(顯示選中新聞的內(nèi)容)
◆閱讀器搜索窗口(顯示搜索框,搜索結(jié)果將分別在新聞列表和內(nèi)容窗口顯示)
◆閱讀器收藏窗口(顯示用戶收藏的通過RSS閱讀器獲取的文章)
◆閱讀器和解析引擎的通訊
目前初步的計(jì)劃就是開發(fā)出B/S版的RSS閱讀工具,畢竟B/S是以后發(fā)展的主流。基于C/S模式的軟件也許在實(shí)時提醒上實(shí)現(xiàn)起來比B/S要相對簡單一點(diǎn)(因?yàn)闉g覽器是典型的“拉”方式獲取數(shù)據(jù),必須用戶主動地刷新頁面去更新數(shù)據(jù)),但是自從Ajax技術(shù)出現(xiàn)后這已經(jīng)不是問題了。
先從最熟悉的J2EE Web開發(fā)開始。Come on ! Kick off~~
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2009-12-18 12:14
Paul Lin 閱讀(313)
評論(0) 編輯 收藏