收藏 / 列表

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

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

程序員

大廠碼農老A - CR被批“寫得像坨屎”,我三句話讓他當場閉嘴

這坨屎山,我接了 大家好,我是老A。 我想很多程序員有過這種經歷,新接手一個項目,打開工程一看,妥妥的一大坨🤦,內心OS:好嘛,又要“屎山雕花”了。。。 我這兩年在做電商業務,所以業務上經常會搞大促,3天一小促,5天一大促,作為技術早就習慣了這種研發節奏(倒排)。今年6月是我們業務年中的一次大型大促,所以5月份的需求爆炸多,基本都是倒排,業務天天拿着大喇叭在我們屁股後喊📢:這個需求不做就

segmentfault , springboot , JAVA , 程序員 , 後端

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

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

filter , JAVA , token , Jwt

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

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

設計模式 , JAVA , 策略模式

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

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

MySQL , mq , JAVA , 事務 , 後端

seazhan - 【手寫 RPC】手寫一個RPC框架 使用Netty + java虛擬線程

【手寫RPC框架】如何使用netty手寫一個RPC框架 結合新特性 虛擬線程 什麼是RPC框架 RPC(Remote Procedure Call)遠程過程調用,是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC框架是一種遠程調用的框架,它可以讓你像調用本地方法一樣調用遠程方法。 避免了開發人員自己去封裝網絡請求、連接管理、序列化、反序列化等操作,提高了開發效率。 N

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - 訂單支付後庫存不扣減,如何用RabbitMQ來優化?

上週在Review學員代碼的時候,我們發現了一個很基礎但很重要的問題:支付回調流程中缺少了庫存扣減環節。這類問題雖然基礎,但如果直接進入生產環境,可能導致庫存的數據和實際銷售的情況不一致,出現超賣的情況。能夠及時發現這種問題,這就是Review代碼的重要性。 先看這段有問題的代碼: // 原來的支付回調邏輯(問題代碼) func PaymentCallback(ctx context.Contex

go , 後端

字節幺零二四 - 算法典型例題:N皇后問題,五種解法,逐步優化(遞歸版)

本文將介紹N皇后問題的五種解法,包括樸素回溯法、對稱優化、標記優化、可用優化、位運算優化,對於每種解題思路,提供相應的遞歸版代碼實現,最後將對每種解法進行測試,橫向對比每種解法的求解時間。 題目描述 在 N×N 格的國際象棋上擺放 N 個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法? 回溯法 解題思路 回溯法採用深度有限的搜索策略遍歷問題的解空間樹,可

遞歸 , 算法 , 回溯法

Awbeci - SpringCloud-WebClient使用Get和Post請求

