原创 Sublime Text3插件詳解

(1)Emmet插件: 安裝Packet:菜單欄View->Show Console->粘貼text2或text3的Packet配置信息->重啓軟件->Ct+N(新建文檔)->Ct+Sh+P->輸入pci->查找要安裝的插件,如

原创 javascript閉包詳解

閉包與函數有着緊密的關係,它是函數的代碼在運行過程中的一個動態環境,是一個運行期的、動態的概念;是指詞法標識包括不必計算的變量的函數,也就是說該函數能夠使用函數外定義的變量。簡單來說,閉包就是一個函數可以訪問另外一個函數作用域中

原创 Hystrix生產環境線程池自動擴容與縮容的動態資源分配經驗

可能會出現一種情況,比如說我們的某個依賴,在高峯期,需要耗費100個線程,但是在那個時間段,剛好其他的依賴的線程池其實就維持一兩個就可以了。但是,如果我們都是設置死的,每個服務就給10個線程,那就可能就導致有的服務在高峯期需要更

原创 javascript類的創建與實例對象

面向對象的語言有一個標誌,那就是他們都有類的概念,通過類可以創建任意多個具有相同屬性和方法的對象。但是在ECMAScript中沒有類的概念(這裏不涉及ES6),但是我們可以通過其他方式來模擬面向對象的類。 面嚮對象語言中類的概

原创 Hystrix之request collapser請求合併詳解

對於高併發的訪問,可以將多個command進行合併只進行一次command執行,也就是只需要發送一次網絡請求來提升系統性能 請求合併的三種級別: global context,tomcat所有調用線程,對一個依賴服務的任何一

原创 react之setState解析

在react開發過程中,state是組件一個重要的屬性,對state的管理也尤爲重要,這裏記錄一下踩坑經歷 修改state正確方式 對於修改組件state正確的方式如下: // 錯誤 this.state.title = 'React

原创 netty源碼分析之-處理器詳解(9)

Netty處理器重要的概念: Netty的處理器可以分爲兩類:入站處理器與出站處理器 入站處理器的頂層是ChannelInboundHandler,出站處理器的頂層是ChannelOutboundHandler 數據處理時常用的各種編碼

原创 javascript設計模式-適配器模式(8)

適配器模式可用在現有的接口和不兼容的類之間進行適配。使用這種模式的對象又叫做包裝器(wrapper),因爲他們是在用一個新的接口包裝另一個對象。藉助適配器可以處理一些類與API不匹配、不能一同使用的情況。適配器是要把一個接口轉換爲另一個

原创 Executor相關源碼分析

Executor是一個用來執行提交的任務(Runnable)的對象。這個接口提供了一種將任務的提交和任務如何去執行解耦機制 Executor詳解 先來查看Executor的接口定義: public interface Executor

原创 大型高併發與高可用緩存架構總結

對於高併發架構,毫無疑問緩存是最重要的一環,對於大量的高併發,可以採用三層緩存架構來實現,nginx+redis+ehcache nginx 對於中間件nginx常用來做流量的分發,同時nginx本身也有自己的緩存(容量有限),我們可

原创 javascript設計模式-組合模式(6)

組合模式是一種專門爲創建Web上的動態用戶界面而量身制定的模式。使用這種模式可以用一條命令在多個對象上激發複雜的或遞歸的行爲。這可以簡化粘貼性代碼,使其更容易維護,而那些複雜行爲則被委託給各個對象 傳統的層級業務場景 /* * 場景

原创 javascript原型繼承-實現extjs底層繼承(2)

對於傳統的繼承方式,會存在一定的缺點,分析extjs底層的實現可以解決產生的問題 <script type="text/javascript"> //這裏使用之前說過得混合繼承的方式 function Person(name, age

原创 javascript設計模式-裝飾者模式(9)

裝飾者是一種爲對象添加新特性的技術,它並不適用創建新子類的這種手段。裝飾者模式可以用來透明的把對象包裝在具有同樣接口的另一個對象之中。這樣我們就可以爲對象添加一個方法或者一些行爲,然後將方法調用傳遞給原始對象。 //裝飾者模式:就是在

原创 javascript設計模式-橋接模式(5)

橋接模式是一種既能把兩個對象連接在一起,又能避免二者間的強耦合的方法。通過“橋”把彼此聯繫起來,同時又允許他們各自獨立變化。主要作用表現爲將抽象與現實隔離開來,以便二者獨立化 事件監聽回調機制 /* // classic $(fu

原创 javascript原型對象存在的問題(3)

原型對象雖然可以對所有實例的屬性和方法共享,但是它的侷限性也是很明顯的,這是因爲共享的特性,也導致原型存在的最大問題,原型裏的屬性和方法會被所有對象所共享: static。 function Person(){ } Person.