收藏 / 列表

老污的貓 - 領域驅動設計(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 , 故障 , 後端 , 前端

悲傷的鴨蛋 - Maven、測試、Junit依賴

Maven的作用 管理依賴:通過pom.xml管理項目依賴的資源(jar包)。(不再需要每次都手動導入jar包) 項目構建(標準化跨平台的項目構建方式):complie,test,package,install(編譯,測試,打包,發佈)等項目構建流程 統一項目結構:提供標準、統一的項目結構(主程序,測試程序) 倉庫:用於存儲資源,管理各種jar包。 本地倉庫:自己計算機上的

junit , maven , 測試 , JAVA

打盹的猴子 - 策略模式(Strategy Pattern)深度解析教程

一、模式定義 策略模式屬於行為型設計模式,通過定義算法族並將其封裝為獨立的策略類,使得算法可以動態切換且與使用它的客户端解耦。該模式通過組合替代繼承,符合開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Strategy(策略接口) 定義所有支持的算法的公共接口 ConcreteStrategy(具體策略) 實現策略接口的具體算法

設計模式 , JAVA , 策略模式

牛肉燒烤屋 - TCP 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次send()發送了"Hello"和"World",接收方卻可能在一個recv()調用中讀到完整的"HelloWorld";或是發送了一個完整的 JSON 對象,接收端卻需要多次讀取才能拼湊出完整數據。這種現象被中文技術社區廣泛稱為“TCP 粘包” 然而,若我們深入 TCP 協議的設計本質,會發現一個令人困惑的矛盾——RFC 文檔中從未定義過

tcp , 計算機網絡 , 後端

seazhan - 【RocketMQ 消息中間件】RocketMQ篇之-消息存儲 為什麼性能高 CommitLog 刷盤機制 同步 異步

RocketMQ篇之-消息存儲 RocketMQ作為一款分佈式消息中間件,高可靠性是其最重要的特性之一。 所以需要將消息進行持久化存儲,以保證消息不丟失。 RocketMQ的消息存儲是RocketMQ的核心組件之一,負責消息的存儲和傳輸。RocketMQ的消息存儲主要包括CommitLog、ConsumeQueue、IndexFile、Checkpoint等幾個部分。 (前置)消息存儲交互流

中間件 , JAVA , 消息隊列

王中陽講編程 - 騰訊二面:Redis與MySQL雙寫一致性如何保證?

前不久,有位朋友去騰訊面試,他説被問到 Redis 與 MySQL 的一致性如何保證? 本文將跟大家一起來探討如何回答這個問題。 為什麼要使用 Redis? 首先為了提升服務器的性能,一般都是給服務器加上 redis,讓其作為數據庫的緩存。這樣,在客户端請求數據時,如果能在緩存中命中數據,那就查詢緩存,不用再去查詢數據庫,從而減輕數據庫的壓力,提高服務器的性能。 數據更新時,先更新數據庫,還是先更

redis , 騰訊 , MySQL , 面試問題

Awbeci - Seaurl-分享一個雲上網址收藏網站

前言 最近網上發現一個強大的網址收藏網站,點擊這裏打開,分享給大家,希望大家會喜歡。 網址空間 "網址空間"是一個專業的在線平台,它允許用户分享他們在日常生活和工作中頻繁訪問的網站鏈接。此外,該平台還提供了社交功能,使用户能夠查看並探索他們的朋友們所添加的網站鏈接,從而增強信息共享和網絡資源的發現。 當你添加網址時候,它會自動帶出標題和描述,非常方便。 它還提供了快捷工具功能,上面列出

網址 , url

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

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

leetcode , , JAVA

wasdquiop - centos7 安裝 jdk

卸載舊版本 新環境虛擬機有自己自帶的openjdk,在安裝jdk前需要先把虛擬機的卸掉,防止多個jdk衝突 查看已安裝jdk rpm -qa | grep jdk rpm -qa | grep java 如果存在,挨個刪除已有版本: yum -y remove jdk版本 上傳 安裝包 鏈接: https://pan.baidu.com/s/1cOV10HZAZQPtRU1XyXG1tw

JDK , centos7 , Linux , JAVA , 程序員

witt - mybatis升級到3.4.5後導致的偽bug

關鍵詞: mybatis、foreach、foreach context scope、MyBatis3.4.5、BindingException 背景: 隨着團隊開發人數越來越多,項目迭代越來越久,加上一些半吊子開發的盲目自信,項目如果不夠健壯,就會出現莫名其妙的問題,甚至讓測試團隊對某些開發一瞬間喪失全部信任。 起因是團隊有150多個服務的分佈式微服務項目,服務之間有RPC調用關係,也有公

spring , maven , mapper , JAVA , Mybatis

ximinghui - 怎麼讓IDE開發工具知道哪個區域的代碼是一塊的?

源:https://blog.ximinghui.org/30dd840e/index.html 有時候一個代碼源文件中內容過多時,我們可能想要對其進行分區,比如我想要將我的實體類分為 字段 、 行為 、 規則校驗 、 創建方法 四個部分或分區。 但是,我該怎麼告訴我的 NetBeans(劃掉) Eclipse(劃掉) IntelliJ IDEA 並讓它知道我的意思呢? 一般開發者可能會用

code , 代碼風格 , 代碼編輯器 , ide , 後端

Java陳序員 - 再見 Postman!一款開源免費的全能 API 客户端工具!

大家好,我是 Java陳序員。 在日常開發工作中,常常需要進行 API 接口調試,通常是藉助 Postman 進行調試或者接口管理。 但是基於 Electron 框架開發的 Postman,啓動速度較慢,且運行時會佔用較多內存和 CPU 資源。而且依賴雲同步功能,用户的接口集合、密鑰、Token 等敏感信息可能存儲在第三方服務器,存在數據泄露風險。此外,一些高級功能,還需要進行付費。 今天,給大家

github , rust , postman

半夏之沫 - Mybatis源碼-插件的使用和原理

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

插件 , interceptor , plugin , 攔截器 , Mybatis

jacheut - 【java基礎】== 和 equals 的區別,重寫equals可以不重寫hashcode嗎

== 和 equals 的區別 在編程中,== 和 equals 是兩個經常使用的運算符,但它們在處理字符串和對象時有所不同。 讓我們詳細瞭解一下它們之間的區別。 首先,讓我們明確一下,== 是一個比較運算符,它比較兩個值的值是否相等。 如果兩個值相等,它返回 true;否則返回 false。 對於基本數據類型(例如 int、float、char 等),== 直接比較它們的值是否相等。 對於對象(

基礎 , JAVA

碼猿技術專欄 - SpringBoot大文件上傳卡死?分塊切割術搞定GB級傳輸,速度飆升!

在互聯網應用中,大文件上傳是一個常見而棘手的挑戰。傳統的單文件上傳方式在面對大文件時經常面臨超時、內存溢出等問題。本文將深入探討如何利用Spring Boot實現高效的分塊上傳方案,解決大文件傳輸痛點。 一、為什麼需要文件分塊上傳? 當文件上傳超過100MB時,傳統上傳方式存在三大痛點: 網絡傳輸不穩定: 單次請求時間長,容易中斷 服務器資源耗盡: 大文件一次性加載導致內存溢出 上傳失敗代

spring , springcloud , springboot , JAVA

福 - Spring FrameWork從入門到NB - 依賴注入DI

依賴注入DI指的是Spring IoC容器對對象的依賴對象的處理過程,對象的依賴對象,説起來比較拗口,其實指的就是:如果一個對象A的某一屬性為對象B,則對象B就是對象A的依賴對象,對象A創建的過程中也要創建對象B並注入到對象A,之後對象A才能正常工作。 Spring IoC可通過如下三種方式注入依賴對象: 構造器參數 工廠方法參數 Setter方法 Spring DI因此也分為兩種:基於

spring , 依賴注入 , JAVA

點墨 - QT自定義組件系列1:run一個示例-Custom Widget Plugin Example

1.打開QT示例,Custom Widget Plugin Example 2.選擇編譯環境,注意需要與QT creator保持一致,可以通過Help-About Qt Creator裏查看qt creator的編譯環境,我這裏是Qt 6.2.3(MSVC 2019,64 bit) 3.選擇release構建 4.將生成的customwidgetplugin.dll

plugin , qt

尼古拉斯舞王 - 文心 5.0 來了,百度大模型的破局之戰

2025 年 11 月 8 日,百度官方博客發佈消息,ERNIE 5.0 Preview 在 LMArena 文本排行榜中拿到了全球第二的成績。這個成績排在 Gemini 2.5 Pro 之後,和 GPT-5-High 並列,超過了 DeepSeek-R1 和 Qwen3-Max。 LMArena 是個什麼榜單?它不是實驗室裏跑出來的基準測試,而是真實用户投票選出來的。用户

後端開發 , JAVA , 開發者 , 模態 , 百度

清醒的人最荒唐 - ImportBeanDefinitionRegistrar與BeanDefinitionRegistryPostProcessor的區別

概述 如果想實現自定義註冊bean到spring容器中,常見的做法有兩種 @Import+ImportBeanDefinitionRegistrar BeanDefinitionRegistryPostProcessor BeanDefinitionRegistryPostProcessor與ImportBeanDefinitionRe

spring , 自定義 , 後端開發 , JAVA , ide

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

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

JAVA , 面向對象設計模式

華為雲開發者聯盟 - 聊聊LiteOS事件模塊的結構體、初始化及常用操作

摘要:本文通過分析LiteOS事件模塊的源碼,深入掌握事件的使用。 本文分享自華為雲社區《LiteOS內核源碼分析系列九 事件Event》,原文作者:zhushy 。 事件(Event)是一種任務間通信的機制,可用於任務間的同步。多任務環境下,任務之間往往需要同步操作,一個等待即是一個同步。事件可以提供一對多、多對多的同步操作。本文通過分析LiteOS事件模塊的源碼,深入掌握事件的使用。 L

物聯網 , 華為雲 , 事件 , 結構體

cicadasmile - SpringBoot3安全管理

標籤:Security.登錄.權限; 一、簡介 SpringSecurity組件可以為服務提供安全管理的能力,比如身份驗證、授權和針對常見攻擊的保護,是保護基於spring應用程序的事實上的標準; 在實際開發中,最常用的是登錄驗證和權限體系兩大功能,在登錄時完成身份的驗證,加載相關信息和角色權限,在訪問其他系統資源時,進行權限的驗證,保護系統的安全; 二、工程搭建 1、工程結構 2、依賴管理 在

springsecurity , springboot

mob64ca13fe62db - TPS、併發用户數、吞吐量關係

併發用户數:是指模擬用户實際去 請求的用户數量,模擬每個人去操作。 吞吐量:可以是 流量 也 可以是業務量。 持續時間1分鐘 10個用户併發,按每秒1個線程數來計算 請求數= 10用户×60分鐘×1個線程= 600次請求。 吞吐量=600個請求。 吞吐率=600個請求÷1分鐘=60個請求/秒 持續時間1分鐘 20個用户併發,按每秒1個線程來計算

請求超時 , 高負載 , 基線 , 後端開發 , Python