收藏 / 列表

老污的貓 - 領域驅動設計(Domain-Driven Design)

DDD 全稱Domain-Driven Design,意為領域驅動設計,是一種軟件開發的方法論,強調通過領域模型來指導複雜系統的設計與開發,核心概念如下 限界上下文(Bounded Context) 實體(Entity)、值對象(Value Object) 聚合(Aggregate)、領域事件(Domain Event) 通用語言(Ubiquitous Language) DDD M

程序員

大廠碼農老A - 凌晨零點,一個TODO,差點把我們整個部門抬走

那晚杭州的悶熱,至今記憶猶新。 2021年,我剛來到杭州這座“卷城”,入職了一家夢想中的互聯網大廠。作為一名電商新人,我一頭扎進了促銷和會場的研發中。 那晚,我們正為一個S級的“會員閃促”活動做最後的護航,它將在零點準時生效。作戰室裏燈火通明,所有人都盯着大盤,期待着活動上線後,GMV曲線能像火箭一樣發射。 然而,我們等來的不是火箭,而是雪崩。 剛過0點,登登登登… 告警羣裏的消息開始瘋狂刷屏,聲

springboot , JAVA , 故障 , 後端 , 前端

悲傷的鴨蛋 - 會話技術、過濾器、攔截器

登錄校驗:判斷用户是否登錄,從而決定是否讓其執行相關操作。(已登錄則可執行,未登錄則不可,必須登錄後才能執行) 具體操作步驟: 1、記錄用户已經成功登錄的標記(會話技術)會話:指的就是瀏覽器與服務器之間的一次連接。在一次會話當中,是可以包含多次請求和響應的(瀏覽器不能關閉、服務器不能斷開)會話跟蹤:服務器識別多次請求是否來自於同一瀏覽器,以實現在同一次會話的多次請求間共享數據。此技術一

filter , JAVA , token , Jwt

打盹的猴子 - Java 設計模式:裝飾者模式(Decorator Pattern)

一、模式定義 裝飾者模式屬於結構型設計模式,允許通過動態包裝對象的方式為對象添加新功能,提供比繼承更靈活的擴展方式。該模式通過組合替代繼承,遵循開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Component(組件接口) 定義被裝飾對象的公共接口 ConcreteComponent(具體組件) 實現基礎功能的具體類 Dec

裝飾者模式 , 設計模式 , JAVA

牛肉燒烤屋 - 超時時間應該設置多長?長尾請求和重試風暴又該如何解決?打造高效穩定的網絡請求!

超時時間 概念 超時時間指系統在等待某個操作響應時設定的最大容忍時間閾值。當操作未在指定時間內完成,系統將主動終止等待並觸發預設處理邏輯 超時可以看做是一種降級手段。因為假設服務永遠能正常運行,我們並不需要超時時間,來保證服務的可用性和穩定性 常見需要依賴超時時間的場景 網絡層:TCP 協議的 connect timeout(Linux 默認 120 秒)、HTTP 請求的 socket ti

微服務 , rpc , 高可用 , 計算機網絡 , 後端

seazhan - 【Java多線程】斷點續傳 如何使用Java多線程下載網絡文件

如何使用Java多線程下載網絡文件,並實現斷點續傳 在現代網絡應用中,多線程下載是一種常見的技術,它可以顯著提高下載速度並提供更好的用户體驗。本篇文章將介紹如何使用Java實現多線程下載,並結合項目中的代碼作為示例進行講解。 1. 多線程下載的基本原理 多線程下載的基本思想是將一個文件分成多個部分,每個部分由一個線程獨立下載,最後將這些部分合併成完整的文件。這樣可以充分利用帶寬和計算資源,提高下載

多線程 , JAVA

王中陽講編程 - 騰訊面試:那些騰訊面試過的MySQL場景問題

今天我將那些騰訊面試過的 MySQL 場景問題給大家整理出來,本文將跟大家一起來探討如何回答這些問題。 1.一個 6 億的表 a,一個 3 億的表 b,通過外間 tid 關聯,你如何最快的查詢出滿足條件的第 50000 到第 50200 中的這 200 條數據記錄? 2.一條 sql 執行過長的時間,你如何優化,從哪些方面入手? 3.索引已經建好了,那我再插入一條數據,索引會有哪些

騰訊 , MySQL , 面試問題 , 數據庫

