做業要求
團隊陣容
任務與計劃安排
第一天 |
代碼規範制定,項目先後端各自基礎構建,選定框架、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代碼規範
文件名所有使用小寫字母,相鄰單詞之間使用「_"鏈接javascript
代碼段之間使用4個空格縮進,代碼段使用{}括起來css
變量使用小寫字母表示,相鄰單詞之間使用「-」分隔html
變量,表達式之間使用空格分開,常量使用大寫字母表示前端
段註釋使用/**/表示java
行註釋使用//表示node
系統設計和數據庫設計問題解答
團隊成員的貢獻度如何存儲?
貢獻度字段在用戶得分表裏面存儲,每次做業的得分當作一條記錄。
做業發佈後是否可編輯?
能夠實時編輯並存儲。
如何防止學生修改爲績?
只有擁有班級權限的老師角色才擁有修改爲績的權限。
系統設計書內容欠缺?
相關內容已增長。
二次評分,好比手誤操做如何驗證?
老師能夠對學生成績進行屢次修改。