Elasticsearch的來源。(一)
第02組 每週小結 (1/3)
基本情況
衝刺情況彙報
過去一週完成了哪些任務?文字/口頭描述
前端:
- 修復喜歡標籤/忌口標籤/菜品/篩選/視窗頁面 android手機樣式錯誤
- 首頁食堂擁擠上劃重新整理
- 部分樣式修改
後端
-
做oos觸發器,設定定時頻寬升級
-
修復[視窗星級]的bug
-
修復[熱門模組]後臺崩潰的bug
-
修復部分視窗收藏無法取消的問題
-
修復[管理員模組]相關持久層刪除級聯的問題(新增觸發器)
-
儘可能地美化[管理員模組]的UI
展示GitHub當日程式碼/文件簽入記錄
前端
後端
做了哪些優化和迭代
前端
- 修復喜歡標籤/忌口標籤/菜品/篩選頁面 android手機樣式錯誤
- 首頁食堂擁擠上劃重新整理
- 部分樣式修改
後端
-
做oos觸發器,設定定時頻寬升級,做網路IO的優化
-
熱門排序演算法的更新
-
更改管理員相關持久層的級聯刪除
-
優化[管理員模組]的頁面
通過自動化測試測出的bug(如沒有可不填)
解決了哪些Bug,又是如何解決的(需要寫詳細)
前端
android 端小程式多個頁面的 flex 佈局錯誤,子元件會撐開父元件已經設為"flex: 1 1 0;"的父元件,是android 端小程式渲染使用了微信自己的瀏覽器引擎 x5 導致的,然後給父元件設定了 maxHeight 就解決了.
後端
- 修復[視窗星級]的bug
這個bug是在進入視窗頁面時,星級非常大,我們滿的明明就是5,但竟然出現了大於20的情況,後來發現是方法呼叫錯誤,持久層注入後,呼叫的是計算視窗標籤總數,而並非星級計算
原來版本
windowEntry.setStar((double) dishTagMapper.countTagNumByWindowId(windowId));
修改後
windowEntry.setStar(dishCommentMapper.getAvgStarsByWindowId(windowId));
這是粗心大意造成的
- 修復[熱門模組]後臺崩潰的bug
之前並不覺得熱門的排序會出現什麼問題,因為也確實正常運行了,但隨著資料量的增大,在沒有改動程式碼的情況下,熱門崩潰了!查了一下後臺日誌,是因為報了這個錯:
java.lang.IllegalArgumentException: Comparison method violates its general contract
後來經過一番研究和學習,發現是因為我們sort()的比較器寫的有問題,出現了ab,bc,但是a<c的情況,這非常致命,TimSort就不知道要怎麼排序。想到我們比較時候用的是double資料型別,存在精度問題,在把double換成BigDecimal定點數之後,問題就迎刃而解了
- 修復部分視窗收藏無法取消的問題
由使用者反饋桃李園餐廳的收藏無法取消,我們就馬上進行了修改
原來版本(updateMarkedWindow()方法中的部分程式碼片段)
for(Window window : windowList){
if(window.getWindowId()==windowId){
userMapper.removeMarkWindow(userId,windowId);
flag = 0;
break;
}
}
修改後
for (Window window : windowList) {
if (window.getWindowId().equals(windowId)) {
userMapper.removeMarkWindow(userId, windowId);
flag = 0;
break;
}
}
由於我們的windowId欄位用的是Integer,是一個物件型別,就可能會存在問題,應該要用jdk提供的equals()方法,而非直接進行等值比較,儘管有拆箱裝箱機制,也萬萬不可把物件拿來做等值比較,很可能比的是地址,而非物件的值,這是致命問題
- 修復[管理員模組]相關持久層刪除級聯的問題(新增觸發器)
create trigger delete_dish before delete on dish
for each row
begin
delete from dish_stars where dish_stars.dish_id = OLD.dish_id;
delete from dish_comment where dish_comment.dish_id = OLD.dish_id;
delete from dish_tag where dish_tag.dish_id = OLD.dish_id;
delete from dish_stars where dish_stars.dish_id = OLD.dish_id;
delete from user_like_dish where user_like_dish.dish_id = OLD.dish_id;
end;
create trigger delete_window before delete on window
for each row
begin
delete from window_stars where window_stars.window_id = OLD.window_id;
delete from dish where dish.window_id = OLD.window_id;
end;
接下來的計劃還剩下哪些任務?
前端
後端
-
做標籤的優化排序
-
做食堂擁擠程度的視覺化
-
做安全相關的事項
遇到了哪些困難?
目前最大的困難可能是在IO方面的,後端程式的IO做的不是很好,加之頻寬也不給力,就存在一些速度問題,導致使用者體驗不佳
團隊有哪些收穫和疑問?
收穫:得到了很多debug能力
疑問:自動化測試整不明白
成果展示
展示組內最新成果
展示本週自動化測試的結果
由於微信小程式單元化測試比較麻煩,我們採取了autojs+人工測試的辦法,通過不停的點選按鈕,跳轉頁面測試我們小程式的穩定性。現在測試出來的bug已在上面給過了。
展示自動化持續整合(加分項,對應自動化測試)
無