Awbeci - Next.js 14集成next-auth(v5)和redux-toolkit最佳實踐

前言 自從next.js14發佈之後,app router變成了官網主推的架構區別於pages router的傳統架構,app router更適合最新的react,於是自己動手把next-auth、redux-toolkit、ant-design、tailwindcss也一同集成進來,分享給大家,如果有錯誤之處歡迎大家指正。 操作 1、創建項目 使用下面命令創建項目,並且選擇tailwind cs

next-auth , redux , next.js

lindsay_bubble - Leetcode 84_柱狀圖中最大的矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 想法:感覺這個題考的是數學,是邏輯。 怎麼找矩形呢?就是當前位置的最高點,向左和向右畫矩形,找他比他矮的點left, right,就停止。 高度就是height[i] 寬度就是(right-left+1)-2,因為找到的那兩個點是不能算進

leetcode , , JAVA

wasdquiop - javaScript正則表達式

JavaScript RegExp 對象 RegExp:是正則表達式(regular expression)的簡寫 正則表達式用於對字符串模式匹配及檢索替換,是對字符串執行模式匹配的強大工具 語法: var patt=new RegExp(pattern,modifiers); 或者 var patt=/pattern/modifiers; 其中: pattern:代表正則表達式

字符串 , 正則表達式 , Javascript

witt - SseEmitter返回data被雙引號包裹的問題排查

一、背景 最近做接口的性能改造,大概背景如下: 舊: 1.前端每秒輪詢後端接口,接口返回數據狀態,前端用狀態做判斷,變更頁面交互。 2.前端固定調用後端接口,接口阻塞100秒,等待後端隨時返回結果,100秒到達後無結果,直接失敗。 新: 改為ServerSentEvent以text-event-stream固定時間窗口由後端返回處理進度。 二、簡單對比 1.後端服務壓力大。

spring , servlet , spring-mvc , JAVA , sse

ximinghui - 國際化(i18n)

國際化(i18n) 源: https://blog.ximinghui.org/e9b09f41/index.html 以 Java 21 為例,簡單探索i18n。 一、什麼是國際化 / i18n? 國際化是中文名,i18n是國際化英文單詞“internationalization”的縮寫,因為第一個字母i和最後一個字母n中間有18個字母。 應用程序國際化就是應用程序適應不同的地區/國家和語言。比

JAVA , i18n

Java陳序員 - 免費無廣告!這款開源工具讓文件轉換像複製粘貼一樣簡單!

大家好,我是 Java陳序員。 之前,給大家介紹一款格式轉換全能王,支持超過一千多種的文件格式轉換。 格式轉換全能王!一個開源自託管的文件轉換神器! 今天,再給大家介紹一款 Windows 文件轉換工具,直接右鍵轉換,像複製粘貼一樣! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 FileConverter —— 一個非常簡單

github , c#

jacheut - JAVA IO流簡介

1. IO流概述 IO,即in和out,也就是輸入和輸出,指應用程序和外部設備之間的數據傳遞,常見的外部設備包括文件、管道、網絡連接。 流(Stream),是一個抽象的概念,是指一連串的數據(字符或字節),是以先進先出的方式發送信息的通道。 關於流的特性有下面幾點: 1.先進先出:最先寫入輸出流的數據最先被輸入流讀取到。 2.順序存取:可以一個接一個地往流中寫入一串字節,讀出時也將按寫

JAVA , io

碼猿技術專欄 - Spring Integration 輕鬆實現服務間消息傳遞,真香!

在當今分佈式系統的背景下,如何優雅地實現系統之間的消息傳遞是每個開發者都關心的話題。而Spring Integration,作為Spring家族的一員,正是為了解決這個難題而生。 在這篇文章中,我們將踏上穿越消息之路,深入探討Spring Integration的魅力。 關注公眾號:碼猿技術專欄,回覆關鍵詞:1111 獲取阿里內部Java性能調優手冊! Spring Integration基礎概念

spring , springcloud , springboot , JAVA

福 - BlockingQueue - 基於TransferStack的SynchronousQueue

ThreadPoolExecutor以BlockingQueue存儲待執行任務,包括SynchronousQueue、LinkedBlockingQueue和ArrayBlockingQueue,今天的目的是源碼角度深入研究SynchronousQueue。 之後計劃是繼續研究LinkedBlockingQueue和ArrayBlockingQueue,搬開所有絆腳石之後再開始線程池。 基本概念#

