結對作業二
這個作業屬于哪個課程 | 2021春軟體工程實踐 W班 (福州大學) |
---|---|
這個作業要求在哪裡 | |
結對學号 | 221801238 221801210 |
這個作業的目标 | 程式設計實作結對作業原型 |
其他參考文獻 | CSDN/部落格園 |
目錄
-
- 1. PSP表格
- 2. 成品展示
- 3. 結對讨論過程描述和設計實作過程
- 4. 代碼說明
- 5. git倉庫連結、代碼規範連結
- 6. 心路曆程和收獲&評價結對隊友
- 238同學的心路曆程和收獲&評價結對隊友
- 心路曆程和收獲
- 210同學的心路曆程和收獲&評價結對隊友
- 238同學的心路曆程和收獲&評價結對隊友
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 60 | 50 |
• Estimate | • 估計這個任務需要多少時間 | ||
Development | 開發 | 3700 | 3060 |
• Analysis | • 需求分析 (包括學習新技術) | 1260 | 720 |
• Design Spec | • 生成設計文檔 | 180 | 100 |
• Design Review | • 設計複審 | 30 | |
• Coding Standard | • 代碼規範 (為目前的開發制定合适的規範) | 20 | |
• Design | • 具體設計 | ||
• Coding | • 具體編碼 | 1440 | 1600 |
• Code Review | • 代碼複審 | 200 | 160 |
• Test | • 測試(自我測試,修改代碼,送出修改) | 500 | 400 |
Reporting | 報告 | 115 | 90 |
• Test Repor | • 測試報告 | ||
• Size Measurement | • 計算工作量 | ||
• Postmortem & Process Improvement Plan | • 事後總結, 并提出過程改進計劃 | 15 | 10 |
合計 | 3875 | 3200 |
登入界面![]()
結對作業二
注冊界面![]()
結對作業二
搜尋界面![]()
結對作業二
搜尋中的界面![]()
結對作業二
搜尋結果![]()
結對作業二
添加論文到收藏夾![]()
結對作業二
個人中心![]()
結對作業二
删除論文![]()
結對作業二
收藏夾![]()
結對作業二
- 确定分工+技術選型
- 238同學負責做前端,210同學負責做後端
- 238同學表示使用Vue、210同學表示使用python
- 210同學表示需要3天時間學習flask
- 制定接口規範,友善前後端并行開發
- API接口說明:https://mkbiji.com/share/edit/6058496c6cbdb28af6256eb1#
- 讨論截圖:
根據使用者輸入的關鍵詞在關鍵詞表中模糊搜尋,用所有比對的關鍵詞id去查找到對應的全部論文,并傳回給使用者
@blue.route('/paper/getList')
@login_required
def paper_getlist():
k_content = request.args.get("keyword")# 擷取搜尋的關鍵詞内容
page = request.args.get("currentPage")# 擷取目前頁數
# 關鍵詞模糊搜尋
kwds = db.session.query(Keyword).filter(Keyword.content.like('%' + k_content + '%')).all()
paperlist = []
Paper.currentNum = 0 # 已讀取到的論文個數
Paper.finish = False # 搜尋完成标志
for kkk in kwds:
k_id = kkk.keyword_id # 得到關鍵詞id
paper = dict()
ktops = db.session.query(KeywordToPaper).filter(KeywordToPaper.keyword_id == k_id).all() # 通過關鍵詞id擷取論文id
# 通過論文id傳回一個包含論文資訊的字典
for ktop in ktops:
paper = Paper.getPaperDict(ktop.paper_id)
paperlist.append(paper)
Paper.currentNum += 1
# 将獲得論文清單緩存到一個清單
Paper.setCache(paperlist)
return jsonify(code=200, msg="傳回成功", data={'total': len(paperlist), 'paperList': Paper.getPage(0)})
用前端請求的頁數,使用已緩存的論文清單,傳回目前頁對應的論文
cache=[] # 用于緩存論文的清單
PAGE_NUM=5 # 一頁包含的論文個數
# 根據目前頁數傳回目前頁顯示的論文
def getPage(page):
page=int(page)
return Paper.cache[page*Paper.PAGE_NUM:(page+1)*Paper.PAGE_NUM]
git倉庫連結
前端代碼規範
後端代碼規範
心路曆程&收獲
怎麼做好一個前端是一個苦惱的事情,首先要從整體架構開始,然後是代碼規範
雖然計劃很美好,但化身為deadline戰士的時候就管不上這麼多了,是以我的代碼有點龍頭蛇尾的感覺
下次我一定不當deadline戰士了
其實很大一部分時間也是在等接口,感覺自己有點面向接口程式設計,沒接口都不想幹活了。
我的收獲在于,我記得我在寒假作業中提過前後端如何并行開發的問題,這次也是實踐寫了接口文檔解決了一下,提升了一下效率。
評價結對隊友:
雖然210同學是我最好的朋友,但是找他組隊的時候也會擔心适應不過來的問題
我不會後端,隻能從0學起flask。我本身就有Vue開發經驗,是以我到了最後階段頁面寫完了,會變成我不斷催接口。
是以我學會了更要耐心的對待同學,尤其是能力不同的同學,如何發揮他們的潛能,去做應做的事情
很感謝210同學,在短短的三天裡面學會了flask,為我提供接口,一起合力完成作業(聽說有些組已經放棄後端了哈哈哈)
我們會有時意見不合,但最後也殊途同歸。
其實原型有很多功能都沒有實作(餅畫太大了),但無論結果如何,都是雙方選擇一起結對的結果,那就一起承擔結對的成績吧!
希望還能有機會跟他結對程式設計哈!
這是我第一次做後端,中間遇到了很多困難,我在不停的百度和同學交流的過程中,我也解決了很多困難。這次結對程式設計結束後,我了解了前後端的互動過程。
評價結對隊友
238同學他的前端開發經曆很豐富,在結對過程中幫我解決了很多困難,比如github的使用等等
他對作業十分追求完美,我也從他的态度中學習到了很多,十分感謝這段經曆帶給我的收獲