1.需求規格說明書完善
1.1 不足之處修改
- 修改了目錄順序
- 增加了一般約束,外部介面需求,功能驗收標準
- 增加了一個伺服器(web)的介面以及管理員類
1.2 Github連結
2.編碼規範
(以SUN的標準Java程式碼規範為基礎)
2.1包名
使用小寫字母如 xxx.settlment。
單詞間不要用字元隔開,比如 settlment.jsfutil,而不要settlement.jsf_util。
2.2類名
- 首字母大寫。比如 SupplierService。
2.3方法名
- 首字母小寫,如 addOrder() 。
- 動詞在前,名詞在後,如 addOrder()。
2.4域名
- 靜態常量全大寫用下劃線分割,如
public static find String ORDER_PAID_EVENT = "ORDER_PAID_EVENT";
- 列舉全大寫,用下劃線分割,如
public enum Events {
ORDER_PAID,
ORDER_CREATED
}
- 其他首字母小寫,駱駝法則,如:
public String orderName;
2.5區域性變數名
- 引數和區域性變數名首字母小寫,駱駝法則。儘量不要和域衝突,儘量表達這個變數在方法中的意義。
2.6行寬
- 行寬度不要超過130。
2.7域格式
- 每行只能宣告一個域。
- 域的宣告用空行隔開。
2.8空格的使用
- 二元三元運算子兩邊用一個空格隔開。如下:
a + b = c;
b - d = e;
return a == b ? 1 : 0;
- 逗號語句後如不還行,緊跟一個空格。如下:
call(a, b, c);
2.9 縮排風格
- 大括號的開始在程式碼塊開始的下一行,閉合在和程式碼塊同一縮排的行首,例如:
public void compute(String arg)
{
if (arg.length() > 0) {
System.out.println(arg);
}
2.10 註釋規範
- 註釋宜少二精,不宜多而濫,更不能誤導
- 過於詳細的註釋,對顯而易見的程式碼新增的註釋,羅嗦的註釋,還不如不寫
- 註釋不是用來管理程式碼版本的,如果有程式碼不要了,直接刪除,svn會有記錄的,不要註釋掉,否則以後沒人知道那段註釋掉的程式碼該不該刪除。
- 較長的程式碼塊要用
/*------ start: ------*/
/*-------- end: -------*/
- 行內註釋。行內註釋用 // 寫在行尾
2.11善用TODO:
- 在程式碼中加入 //TODO: ,大部分的ide都會幫你提示,讓你知道你還有什麼事沒有做。比如:
if (order.isPaid()) {
//TODO: 更新訂單
}
3.資料庫ER圖
註釋:
- Article:文章
- ArticleNo:文章編號
- Author:作者
- Source:來源
- Title:文章標題
- Tag1,Tag2,Tag3:文章標籤
4.後端架構設計
架構風格:
RESTful
一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。
後端框架選用
本專案後端採用Spring
框架,該框架為J2EE框架,選用該框架的原因有如下幾點:
Spring是全面的和模組化的。
Spring是用於測試驅動工程的理想的framework。
Hibernate將對資料庫的操作轉換為對Java物件的操作,從而簡化開發。通過修改一個“持久化”物件的屬性從而修改資料庫表中對應的記錄資料。
Hibernate提供執行緒和程式兩個級別的快取提升應用程式效能。
詳細技術說明:
Spring+Hibernate框架
1.實現MC模式(Model&Controller,View交給客戶端),使用Mysql資料庫和Apache的Tomcat伺服器
2.與客戶端的資料傳送使用JSON格式
3.在異常處理方面,建立獨立的異常包和相應的異常類,並將部分需要由客戶端處理的異常通過json格式傳遞相應的規定好的異常碼。
4.防止sql注入攻擊,採用hibernate的動態引數繫結。
5.分而治之
我們的簡閱App主要的功能為閱讀,為了優化閱讀體驗又擴充套件出很多其他的功能,有的功能是在客戶端的,使用者可以直觀地看到,有的功能是在後臺執行的,使用者體驗是在潛移默化的提高。經過篩選和優先順序的選擇,我們將專案的 alpha 版本要實現的功能分而治之,逐級向下進行功能的細分,大致結果如下:
功能分為客戶端、後臺、文件。
客戶端:
- 新使用者介面
- 歡迎
- 興趣標籤選擇
- 主頁
- 興趣標籤
- 重新整理
- 主題
- 字型(字型、字號)
- 背景顏色
- 收藏
- 更多
- 收藏夾
- 分享
- 意見反饋
- UI 設計
後臺:
- 服務端
- 尋找文章
- 伺服器搭建
- 客戶端互動
- 接受意見反饋
- 推送文章
- 資料庫互動
- 文章分類
- 文章存入資料庫
- 從資料庫提取文章
- 資料庫
- 伺服器搭建
- 建立伺服器物件
- 增、刪、分類等操作
文件:
- 程式碼規範
- 需求說明書
- 使用者手冊
- 宣傳手冊
Github Issues 及工作分配
工作安排情況
工作認領
學號 | 認領任務 |
---|---|
310 | 程式碼規範擬定,後端架構設計,撰寫使用者手冊 |
316 | 需求規格說明書,隊內協調,協助伺服器設計,精神導師 |
908 | 伺服器構建維護測試,核心演算法支援 |
308 | 伺服器構建維護測試,核心演算法支援 |
306 | 程式碼規範擬定,資料庫設計,專案管理推進 |
309 | 領袖,程式碼規範擬定,組織會議,涉獵資料庫、後端架構 |
627 | 軟體UI設計,測試,宣傳文案 |
629 | 軟體UI設計,測試,宣傳文案 |
TODOList
時間 | 任務 | 人員 |
---|---|---|
10.23-10.29 | 初擬程式碼規範 | 309,306,310 |
伺服器測試、框架搭建 | 308,908 | |
初步架構設計 | 310 | |
需求規格說明書終版 | 316 | |
UI 設計 | 627,629 | |
10.30-11.05 | UI 設計改進 | 627,629 |
架構設計 | 309,310 | |
測試計劃 | 308,908 | |
資料庫設計 | 310,306,309 | |
11.06-11.16 | 組織站立式會議 | 310,306,309 |
最終編碼 | 全組人員 | |
客戶端測試 | 627,629 | |
伺服器端編碼 | 316 | |
11.17-11.19 | 專案完善 | 全組人員 |
使用者試用反饋 | 306,309 | |
測試計劃改進 | 308,908 | |
總結 | 全組人員 | |
11.20-11.26 | 組織會議 | 309 |
最終測試 | 全組人員 | |
專案管理推進 | 316,306 | |
11.27-12.03 | 正式版本完善 | 全組人員 |
撰寫使用者手冊 | 309,310 | |
12.04-12.10 | 撰寫宣傳文案和推廣 | 627,629 |
燃盡圖
7.隊員分工
李鳴 | 王國華 | 吳君毅 | 陳裕鵬 | 黃浩 | 侯振源 | 陳曉凱 | 付逸豪 |
完善需求規格說明書 | 分而治之 | 分而治之 | 資料庫ER圖 | 後端架構設計 | 程式碼規範 | 後端架構設計 | 後端架構設計 |
10% | 13% | 13% | 12% | 15% | 15% | 10% | 12% |