作業要求

這個作業屬於哪個課程 軟體工程1916-W(福州大學)
這個作業要求在哪裡 專案Alpha衝刺
團隊名稱 基於雲的勝利衝鋒隊
專案名稱 雲評:高校學生成績綜合評估及視覺化分析平臺
這個作業的目標 團隊的程式碼規範、本次衝刺任務與計劃
其他參考文獻 1.鄒欣.構建之法[M].3版:人民郵電出版社,2014.

團隊陣容

隊員學號 隊員姓名 個人部落格地址 備註
221500201 孫文慈 https://www.cnblogs.com/swc221500201/
131601207 陳序展 https://www.cnblogs.com/chenxuzhan/
221600414 馮凱 https://www.cnblogs.com/codingkai/ 隊長
221600415 傅德泉 https://www.cnblogs.com/dqblog/
221600416 黃海山 https://www.cnblogs.com/hhs-blog/
221600417 黃樂興 https://www.cnblogs.com/hlxing/
221600439 <script> https://www.cnblogs.com/aaaaaaaaaaaaaa/

任務與計劃安排

天數 任務安排
第一天 程式碼規範制定,專案前後端各自基礎構建,選定框架、UI庫
第二天 熟悉框架、UI庫,編寫大體架構,資料庫建庫建表
第三天 熟悉框架和庫,統一開發流程,後端 PO 模型
第四天 編寫API文件,完成註冊頁面,編寫登入,註冊介面
第五天 完成登入頁面,編寫教師評分維度管理介面
第六天 完成新建評分維度頁面,編寫教師新建班級介面
第七天 完成教師新建班級頁面,編寫教師編輯班級介面
第八天 完成教師編輯班級頁面,編寫學生及助教加入班級功能介面
第九天 完成學生及助教加入班級頁面,測試介面安全性,校驗介面是否完成需求
第十天 Alpha版本程式的測試與交付

程式碼規範

後端

程式碼格式

  • 縮排以4個空格為單位,禁止使用 tab 字元
  • 大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行;如果是非空程式碼塊則:
    • 左大括號前不換行
    • 左大括號後換行
    • 右大括號前換行
    • 右大括號後還有 else 等程式碼則不換行;表示終止的右大括號後必須換行
  • 儘量避免一行的長度超過80個字元
  • 當一個表示式無法容納在一行內時,可在一個逗號後面斷開或在一個操作符前面斷開
  • 新的一行應該與上一行同一級別表示式的開頭處對齊
  • 將類似操作,或一組操作放在一起不用空行隔開,而用空行隔開不同組的程式碼
  • 方法引數在定義和傳入時,多個引數逗號後邊必須加空格
  • if/for/while/switch/do 等保留字與括號之間都必須加空格

命名風格

  • 程式碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束
  • 法名、引數名、成員變數、區域性變數都統一使用 lowerCamelCase 風格,必須遵從駝峰形式
  • 常量命名全部大寫,單詞間用下劃線隔開
  • 包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用單數形式,但是類名如果有複數含義,類名可以使用複數形式
  • 類名每個單詞必須由大寫字母開頭而其他字母都小寫的單片語成
  • 任何自定義程式設計元素在命名時,使用盡量完整的單詞組合來表達其意
  • 陣列應該用下面的方式來命名
byte[] buffer;
  • 不用數字定義名字
  • 列舉類名建議帶上 Enum 字尾,列舉成員名稱需要全大寫,單詞間用下劃線隔開
  • POJO 類中布林型別的變數,都不要加 is 字首

常量定義

  • 不允許任何魔法值(即未經預先定義的常量)直接出現在程式碼中
  • 如果變數值僅在一個固定範圍內變化用 enum 型別來定義

註釋規約

  • 類、類屬性、類方法的註釋必須使用 Javadoc 規範,使用/**內容*/格式,不得使用// xxx 方式
  • 所有的類都必須新增建立者和建立日期
  • 方法內部單行註釋,在被註釋語句上方另起一行,使用//註釋。方法內部多行註釋使用/* */註釋,注意與程式碼對齊
  • 程式碼修改的同時,註釋也要進行相應的修改,尤其是引數、返回值、異常、核心邏輯等的修改

