tag 後端

標籤
貢獻557
905
05:25 PM · Oct 25 ,2025

@後端 / 博客 RSS 訂閱

牛肉燒烤屋 - 為什麼不應該在事務中嵌套發送 MQ 消息和 RPC 調用?

引言 或許你曾寫過這樣的代碼: @Transaction // 開啓事務 public void craeteOrder(Order order) { saveOrder(order); sendMQ(order); // 或者是發送 rpc } 在一個事務內,向 MySQL 寫入數據,接下來發送 MQ 或 RPC 調用。在大部分情況下,這樣寫好像沒什麼問題 但如果此時我們下游執行

MySQL , mq , JAVA , 事務 , 後端

收藏 評論

大衞talk - Jest單元測試

由於格式和圖片解析問題,可前往 閲讀原文 前端自動化測試在提高代碼質量、減少錯誤、提高團隊協作和加速交付流程方面發揮着重要作用。它是現代軟件開發中不可或缺的一部分,可以幫助開發團隊構建可靠、高質量的應用程序 單元測試(Unit Testing)和端到端測試(End-to-End Testing)是兩種常見的測試方法,它們在測試的範圍、目的和執行方式上有所不同。單元測試和端到端測試不是相互排斥的,而

jestjs , 單元測試 , 自動化測試 , 後端 , 前端

收藏 評論

風流倜儻的傷痕 - 深入解析NoSQL數據庫:從文檔存儲到圖數據庫的全場景實踐

title: 深入解析NoSQL數據庫:從文檔存儲到圖數據庫的全場景實踐 date: 2025/2/19 updated: 2025/2/19 author: cmdragon excerpt: 通過電商、社交網絡、物聯網等12個行業場景,結合MongoDB聚合管道、Redis Stream實時處理、Cassandra SSTable存儲引擎、Neo4j路徑遍歷算法等42

MySQL , nosql , mongodb , 數據庫 , 後端

收藏 評論

Chuck1sn - 《你不知道的 JAVA》💘 什麼是好的 Web Api 設計 (第一章)

工程思維落地 《你不知道的 JAVA 》系列博客的工程理念與設計模式,已落地成一款 全新設計的 Java 腳手架 ,可與博客配套使用。 Web Api 的重要性 設計 api 端點是後端開發經常接觸的工作,但你是否從來沒有想過好的 web api 應該是什麼樣子? Api 端點的設計就像名片一樣——專業的名片可以在客户面前建立信任感;糟糕的名片會讓你的產品在被使用前就給客户留下負面印象。一旦客户

springsecurity , springboot , JAVA , gradle , 後端

收藏 評論

江湖十年 - Go 併發控制:sync.Map 詳解

