作業要求
這個作業屬於哪個課程 | 軟體工程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個空格縮排,程式碼段使用{}括起來
變數使用小寫字母表示,相鄰單詞之間使用“-”分隔
變數,表示式之間使用空格分開,常量使用大寫字母表示
段註釋使用/**/表示
行註釋使用//表示
系統設計和資料庫設計問題解答
團隊成員的貢獻度如何儲存?
貢獻度欄位在使用者得分表裡面儲存,每次作業的得分當做一條記錄。
作業釋出後是否可編輯?
可以實時編輯並存儲。
如何防止學生修改成績?
只有擁有班級許可權的老師角色才擁有修改成績的許可權。
系統設計書內容欠缺?
相關內容已增加。
二次評分,比如手誤操作如何驗證?
老師可以對學生成績進行多次修改。