天天看點

結對作業二

結對作業二

這個作業屬于哪個課程 2021春軟體工程實踐 W班 (福州大學)
這個作業要求在哪裡
結對學号 221801238 221801210
這個作業的目标 程式設計實作結對作業原型
其他參考文獻 CSDN/部落格園

目錄

    • 1. PSP表格
    • 2. 成品展示
    • 3. 結對讨論過程描述和設計實作過程
    • 4. 代碼說明
    • 5. git倉庫連結、代碼規範連結
    • 6. 心路曆程和收獲&評價結對隊友
      • 238同學的心路曆程和收獲&評價結對隊友
        • 心路曆程和收獲
      • 210同學的心路曆程和收獲&評價結對隊友

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的使用等等

他對作業十分追求完美,我也從他的态度中學習到了很多,十分感謝這段經曆帶給我的收獲