控制語句

  • 在 if/else/for/while/do 語句中必須使用大括號。即使只有一行程式碼,避免採用單行的編碼方式:if (condition) statements;
  • 避免採用取反邏輯運算子

領域設計規範

  • 服務類基於業務領域模組劃分,劃分原則可以與業務表對應
  • 儘量減少表連線,杜絕兩個業務領域的表連線
  • 禁止大表連線(超過100w資料)
  • 禁止在SQL語句中使用1=1
  • 禁止批量資料用in關鍵詞分組排序,即在In條件複雜查詢語句
  • 更新操作條件必須有索引,通過explain確認執行計劃走索引,儘量使用pk主鍵
  • 查詢條件必須走索引
  • 原則上不允許應用使用delete語句,如有需要,必須記log,經過團隊評審
  • 實體類與資料庫表對應,api介面下的實體與dao層不一致,dao層實體命名為XxxEntity,防止修改內部實體類影響介面穩定性。

資料庫設計規範

  • 禁止刪除欄位
  • 禁止更新欄位名稱,型別,減少長度;可以修改增加欄位長度或備註
  • 資料庫指令碼支援提前上線,否則會影響熱釋出或者灰度釋出
  • 每個領域實體表必須有一個領域主鍵驅動,便於資訊查詢
  • 查詢結果按需讀取,防止因欄位過大造成資料傳輸開銷
  • SQL命名準確,功能要單一,不能包含多種含義功能,維護會更復雜
  • 命名使用下劃線命名,統一小寫

前端

檔案組織結構

  • 所有前端程式碼、外掛、配置檔案和資源都放在專案的根目錄下
  • 所有外部模組和外掛都放在/node_modules目錄下
  • 主頁icon和index.html放在/public目錄下
  • 所有編寫的元件、資原始檔以及main.js都放在/src目錄下
  • 所有靜態資原始檔放在/src/assets目錄下
  • 所有Vue元件放在/src/components目錄下
  • README.md放在專案的根目錄下,提供專案的配置安裝指南

HTML程式碼規範

  • 檔名全部使用小寫字母,相鄰單詞之間使用“_"連線
  • 所有標籤名必須小寫,並且要有正確的關閉標籤
  • 相鄰標籤之間用4個空格縮排
  • 標籤名中相鄰單詞之間用“-”分隔
  • 標籤屬性名全部小寫,value用“”括起來
  • HTML的語言屬性統一設定為zh-cn

CSS程式碼規範

  • 檔名全部使用小寫字母,相鄰單詞之間使用“_"連線
  • 類選擇器和id選擇器要合理使用
  • 類名和id名全部使用小寫字元,相鄰單詞之間用“-”分隔
  • 為避免css樣式的冗餘,儘量將共同的樣式提取到同一個選擇器中
  • 僅當前元件的style樣式使用“scoped”加以範圍說明

JavaScript程式碼規範

  • 檔名全部使用小寫字母,相鄰單詞之間使用“_"連線

  • 程式碼段之間使用4個空格縮排,程式碼段使用{}括起來

  • 變數使用小寫字母表示,相鄰單詞之間使用“-”分隔

  • 變數,表示式之間使用空格分開,常量使用大寫字母表示

  • 段註釋使用/**/表示

  • 行註釋使用//表示

系統設計和資料庫設計問題解答

團隊成員的貢獻度如何儲存?

貢獻度欄位在使用者得分表裡面儲存,每次作業的得分當做一條記錄。

作業釋出後是否可編輯?

可以實時編輯並存儲。

如何防止學生修改成績?

只有擁有班級許可權的老師角色才擁有修改成績的許可權。

系統設計書內容欠缺?

相關內容已增加。

二次評分,比如手誤操作如何驗證?

老師可以對學生成績進行多次修改。