工作問題記錄

2021-10-05 00:06:31 字數 1164 閱讀 5165

此文僅用於記錄平常工作中遇到的一些較為複雜的場景和問題

1.倒計時與訊息推送產生的bug

定義了乙個countdonwtimer來進行倒計時,正常來說,倒計時結束之後,剛好收到cpp推送過來的訊息,這個時候隱藏倒計時ui,然後進行ui重新整理,但是有個問題,由於倒計時是30s結束,訊息推送是第29s就過來了,然後countdonwtimer又沒有cancel,這個時候ui又會變成之前的倒計時的ui狀態了,解決這個問題的辦法是每次訊息推送來的時候,要cancel之前的倒計時,防止執行緒衝突

2.狀態複雜的需求

經過的這麼長時間的需求摧殘,發現最難的一類需求:狀態處理,2種或者以上的型別狀態處理起來,如果用排列組合,就非常複雜,很容易出錯,目前沒找到好的處理辦法,今天對於這個問題想到了乙個解決方案,就是資料全量重新整理,對於複雜的狀態和各種ui互動,如果靠單個狀態和一堆變數進行維護與控制處理,很容易出鍋,況且你需要處理多個變數與多個ui的重新整理,這個時候,如果用排列組合,維護起來就恐怖了,基本上每個流程都不可控,改乙個地方,可能全域性都要受到影響,高度耦合了,雖然全域性資料重新整理有點耗效能,但是相對海量以及解不完的bug而言,這點效能對於可維護性來說,就不算什麼了

4.時間軸功能新增

最近有個需求,給列表資料新增時間軸,開始覺得簡單嘛,recyclerview然後additemdecoration()就可以了嘛,實則不然,需求是這樣的,時間軸跟資料相關聯了,並不是每個item都需要畫圓,通過動態的去設定時間軸,發現2個問題

1.時間軸上的圓點動態顯示和隱藏

2.如果adapter新增了footer,最下面的「載入完畢」是不需要畫圓的,也需要在itemdecoration中進行控制,這個邏輯我改了半天,仍然不滿足需求,遂棄~

解決方式:既然無法通過itemdecoration來完成的話,目前來看比較好的方案就是直接在item中畫豎線了,這種雖然耦合性高了些,但是能比較好的滿足產品需求,做產品需求的話,重要的是效果能出來就行了

5.handler導致的黑屏問題

專案中有乙個自定義view,然後在開啟activity初始化的時候,呼叫了自定義view的下面這個方法

gethandler().removecallbacksandmessages(null);

http介面測試工作問題記錄

1 介面測試返回值為excel表,如何測試?a 開啟該網頁,複製 b 把介面請求連線貼上到瀏覽器,按f12,把步驟1的 貼上過來 c 輸入登入許可權的 可以修改使用者名稱密碼 ajax success function d 2 介面請求的位址引數是需要通過base64轉碼的,如何填寫引數?可以使用p...

ios crash問題記錄

1.誤將nsmutablearray型別的變數初始化為nsarray,結果對nsmutablearray型別變數進行操作時,crash h檔案如下 inte ce movemecontroller secondlevelviewcontroller property nonatomic,retain...

??? nginx lua問題記錄

問題1 當用http localhost test 訪問時,結果為何迥異?eg1 location test 結果為空,說明執行的是httpechomodule的echo指令,沒有執行httpluamodule的content by lua指令 eg2 location test輸出123 說明執行...