原创 js實現java字符串的hashCode方法

java的int類型佔4個字節。在計算字符串的hashcode時,可能會溢出。這種溢出屬於正常情況。 在js中,所有數字都是以64位浮點數形式儲存。其表示範圍要遠遠超過java32位的int。某些運算只有整數才能完成,此時 js

原创 基於javaagent實現的mock框架

背景 項目有點規模,使用dubbo框架,類似微服務的方式將項目分成了多個模塊。各個模塊邏輯複雜,而且調用了大量的外部接口。開發時自測面臨以下問題: 測試某個模塊時,需要啓動各個上游模塊,以及上游模塊的上游模塊。 業務邏輯複雜,需

原创 服務啓動時序解耦

package org.jsirenia.defer; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.jsire

原创 alibaba-druid裏面的LRU緩存實現

內容從druid包裏面拷貝的 package org.jsirenia.cache; import java.util.LinkedHashMap; import java.util.Map; //copy from com.a

原创 java8日期時間工具類

package org.jsirenia.date; import java.io.Serializable; import java.time.DayOfWeek; import java.time.Instant; impo

原创 Haskell學習心得

Haskell學習心得 話說程序員要每年學一門編程語言.2020年,目標Haskell. 特性 柯里化 Haskell的函數,只有單參數函數.它的多參數函數,其實只是返回了另一個函數. 所以在進行部分參數應用的時候,會非常的自然

原创 軟件的腐化之路

軟件腐化之路 本文並不是吐槽,而是總結開發過程中軟件腐化的各種原因,希望基於此思考如何解決軟件腐化的問題. 需求不明確 項目已有第n個版本,現開發第n+1個版本,但是需求不明確,導致可能無法將新需求融入到現有的設計,可能要調整現有

原创 groovy僞遞歸優化

groovy僞遞歸優化 1、官網文檔閉包這一章介紹了使用trampoline進行僞遞歸優化 def factorial factorial = { int n, def accu = 1G -> if (n < 2) re

原创 asm實現aop,不是簡單的打印方法執行時間

源碼 https://github.com/zhoujiaping/asm0 看org.wt.asm.aop包裏面的內容 實現了一個通用的aop,使用時寫常規的java代碼就可以了。