有關於使用者簽到小功能的思考

2021-10-22 07:37:15 字數 2182 閱讀 8900

背景:

偽**實現與內容剖析:

public

class

continue

break;}

system.out.

println

("連續簽到的天數:"

+ continuousday)

;// 方案二:

// redis key的存在過期值,

// 分析發現,需要統計的是使用者連續簽到,所以給使用者簽到的key設定過期時間,直接記錄連續簽到的次數,免去了計算的麻煩和時間消耗

// 過期值為本次簽到到下一使用者可以連續簽到的時間,

// 注意這裡的連續簽到,連續簽到指的是使用者每次可簽到的日期內都完成了簽到,

// 採用和上述方案不同的儲存結構,直接採用 key-val的形式,呼叫jedis的 set api

// 使用者水滴簽到資料:

// key val(連續簽到的天數) expire(修改本次簽到到下次可以簽到為止)

// water:uid:$ 3 24 * 60 * 60s

// 使用者油滴簽到資料:

// key val(連續簽到的天數) expire(修改本次簽到到下次可以簽到為止)

// oil:uid:$ 3 24 * 60 * 60s

///**

redis.call("incr",keys[1])

if redis.call("get", keys[1]) == ar**[1] then

return redis.call("del", keys[1])

else

return 0

end*/

string waterkey =

"water:uid:"+1

; string oilkey =

"oil:uid:"+1

; jedis jedis=

newjedis()

;// 簽到動作觸發後,寫入資料

// 執行lua指令碼

stringbuilder luascript =

newstringbuilder()

; luascript.

("redis.call('incr',keys[1])").

("redis.call('expire', keys[1], ar**[1])");

list

keys =

newarraylist

<

>()

; keys.

add(waterkey)

; list

ar**s =

newarraylist

<

>()

; localdatetime now = localdatetime.

now();

// 計算過期時間

int expire =(48

- localdatetime.

now().

gethour()

)*3600

; ar**s.

add(string.

valueof

(expire));

jedis.

eval

(luascript.

tostring()

, keys, ar**s)

;// 讀取簽到天數

string continuewaterdays = jedis.

get(waterkey)

; string continueoildays = jedis.

get(oilkey);}

}

上述的偽**只是簡單的過程計算,在這個過程中,並沒有使用到持久化儲存,redis的高併發效能,以及內容儲存的特點,可以快速地完成資料的獲取和計算,相比於讀取磁碟中(例如:mysql)的資料,更加的快速與高效。當然我們需要對每乙個使用者的領取記錄,連簽天數,領取時間,獎勵資料等都需要持久備份,以便於後續業務中的問題篩查與追溯。

關於流暢使用者體驗的思考

週末無事做了個簡單的 ocr小工具 從文字截圖中提取和識別字元。處理物件是標準字型的影象,沒有ocr 通常要面對的光照,破損,扭曲等問題,幾乎不用任何預處理,因此演算法是簡單明瞭的 先二值化,橫向縱向投影分割字元,再用模板匹配進行字元識別。因為打算做成乙個可用的工具而不僅僅是演算法 所以沒用 mat...

業務功能設計時關於擴充套件性和最小功能原則的思考

最近遇到乙個迷惑,產品的需求是已配貨,已發貨,已簽收的訂單可以售後退款,在實現介面的時候,我做了check,只能是已配貨,已發貨,已簽收的才能退款,後來又在思考,這樣寫死,shib是不是沒有擴充套件性,雖然符合了最小功能設計了,但是有一天產品說,配貨中的也能退貨,是不是就是需求修改 擴充套件性就不好...

有關於使用者體驗的一些總結

首先分享一句話 使用者是沒有錯的,如果使用者在使用某物品的時候遇到麻煩,那是因為設計出了問題。諾曼 設計心理學 認識使用者 使用者永遠都沒有錯。使用者都是特別忙,特別沒有耐心的人。使用者永遠都比你想象的聰明。使用者體驗對產品的重要性 不論使用者訪問的是什麼型別產品,都是乙個自助的行為。他們所能依靠的...