前言 這是一篇關於SpringCloud中使用webclient調用微服務的總結性文章,使用期間遇到好多問題及其解決方法,希望幫助到大家。 準備 首先我們在SpringCloud項目中配置WebClient,如下所示: @Component public class WebClientConfig { @Bean @LoadBalanced public WebClient

springcloud , JAVA

lindsay_bubble - Leetcode 85_maximal_rectangle_最大矩形

一、棧 承接Leetcode 84,柱狀圖算最大矩形面積,把該題入參改為柱狀圖高度即可 PS:這版本手搓int[]做棧和直接用ArrayDeque做棧,結果僅差2ms;但題84相差近15ms。 public int maximalRectangle(char[][] matrix) { if (matrix.length == 0) {

leetcode , , JAVA

wasdquiop - Linux服務器ARM架構安裝Mysql(aarch64)

一、卸載舊版本 查詢是否存在舊版本 rpm -qa | grep mysql rpm -qa | grep mariadb 如果存在,挨個刪除已有版本: yum -y remove 版本 查看etc/目錄下是否存在my.cnf文件 ls etc/my.cnf # 刪除 rm my.cnf 卸載MySQL後殘留數據保存路徑 find / -name mysql # 刪除 rm -rf 查找的路徑名

MySQL , arm64 , arm , centos7 , Linux

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

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

github , rust , postman

呀哈哈kk - 【詳解】Kali安裝BCM43142802.11b/g/nLinux驅動

Kali安裝BCM43142802.11b/g/n Linux驅動 在使用Kali Linux時,有時會遇到無線網卡驅動不兼容的問題。本文將詳細介紹如何在Kali Linux上安裝Broadcom BCM43142 802.11b/g/n的Linux驅動。 環境準備 操作系統:Kali Linux 2023.1 硬件:帶有BCM43142無線網

驅動程序 , 加載 , 無線網卡 , 後端開發 , JAVA

wayn - Spring Security權限控制框架使用指南

在常用的後台管理系統中,通常都會有訪問權限控制的需求,用於限制不同人員對於接口的訪問能力,如果用户不具備指定的權限,則不能訪問某些接口。 本文將用 waynboot-mall 項目舉例,給大家介紹常見後管系統如何引入權限控制框架 Spring Security。大綱如下, 一、什麼是 Spring Security Spring Security 是一個基於 Spring 框架的開源項目,旨在為

權限控制 , springsecurity , springboot , JAVA , spring-security

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

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

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

journey - Centos7安裝hadoop3.x集羣

1、環境準備 ip hostname 備註 172.16.153.10 node1 NameNode DataNode JobHistoryServer NodeManager 172.16.153.11 node2 ResourceManager SecondeNameNode DataNode

hadoop

mb61c46a7ab1eee - Java String 性能優化與內存管理:現代開發實戰指南 - 詳解

在 Java 編程中,String 類是我們最親密的夥伴之一,但它的使用也隱藏着許多性能陷阱。隨着 Java 版本的迭代,String 類的內部實現發生了顯著變化,優化技巧也在不斷演進。本文將深入探討 Java String 的最新優化技巧,幫助您提升應用程序性能並優化內存使用。 1. String 類的演進與內部實現 理解 String 類的內部實現是有效優化的基礎

字符串 , 字符串常量池 , 後端開發 , JAVA , Python

CodePulse代碼脈搏 - 智能練習生成與進度追蹤

基於AI編程導師,添加智能練習生成和個性化學習路徑功能。 1. 智能練習生成器 # exercise_generator.py import random from typing import List, Dict from enum import Enum class Difficulty(Enum): BEGINNER = "beginner"

List , 後端開發 , JAVA , ci , Json

sangwu - 70. 爬樓梯

70. 爬樓梯 假設你正在爬樓梯。需要n階你才能到達樓頂。 每次你可以爬1或2個台階。你有多少種不同的方法可以爬到樓頂呢? 示例 1: 輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階 示例 2: 輸入:n = 3 輸出:3 解釋:有三種方法可以爬到樓頂。 1

狀態轉移 , 數組 , yyds乾貨盤點 , i++ , 後端開發 , JAVA

虎斑嘟嘟 - 多模態對齊的表示學習:統一對比散度框架詳解

多模態對齊的表示學習:統一對比散度框架詳解 1. 引言:多模態對齊的核心挑戰 多模態表示學習作為人工智能領域的前沿方向,旨在使機器能夠像人類一樣理解和處理文本、圖像、音頻等不同模態的信息。其核心挑戰在於如何構建一個共享的語義空間,使得異構數據在這個空間中可以相互對齊和理解。 不同模態數據之間存在三大根本矛盾:符號系統的異構性(自然語言基於離散符號系統,而視覺、聽

yyds乾貨盤點 , 錨點 , 相似度 , 後端開發 , JAVA , 模態

Turbo_K - 如何實現數據庫的不停服遷移?

數據庫不停服遷移 是指在不影響現有系統正常運行的情況下,進行數據庫的遷移操作。這對於保障系統的高可用性、減少停機時間以及提高業務連續性至關重要。以下是幾種常見的實現數據庫不停服遷移的方式和步驟。 1. 數據庫遷移的需求與挑戰 在進行數據庫遷移時,常見的挑戰包括: 業務不中斷:遷移過程中必須確保業務正常進行,避免影響客户或用户。 數據一致性:源數

數據同步 , 數據 , 數據庫 , 後端開發 , JAVA

自由的瘋 - 《分佈式 + 國產數據庫 + Docker:技術選型避坑指南》(十二)

一、為什麼要遷移到 K8s?Docker Compose 的 3 個不可逾越瓶頸 1. Docker Compose vs K8s:核心能力對比(遷移的本質原因) 能力維度 Docker Compose(單機

Deployment , Pod , yyds乾貨盤點 , 後端開發 , JAVA , Docker

小風箏 - 使用 Sa-Token 實現 [記住我] 模式登錄、七天免登錄

一、需求分析 如圖所示,一般網站的登錄界面都會有一個 [記住我] 按鈕,當你勾選它登錄後,即使你關閉瀏覽器再次打開網站,也依然會處於登錄狀態,無須重複驗證密碼: 本文將詳細介紹在 Sa-Token中,如何做到以下登錄模式: 記住我登錄:登錄後關閉瀏覽器,再次打開網站登錄狀態依然有效,無需重複登錄。 僅本次有效登錄:登錄後關閉瀏覽器,再次打開網站登錄狀態將失效,需要再次登錄。 七天免登錄:

sa-token , 權限控制 , spring , springboot , JAVA

wx661607c93692e - Java 圖片縮略圖工具類

一、核心需求分析 我們希望工具類支持兩種主流模式: 模式 1:等比縮放(Fit) 在不超過目標寬高的前提下,按原圖比例縮放,空白處留白或透明。 適用:商品圖、文章封面預覽。 模式 2:中心裁剪(Crop) 先等比縮放使圖像覆蓋整個目標區域,再從中心裁剪出指定尺寸。 適用:用户頭像

縮放 , 後端開發 , JAVA , Image