團隊作業——系統設計(人月神教)

Flame。發表於2017-10-27

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

燃盡圖

jianyueAPP/jianyue

7.隊員分工

李鳴 王國華 吳君毅 陳裕鵬 黃浩 侯振源 陳曉凱 付逸豪
完善需求規格說明書 分而治之 分而治之 資料庫ER圖 後端架構設計 程式碼規範 後端架構設計 後端架構設計
10% 13% 13% 12% 15% 15% 10% 12%

相關文章