設計模式是個老生常談的話題, 不同的人對此有不同的看法 新手可能會覺得設計模式難以理解, 并且也只與編程語言有關, 或者只與前端后端有關, 適用范圍很窄 或者就干脆覺得這玩意兒沒啥卵用, 寫了那么一大坨只是讓代碼變得復雜難懂, 不如直接復制黏貼刪刪改改來得方便 老手可能會覺得設計模式就是yyds, ...
概述 KCP協議結合了TCP和UDP協議的特點,是一個快速可靠的協議。 引述官方介紹: KCP是一個快速可靠協議,能以比 TCP浪費10%-20%的帶寬的代價,換取平均延遲降低 30%-40%,且最大延遲降低三倍的傳輸效果。純算法實現,并不負責底層協議(如UDP)的收發,需要使用者自己定義下層數據的 ...
TCP/IP協議中有兩個具有代表性的傳輸層協議,分別是TCP協議和UDP協議。TCP協議全稱傳輸控制協議,是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。UDP協議全稱用戶數據報協議,是 TCP/IP協議模型傳輸層的無連接協議,它既不建立連接,也不檢查目標計算機是否已準備好接收,該協議只是將數... ...
這篇文章主要討論數據壓縮,數據壓縮不僅可以節省存儲空間,還可以提升網絡傳輸性能,不同的壓縮算法有不同的壓縮比和壓縮耗時,我們需要根據項目需求,選擇不同的壓縮算法。 ...
設計模式 設計模式是指在軟件開發中,經過驗證的,?于解決在特定環境下,重復出現的,特定問題的解決?案; 內存模型 繼承Base,和成員變量為Base類型的內存模型 成員變量為Base指針的內存模型-》實際開發常用這種 由于該形式以Base指針的形式存儲,展現一種多態的思想 而上一種中Base類型和S ...
前言 近期ChatGPT可以說是太火了,問答、寫論文、寫詩、寫代碼,只要輸入精確的prompt,他的表現總是讓人驚喜。本著打不過就加入的原則。要是把ChatGPT拉入群聊中,會是怎樣一番場景?說做就做,花了1個晚上搗鼓了一個小Demo【ChatGPT群聊助手】,憑借它的“聰明才智”,應該可以搞定我的 ...
長期以來,我們一直聽說物聯網(IoT)將通過將日常設備連接到互聯網來改變我們的生活和工作方式。雖然物聯網的許多承諾似乎總是 "即將到來",但物聯網設備的激增已經創造了大量的數據,需要實時處理、存儲和分析。我已經說了很多年--實際上已經超過十年了--如果你的物聯網數據不及時、不準確、不具有可操作性,那 ...
這篇文章主要描述硬件同步原語,它是由計算機硬件提供的一組原子操作。 我們常見的原語操作有CAS和FAA兩種。在某些情景下,我們可以使用它來替代鎖,從而更加安全高效的操作數據。 ...
面向過程(PO) 面向過程是隨著VB一起來到我的世界,那個時候會的非常有限,感覺能把程序寫出來自己就非常棒了,VB是做那種可視化界面,在工具欄拖個框框放到面板上,然后就在各個事件上寫完整的邏輯,什么封裝,抽象,繼承一概不懂,就有一種一個方法把實現過程需要的邏輯都羅列了,面向過程分析的是步驟。這樣說過 ...
這篇文章主要聊一下緩存,如何使用緩存來加速你的系統,減少磁盤 IO。按照讀寫性質,緩存可以分為讀寫緩存和只讀緩存,兩種緩存有各自的適用場景。 ...
這篇文章主要用來討論Kafka是如何做到高性能的,包括使用批處理方式處理消息,使用順序讀寫的方式使用磁盤,利用PageCache緩存數據并減少IO操作,使用零拷貝技術加速消費流程。 ...
三維模型幾何糾正方法主要包括以下幾種:坐標變換法:通過對三維模型的坐標進行變換,實現幾何糾正。常用的坐標變換包括平移、旋轉和縮放等。平移和旋轉可以通過對模型的平移和旋轉矩陣進行計算實現,縮放可以通過對模型的坐標進行縮放系數的計算實現。點云擬合法:將三維模型擬合到點云數據上,通過對擬合誤差進行優化,實 ...
# 對于多任務多連接多線程實現限速的實現方法及思考 ## 前言 最近在寫畢業設計,我的畢業設計就是用Rust語言實現一個Bittorrent客戶端協議及其拓展協議,順便寫個Web讓這個玩意能跑起來用。 總之就是要實現一個類似迅雷的下載器。下載器嘛,肯定要有限速功能的,不然吃滿帶寬導致其他應用餓死(B ...
釘釘單元化從2018年開始到今年已經是第五個年頭了,五年的時間,釘釘單元化迭代了三個版本,從最初的毛頭小子,到達今年已經小有成就。今天想借這個場來和大家分享我們單元化的心路歷程和一些最佳實踐。本文要分享的內容只涉及部分內容,無法做到面面俱到,主要是想在同路人中形成共鳴,進而能復用一些架構或者系統。在... ...
什么是策略模式? 在Python中,除了上次介紹的工廠模式,還有一種應用廣泛的設計模式,即策略模式。策略模式就是一個策略類,它可以用相同的接口來調用不同的策略類,從而實現不同策略下的算法。 策略模式一般由三個部分組成: Context:上下文類,持有具體策略類的實例,并負責調用相關的算法 Strat ...
說明 今天首先考慮安全角度下個人以及團隊密碼的存儲方案,以及兩種情況下的加密解密方式。 個人密碼加密 了解了1password等軟件的個人加密方式應該是采用2SKD(two-secret key derivation)方式,two-secret key指的是master password(用戶主密碼 ...
觀察者模式 介紹 觀察者模式是極其重要的一個設計模式,在許多框架都使用了,以及實際開發中也會用到。 定義對象之間的一種一對多的依賴關系,使得每當一個對象的狀態發生變化時,其相關的依賴對象都可以得到通知并被自動更新。主要用于多個不同的對象對一個對象的某個方法會做出不同的反應! 以不同觀察者從同一個天氣 ...
故障無處不在,而且無法避免。(分布式計算謬誤)
在分布式系統建設的過程中,我們思考的重點不是避免故障,而是擁抱故障,通過構建高可用架構體系來獲得優雅應對故障的能力。QQ音樂高可用架構體系包含三個子系統:架構、工具鏈和可觀測性。 ...
#### 資源大于配置問題 ```xml src/main/resources **/*.properties **/*.xml true src/main/java **/*.properties **/*.xml true ``` ...