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