歡迎繼續關注開源項目CnblogsFan, 如果你是首次看到這個項目, 點擊此處查看有關該項目的詳細介紹。
在完成對項目的概述設計后, 就可以根據概述設計的內容對項目各個組成模塊逐步細化, 也就是我們所說的詳細設計。詳細設計在項目開發的整個步驟中是十分重要的一步, 好的設計是項目成功的前提, 詳細設計直接決定着軟件的質量以及軟件在以后維護過程中的難易程度。更多關於詳細設計的介紹請點擊這里。
同概述設計中介紹的那樣, 由於項目的側重點在對功能實現的分析上, 所以這里的詳細設計也是屬於簡略版, 不涉及某個功能的具體算法, 而在規范的詳細設計當中, 這些都是必要的, 對於功能模塊的具體算法將在下一步的編碼過程中配合代碼以隨筆的形式介紹。
在這里我們主要介紹項目各模塊的結構、工作流程, 以及編碼過程中標識符命名協議、注釋協議以及開發文檔的描述協議, 同時, 對開發過程中可能使用到的參考資料進行說明。
一、模塊的結構
1>. UI模塊
UI(User Interface, 用戶界面), 是用戶最能直接感受到的模塊, UI模塊設計的質量決定着軟件操作難易程度, 以及用戶對該軟件的第一印象。在本項目中, 對UI模塊的初步設計如下:
1>. 采用單文檔界面(SDI, Single Document Interface);
2>. 允許調整窗口大小, 但有最小尺寸限制;
3>. 能將窗口最小化到系統托盤。
UI模塊結構圖示如下:

關於CnblogsFan主界面的初步設計草圖如下:

2>. 隨筆采集模塊
隨筆采集模塊是對網頁信息收集的過程, 是從整體角度來說, 整個隨筆采集模塊是對隨筆過濾模塊、信息收集模塊、數據分析模塊、版權聲明模塊以及數據存儲模塊的一個組合。 下面對一個采集最小單位進行圖示描述:

3>. 數據分析處理模塊
數據分析處理模塊用來處理網頁上的隨筆信息, 對隨筆內容進行整理加工, 使其滿足需求規定中的要求, 數據分析處理的流程為, 從符合采集的任務隊列中獲取網頁 --> 分析隨筆正文格式以及相關資源的鏈接 --> 得到采集結果 --> 調用版權聲明模塊對采集結果進行版權聲明 --> 寫入本地。相關圖示如下:

4>. 配置管理模塊
關於CnblogsFan配置管理的配置存儲將使用Python自帶的數據存儲模塊進行, 配置管理的相關圖示如下:

5>. 初始化模塊
初始化模塊用於通過配置管理模塊讀取軟件配置信息完成對軟件的初始化, 這個過程相對較於簡單, 不再進行圖示說明。
二、標識符命名協議
1>. 局部變量命名
采用*類Java*式風格命名法:首單詞小寫,其余單詞首字母大寫。
> editBlack
badClock
isFile
2>. 全局變量命名
采用去掉類型前綴的*Windows式*命名法:單詞首字母大寫。
> AppName
TimerCount
IsGameStarted
3>. 成員變量名
①. 靜態成員變量
采用**全局變量命名**的方式。
②. 普通成員變量
采用**局部變量命名**的方式,開頭加一個下划線。
> _editBlack
_isFile
_give
4>. 控件變量名
控件變量名采用控件縮寫作為前綴的命名法。
各個控件的縮寫:
| 控件 | 縮寫 |
| 按鈕 | btn |
| 文本框 | txt |
| 標簽(StaticText) | lbl |
| 列表框 | lst |
| 組合框 | cbo |
| 復選框 | chk |
| 單選框 | rdo |
| 列表控件 | lstctl |
| 樹形控件 | tree |
| 框 | box |
| 進度條(Gauge) | gue |
| 動畫控件 | ani |
5>. 方法/函數命名
①. 獨立函數
采用*傳統C風格*命名。
> get_files()
set_global_text()
②. 成員方法
采用*類Java式*命名。
> getFiles()
setGlobalText()
③. 事件響應方法
同成員方法相同,前面加上'on'。
> onClick()
onDocumentComplete()
6>. 類型名
采用單詞首字母大寫式命名。
> class DirectUI:
class AbstractBase:
7>. 模塊名/文件名
采用單詞首字母大寫式命名。
> SearchingDlg
KumquatRoot
MainDlg
三、注釋協議
由於是對項目實現過程進行分析, 所以關於注釋部分盡可能做到詳細, 在規范上遵循一般的注釋規范, 這里就不在重復。
四、開發文檔描述協議
遵循 Markdown 語法。
五、可能使用到的參考資料
1>. Python基礎教程(第2版)
作者 : 赫特蘭(MagnusLieHetland)
2>. wxPython in Action
作者:Harri Pasanen、Robin Dunn
3>. Python v2.6 documentation
4>. wxPython reference
經過詳細設計的步驟后, 下一步就是進入項目的編碼階段了, 歡迎繼續關注CnblogsFan開源項目的最新進展。
項目地址: https://github.com/mrwid/CnblogsFan
-------------------
Wid, 2012.10.12
下一篇: 開源-一步步實現cnblogs博客采集工具-實現主界面布局
上一篇: 開源->一步步實現cnblogs博客采集工具->概要設計