多線程 , JAVA , 阻塞隊列 , 隊列

點墨 - Qt connectiontype

Qt的信號槽連接機制如下: Qt::AutoConnection:默認,如果信號和槽在同一線程,使用DirectConnection;否則使用QueuedConnection。 Qt::DirectConnection:槽函數立即在信號發出的線程執行,同步。 Qt::QueuedConnection:槽函數在接收者的線程的事件循環中異步執行。 Qt::BlockingQueuedCon

qt , connection

尼古拉斯舞王 - 內連接與隱式內連接:SQL連接的本質解析

學習目標: 學習 在SQL查詢中,數據表的連接操作是我們日常開發中最常用的功能之一。今天我們來深入探討兩種實現內連接的方式:顯式內連接和隱式內連接,看看它們之間的區別以及如何選擇。 什麼是內連接? 首先,讓我們明確內連接的核心概念:內連接只返回兩個表中連接條件匹配的行。如果某行在其中一個表中沒有匹配項,那麼這行數據就不會出現在結果集中。 顯式內連接(EXPLICIT

顯式 , 內連接 , 後端開發 , JAVA , SQL

清醒的人最荒唐 - iic屏幕驅動

#include "main.h" #include "i2c.h" #include "gpio.h" /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); /* Private user cod

data , include , 後端開發 , JAVA , Image

湯太鹹 - 面向對象設計原則

開閉原則(Open Closed Principle,OCP):當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求。 里氏替換原則(Liskov Substitution Principle,LSP):子類可以擴展父類的功能,但不能改變父類原有的功能。也就是説:子類繼承父類時,除添加新的方法完成新增功能外,儘量不要重寫父類的方法。

JAVA , 面向對象設計模式

華為雲開發者聯盟 - 最強雲硬盤來了,讓AI模型迭代從1周縮短到1天

摘要:華為雲擎天架構+ Flash-Native存儲引擎+低時延CurreNET,數據存儲和處理還有啥擔心的? 雖然我們已經進入大數據時代,但多數企業數據利用率只有10%,數據的價值沒有得到充分釋放。面對海量數據爆炸式的增長和發掘數據內在價值的巨大需求,擁有彈性伸縮、無限擴展能力的雲存儲正發展成為時代的智能數據底座。 另一方面,隨着人工智能(AI)、VR/AR、5G、自動駕駛等技術的發展,應

ssd , Flash , 華為雲 , 雲存儲 , 數據存儲

cicadasmile - 聊一聊系統重構

打破常規,重立新規; 01 開始想聊這個話題的時候,我是打算放棄的;因為這個話題涉及範圍之廣,內容之多,讓我犯怵; 近幾年,待過兩家公司;一家經歷過重構,另一家也打算重構...... 其實要下定決心,推翻重來,是一個很有勇氣的決定; 歸根結底,不到萬不得已,誰想這麼玩,誰願意花費大精力去做這些髒活、累活; 所以究其原因,也只能説是一種綜合因素吧,就像古話説的,天時、地利、人和; 至於為什麼這是個很

系統 , 重構 , 後端

mob64ca13fe62db - 最新基準測試:Apache Kafka、Apache Pulsar和RabbitMQ哪個最快?_開源_Alok Nikhil

terminal-bench與Apache Kafka:評測事件流處理方案 引言 事件流處理是現代數據架構的核心組件,而Apache Kafka作為分佈式事件流平台,已成為行業標準。本文將介紹如何使用terminal-bench(t-bench)評測基於Apache Kafka的事件流處理方案,幫助開發人員和運維人員快速評估系統性能、

事件流 , 流處理 , 前端開發 , apache , Javascript

huan1993 - Transaction rolled back because marked as rollback-only問題解決

1、背景 在我們的日常開發中,經常會存在在一個Service層中調用另外一個Service層的方法。比如:我們有一個TaskService,裏面有一個execTask方法,且這個方法存在事務,這個方法在執行完之後,需要調用LogService的insertLog方法記錄一條日誌,這個方法上也有事務,不管日誌記錄成功還是失敗,都不能影響execTask方法的執行。因此我們很容易寫出如下代碼。 @Tr

spring , springboot , JAVA , 事務 , 後端