我們知道,Go 中的 map 類型是非併發安全的,所以 Go 就在 sync 包中提供了 map 的併發原語 sync.Map,允許併發操作,本文就帶大家詳細解讀下 sync.Map 的原理。 使用示例 sync.Map 提供了基礎類型 map 的常用功能,使用示例如下: package main import ( "fmt" "sync" ) func main() {

面試 , 併發 , 併發編程 , go , 後端

收藏 評論

編碼青年 - GraphQL工具怎麼選?深度解析Apipost在文檔自動化與錯誤定位上如何碾壓Apifox

作為一個十年在一線的全棧開發者,對於GraphQL帶來的效率變革已深刻體驗到,據我瞭解,身邊超過40%的同行都已採用這項技術。但在開發過程中,我和團隊經常遇到如下類似問題:手工編寫複雜Query時頻繁出錯、調試過程像在黑暗裏摸索、文檔維護總比代碼慢半拍...直到我們啓用了Apipost,這款工具徹底改變了我們的工作流。 一、我的調試效率進化史 1、可視化界面 記得第一次接觸GraphQL時,需要反

query , apipost , graphql , 接口文檔 , 後端

收藏 評論

飛騰開發者 - GMAC網絡延時性能優化

【寫在前面】飛騰開發者平台是基於飛騰自身強大的技術基礎和開放能力,聚合行業內優秀資源而打造的。該平台覆蓋了操作系統、算法、數據庫、安全、平台工具、虛擬化、存儲、網絡、固件等多個前沿技術領域,包含了應用使能套件、軟件倉庫、軟件支持、軟件適配認證四大板塊,旨在共享尖端技術,為開發者提供一個涵蓋多領域的開發平台和工具套件。點擊這裏開始你的技術升級之旅吧 本文分享至飛騰開發者平台《GMAC網絡延時性能優

芯片 , 運維 , Linux , 網絡 , 後端

收藏 評論

江湖十年 - Go 併發編程:如何實現一個併發安全的 map

上週發佈的文章「Go 併發控制:sync.Map 詳解」有讀者反饋説我寫的太難了,上來就挑戰源碼,對新手不夠友好。所以這篇文章算作補充,從入門到進階的順序講解一下在 Go 中如何自己實現一個併發安全的 map。 內置 map 首先,我們來測試一下 Go 語言內置 map 併發安全性,示例如下: https://github.com/jianghushinian/blog-go-example/tr

面試 , 併發 , 併發編程 , go , 後端

收藏 評論

axiaoxin - Go 語言泛型用法詳解

本文將帶你從零開始,理解Go 泛型的概念、語法、使用方式,並配有示例代碼,幫助你快速上手。 文章目錄 什麼是泛型? 1. 泛型函數 示例:一個求長度的泛型函數 2. 泛型結構體 示例:一個通用的盒子 3. 泛型集合(Set) 示例:一個通用的集合 4. 泛型通道(Channel) 示例

編程語言 , 泛型 , go , 後端

收藏 評論

DBLens - MySQL鎖機制深度解析:從樂觀鎖到悲觀鎖的哲學思辨與技術實踐

一、併發控制的本質與挑戰 在數據庫系統的核心地帶,併發控制始終是保障數據一致性的核心命題。當每秒百萬級的交易請求在金融系統中穿梭,當電商平台的庫存數字在促銷瞬間劇烈波動,當社交媒體的點贊計數以指數級增長時,數據庫工程師們必須直面併發控制的終極挑戰:如何在保證數據一致性的前提下,實現最大程度的併發性能。 這個問題的解決之道,本質上是對"時間"這個維度的不同處理策略。悲觀鎖(Pessimistic L

MySQL , 事務管理 , 事務 , 事務處理 , 後端

收藏 評論

月半大熊貓 - Spring Cloud史詩級插件!OpenFeign Assistant導航跳轉效率飆升,網友:原來IDEA還能這麼用

🌟 ​OpenFeign Assistant插件靈感來源:靈感源自 MyBatisX 的設計理念。針對JetBrains IDEA生態,專注於解決 ​OpenFeign 接口與遠程服務映射的開發痛點,提供與 MyBatisX 相似的流暢導航體驗,針對 Spring Feign 生態深度優化。 JetBrains IDEA插件市場:https://plugins.jetbrains.com/plu

github , openfeign , springcloud , intellij-idea , 後端

收藏 評論

舒一笑不禿頭 - Maven踩坑記錄與反思

本次事件的發生是在我來到一個新的技術初創團隊,由於團隊中的前同事與我交接代碼時候,關於Maven私服這塊的賬號密碼為給我,導致一系列的愛恨情仇。事件的持續花費兩天時間進行解決,現在總結一下遇到的問題與解決思路! 回顧Mavenue的背景 關於Maven,維基百科給的解釋主要有兩種,分別是Apache軟件基金會所提供,主要是用於解決Java軟件的項目管理與自動構建工具。 詳細介紹Maven快速上手

maven , JAVA , 後端

收藏 評論

江湖十年 - 如何基於 Go 語言設計一個簡潔優雅的分佈式任務系統

在當今雲計算與微服務盛行的時代,分佈式任務系統已成為支撐大規模業務的核心基礎設施。今天就來為大家分享下如何基於 Go 語言從零設計和實現一個架構簡潔且擴展性強的分佈式任務系統。 前置概念 本文會設計並實現一個分佈式任務系統,這裏我們要先明確兩個概念。 分佈式:在我們將要實現的分佈式任務系統中,分佈式是指我們的服務可以部署多個副本,這樣才能確保服務更加穩定。 任務:這裏的任務是指異步任務,可能

面試 , 架構設計 , 分佈式系統 , go , 後端

收藏 評論

白穹雨 - 基於PHP進程控制與Redis隊列的異步任務實踐——解決Excel導入接口超時問題

問題背景與解決方案 問題場景 在實現Excel數據導入功能時,遇到一個典型的生產者-消費者場景: 主流程:Excel文件解析 → 數據校驗 → 數據庫事務寫入 附加流程:將成功數據推送給第三方系統 當第三方接口響應緩慢時(實測平均耗時8-12秒),導致整體接口響應時間超出前端等待閾值,造成以下問題: 前端顯示系統錯誤(HTTP 500) 實際業務數據已完整入庫 用户體驗與數據一致性

thinkphp6 , redis , 異步請求 , 隊列 , 後端

收藏 評論

程序員Seven - 【設計模式】命令模式助力快速添加新命令而不影響現有代碼

概述 日常生活中,我們出去吃飯都會遇到下面的場景。 定義: 將一個請求封裝為一個對象,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令對象進行溝通,這樣方便將命令對象進行存儲、傳遞、調用、增加與管理。 結構 命令模式包含以下主要角色: 抽象命令類(Command)角色: 定義命令的接口,聲明執行的方法。 具體命令(Concrete Command)角色:具體的命令,實現命令接口

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】責任鏈模式教你如何優雅地分發任務

概述 在現實生活中,常常會出現這樣的事例:一個請求有多個對象可以處理,但每個對象的處理條件或權限不同。例如,公司員工請假,可批假的領導有部門負責人、副總經理、總經理等,但每個領導能批准的天數不同,員工必須根據自己要請假的天數去找不同的領導簽名,也就是説員工必須記住每個領導的姓名、電話和地址等信息,這增加了難度。這樣的例子還有很多,如找領導出差報銷、生活中的“擊鼓傳花”遊戲等。 定義: 又名職責鏈模

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】探索狀態模式在現代軟件開發中的應用

概述 【例】通過按鈕來控制一個電梯的狀態,一個電梯有開門狀態,關門狀態,停止狀態,運行狀態。每一種狀態改變,都有可能要根據其他狀態來更新處理。例如,如果電梯門現在處於運行時狀態,就不能進行開門操作,而如果電梯門是停止狀態,就可以執行開門操作。 類圖如下: 代碼如下: public interface ILift { //電梯的4個狀態 //開門狀態 public fina

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】從事件驅動到即時更新:掌握觀察者模式的核心技巧

概述 定義:又被稱為發佈-訂閲(Publish/Subscribe)模式,它定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己。 結構 在觀察者模式中有如下角色: Subject:抽象主題(抽象被觀察者),抽象主題角色把所有觀察者對象保存在一個集合裏,每個主題都可以有任意數量的觀察者,抽象主題提供一個接口

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】使用中介者模式實現鬆耦合設計

概述 一般來説,同事類之間的關係是比較複雜的,多個同事類之間互相關聯時,他們之間的關係會呈現為複雜的網狀結構,這是一種過度耦合的架構,即不利於類的複用,也不穩定。例如在下左圖中,有六個同事類對象,假如對象1發生變化,那麼將會有4個對象受到影響。如果對象2發生變化,那麼將會有5個對象受到影響。也就是説,同事類之間直接關聯的設計是不好的。 如果引入中介者模式,那麼同事類之間的關係將變為星型結構,從下右

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】遍歷集合的藝術:深入探索迭代器模式的無限可能

概述 定義:提供一個對象來順序訪問聚合對象中的一系列數據,而不暴露聚合對象的內部表示。 結構 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定義存儲、添加、刪除聚合元素以及創建迭代器對象的接口。 具體聚合(ConcreteAggregate)角色:實現抽象聚合類,返回一個具體迭代器的實例。 抽象迭代器(Iterator)角色:定義訪問和遍歷聚合元素的接口,通常包含 ha

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】通過訪問者模式實現分離算法與對象結構

概述 定義:封裝一些作用於某種數據結構中的各元素的操作(將數據結構於元素進行分離),它可以在不改變這個數據結構的前提下定義作用於這些元素的新的操作。 結構 訪問者模式包含以下主要角色: 抽象訪問者(Visitor)角色:定義了對每一個元素(Element)訪問的行為,它的參數就是可以訪問的元素,它的方法個數理論上來講與元素類個數(Element的實現類個數)是一樣的,從這點不難看出,訪問者模式

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】備忘錄模式教你如何優雅地處理狀態快照

概述 備忘錄模式提供了一種狀態恢復的實現機制,使得用户可以方便地回到一個特定的歷史步驟,當新的狀態無效或者存在問題時,可以使用暫時存儲起來的備忘錄將狀態復原,很多軟件都提供了撤銷(Undo)操作,如 Word、記事本、Photoshop、IDEA等軟件在編輯時按 Ctrl+Z 組合鍵時能撤銷當前操作,使文檔恢復到之前的狀態;還有在瀏覽器中的後退鍵、數據庫事務管理中的回滾操作、玩遊戲時的中間結果存檔

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】使用解釋器模式簡化複雜的語法規則

概述 如上圖,設計一個軟件用來進行加減計算。我們第一想法就是使用工具類,提供對應的加法和減法的工具方法。 //用於兩個整數相加 public static int add(int a,int b){ return a + b; } //用於兩個整數相加 public static int add(int a,int b,int c){ return a + b + c; }

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - SpringCloud帶你走進微服務的世界

認識微服務 隨着互聯網行業的發展,對服務的要求也越來越高,服務架構也從單體架構逐漸演變為現在流行的微服務架構。這些架構之間有怎樣的差別呢? 單體架構 單體架構:將業務的所有功能集中在一個項目中開發,打成一個包部署。 單體架構的優缺點如下: 優點: 架構簡單 部署成本低 缺點: 耦合度高(維護困難、升級困難) 分佈式架構 分佈式架構:根據業務功能對系統做拆分,每個業務功能模塊作為獨立

設計模式 , JAVA , 後端

收藏 評論