posts - 262,  comments - 221,  trackbacks - 0

          經過一個月充實的調整后(徒步自助游、攝影、打羽毛球,真懷念啊~~)。終于接到新的開發任務---開發一個可以解析、閱讀RSS的工具。該工具需要運行在PC和手機端,換句話來說也就是要支持不同的終端版本。

          對于開發人員來說,沒有什么比挑戰自己的能力更能讓人興奮地了!在接到開發任務并且和客戶進行前期溝通后,對項目的需求有了一個基本的了解:

          需求概況◆RSS閱讀器必須支持運行在PC、手機終端
          ◆RSS閱讀器運行在PC終端還包括C/S和B/S形式
          ◆RSS閱讀器必須支持實時提醒(就像QQ的消息提醒那樣)
          ◆RSS閱讀器必須支持搜索功能(即關鍵字的全文搜索,二次過濾)
          ◆RSS閱讀器必須支持排序功能(即自動排序和手動拖拽排序)
          ◆RSS閱讀器必須支持目錄功能(即把相關的RSS頻道組織在同一個目錄下)
          ◆RSS閱讀器必須支持0.9x,1.0,2.0的協議
          ◆RSS閱讀器必須支持基于內存和關系的數據庫持久方式
          ◆RSS閱讀器必須支持OMPL的導入和導出功能
          ◆RSS閱讀器可選支持對文章的收藏功能

          需求雖說不多,但每一個都不是省油的燈。包括了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~~


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-12-18 12:14 Paul Lin 閱讀(312) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴楚县| 宜宾县| 阳春市| 南昌县| 化德县| 达尔| 牙克石市| 浮山县| 奉新县| 吴川市| 香格里拉县| 榆树市| 庄河市| 中阳县| 鄯善县| 晋州市| 故城县| 寻甸| 东城区| 玉门市| 射洪县| 都兰县| 双柏县| 白玉县| 诸暨市| 乌苏市| 弋阳县| 西青区| 高唐县| 乌兰察布市| 黄陵县| 松阳县| 珠海市| 常州市| 慈利县| 大方县| 庆阳市| 宜兰市| 鄂伦春自治旗| 盐边县| 萨嘎县|