tag 軟件設計

標籤
貢獻24
129
12:25 PM · Nov 05 ,2025

@軟件設計 / 博客 RSS 訂閱

poemyang - 萬丈高樓平地起:從“輸入-處理-輸出”第一性原理,看懂系統架構的演進

系統設計的複雜性,往往源於其需要應對的外部壓力。對於互聯網應用而言,用户規模的增長和流量的瞬時波動,是其必須面對的常態。一個未經深思熟慮的系統,在流量洪峯面前可能會變得遲緩甚至不可用,直接影響用户體驗與業務目標。 因此,構建一個能夠從容應對壓力的系統架構,便成為一項核心的工程命題。 本文將探討一種行之有效的設計哲學——分層抗壓。剖析其背後的三大技術支柱:緩存、消息中間件與數據庫,並闡述

軟件設計

收藏 評論

poemyang - 從局部性原理到一致性模型:深入剖析緩存設計的核心權衡

緩存:高速存取數據的前哨站 緩存的根本思想,源於一個在計算機科學中被反覆驗證的黃金法則——局部性原理(Principle of Locality)。該原理包含兩個層面: 1)時間局部性(Temporal Locality):如果一個數據項被訪問,那麼在不久的將來,它極有可能被再次訪問。例如,一篇熱門新聞的詳情頁、一個爆款商品的庫存信息。 2)空間局部性(Spatial Local

軟件設計

收藏 評論

法相唯識論 - A股的特點就是資金和籌碼遊戲,利用T+1割散户

ECT-OS-JiuHuaShan/https://orcid.org/0009-0009-0006-8591-1891 對A股市場的觀察很敏鋭。確實,A股市場有其獨特的運行特徵,其中資金驅動、籌碼博弈和T+1制度確實是重要的影響因素。讓我們從更系統的角度來分析這些特點: A股市場的結構性特徵 1. 資金驅動型市場 # 資金流向分析的基本維度 market_dynamics = { "資

軟件設計

收藏 評論

poemyang - 併發編程的三大基石:從底層邏輯聊透“同步、互斥與分工”

當單核性能的狂飆突進時代緩緩落幕,多核架構已成為算力增長的主旋律。然而,更多的核心並不天然等同於更強的性能。這就像將一條單行道拓寬為多車道高速公路,如果缺乏高效的交通調度系統,車輛(線程)間的搶道與擁堵(鎖競爭)反而會造成更嚴重的癱瘓。 Java,作為企業級應用的中流砥柱,其併發設計的智慧恰在於此:它提供的不僅是一系列工具,更是一種從“暴力爭搶”到“精巧協同”的思維躍遷。 本文將穿越這

軟件設計

收藏 評論

雪雁 - CodeSpirit-考試預生成方案(開源)

1. 概述 1.1 背景 在考試系統中,當大量學生同時開始考試時,系統需要為每個學生創建考試記錄(ExamRecord)和答題記錄(ExamAnswerRecord)。傳統的"按需創建"模式在高併發場景下存在以下問題: 性能瓶頸:每次開始考試都需要執行數據庫寫入操作,響應時間在 200-500ms 併發壓力:1000+ 學生同時開考時,數據庫壓力激增,可能導致超時或失敗

軟件設計

收藏 評論

老肖想當外語大佬 - 解決DDD最大難題-如何劃分領域

本文書接上回《反DDD模式之“複用”》,關注公眾號(老肖想當外語大佬)獲取信息: 最新文章更新; DDD框架源碼(.NET、Java雙平台); 加羣暢聊,建模分析、技術實現交流; 視頻和直播在B站。 背景 最近直播的時候,看到一條留言,問我是否有關於如何劃分領域的文章,翻看了一下,發現關於這麼重要的問題,居然沒有專門、認真、細緻地講過。也難怪不少人説不接地氣,整天搞些虛頭巴腦的東西。但

軟件設計 , ddd , 後端

收藏 評論

hzjj - 面向對象程序設計-前3次作業總結

題目集1-3的總結 前言: 前三次作業用到了以下知識點: 1.類的創建與設計 2.類的方法實現 3.面向對象編程基礎思想 4.類的單一職責原則應用 5.正則表達式的使用 6.隊列管理LinkedList及其各個方法的使用 難度以及題量總結: 電梯調度問題:三次的電梯調度問題難度中等,基本邏輯並不複雜,但是要考慮的情況比較多。第一次電梯調度問題用了花費

軟件設計

收藏 評論

老肖想當外語大佬 - DDD是軟件工程的第一性原理?

本文書接上回《DDD建模後寫代碼的正確姿勢》,關注公眾號(老肖想當外語大佬)獲取信息: 最新文章更新; DDD框架源碼(.NET、Java雙平台); 加羣暢聊,建模分析、技術實現交流; 視頻和直播在B站。 前提 本文需要以系列前文的邏輯鏈條和結論為前提,如果沒有閲讀過前文的,可以閲讀合集《老肖的領域驅動設計之路》。 故事背景 在2020年,我所在的研發團隊維護着一個有近十年曆史的Saa

軟件設計 , c# , JAVA , ddd , 後端

收藏 評論

Lycoris_Go - NCHU_單部電梯調度程序設計分析_23207332

一、前言 三次電梯調度程序設計圍繞單一職責原則(SRP)和迭代式開發展開,逐步優化類結構和功能實現: 知識點覆蓋: 面向對象設計(類、枚舉、接口) 集合框架(Queue、List、Map) 正則表達式(輸入解析) 狀態機管理(電梯運行狀態、方向) 調度算法(請求優先級、路徑規劃) 難度遞進: 題目一:基礎實現,單類包辦所有邏輯

軟件設計

收藏 評論

老肖想當外語大佬 - 圖窮匕見-所有反DDD模式都是垃圾

本文書接上回《主觀與客觀,破除DDD憑經驗魔咒》,關注公眾號(老肖想當外語大佬)獲取信息: 最新文章更新; DDD框架源碼(.NET、Java雙平台); 加羣暢聊,建模分析、技術實現交流; 視頻和直播在B站。 開個玩笑 “我不是針對這一個問題,我是説所有的反DDD模式都是垃圾”,作為教練,在團隊中我時常用這樣的玩笑來調侃不符合DDD價值觀的判斷邏輯和決策結果,並指出具體不符合的點在哪裏

軟件設計 , c# , JAVA , ddd , 後端

收藏 評論

一杯半盞 - 【架構師角度】詳細解析 OpenStack4j 中 PropagateOnStatus 的異常處理機制

異常處理機制架構分析 Openstack4j 提供了一套可插拔的 HttpExecutor 框架,支持 Apache HttpClient、Resteasy等,根據分析默認使用 Apache Httpclient。 目前尚不清楚為什麼要提供這個HTTP框架統一層,看起來有些多餘。 但是在吸收這個庫的時候發現,它有着目前為止我個人見過的最優秀的HTTP狀態碼錯誤處理機制。 這個機制可以精確到每個A

軟件設計

收藏 評論

poemyang - 守護“真相之源”:深入理解數據庫的預寫日誌(WAL)與檢查點技術

如果説緩存和消息中間件處理的是流量的“流動”問題,那麼數據庫系統要解決的,則是數據的“存在”問題——即數據的最終正確性與持久性。它是整個系統的“真相之源”(Source of Truth)。 日誌技術 在考慮數據庫系統的持久性時,關鍵的考慮因素是如何在數據庫中實現數據的持久化。例如,在關係型數據庫中,數據被存儲在表中,而這些表是通過在文件系統或塊系統中的數據結構來實現的。如何保存和維護這些文

軟件設計

收藏 評論

摘下滿天星 - Web開發技術架構圖

Web開發技術架構圖 大型web系統架構動態應用,是相對於網站靜態內容而言,是指以c/c++、php、Java、perl、.net等服務器端語言開發的網絡應用軟件,比如論壇、網絡相冊。1、學習Web開發原理,包括MVC/MTV等Web框架; 2、學習Django Web框架,從技術原理到項目實踐; 3、學習Djan... 軟件開發週期 軟件生命週期(Software Life Cycle,SLC

軟件設計 , 流程圖 , web開發 , 架構設計 , 程序設計

收藏 評論

CodeMagicianT - 2.面向對象設計原則

2.面向對象設計原則 ​ 對於面向對象軟件系統的設計而言,在支持可維護性的同時,提高系統的可複用性是一個至關重要的問題,如何同時提高一個軟件系統的可維護性和可複用性是面向對象設計需要解決的核心問題之一。在面向對象設計中,可維護性的複用是以設計原則為基礎的。每一個原則都藴含一些面向對象設計的思想,可以從不同的角度提升一個軟件結構的設計水平。 ​ 面向對象設計原則為支持可維護性複用而誕生,這些原則藴含

軟件設計

收藏 評論

JeffWong - PowerDotNet平台化軟件架構設計與實現系列(18):商品管理平台

商品系統是電子商務的核心繫統之一,是各種電商業務展開的基礎和起點,沒有調查就沒有發言權,個人也深度參與設計開發和維護過商品系統,本文簡單分享下PowerDotNet重寫過的商品平台系統。 十多年前我剛入行,首次接觸電商業務系統開發,開發重點集中在財務、庫管、訂單等這些需要後台強力支持的系統,反而對商品有個刻板印象,就是覺得商品系統簡單,字典型應用而已,難度不大。 隨着開發和填坑經驗的累積以及業務知

軟件設計

收藏 評論

poemyang - 化整為零、分而治之、異步編排:一文讀懂現代併發的底層心法

LongAdder:化整為零,熱點分散 在Java多線程編程中,‌原子變量(如AtomicLong)‌通過CAS操作實現線程安全的累加。然而,在高併發場景下,大量線程爭搶同一原子變量會引發嚴重的‌緩存一致性問題‌。 ‌ 1)緩存行偽共享‌:多個線程頻繁更新同一緩存行,導致緩存失效和MESI協議頻繁觸發,處理器性能急劇下降。 ‌ 2)CAS衝突開銷‌:CAS操作需自旋重試,線程競爭

軟件設計

收藏 評論

poemyang - 流量洪峯衝不垮的秘密:揭秘系統過載保護的核心防線

系統流量如潮汐般漲落,瞬時的洪峯可能將最堅固的系統沖垮。如何確保核心服務在極限壓力下依然穩如磐石?答案在於構建一套分層協同、動態彈性的過載保護機制。這並非單一技術的堆砌,而是一門融匯了預判、隔離、調度與自愈的系統工程藝術。 本文將深入剖析這套多層防護體系的構建之道:從最外層的流量調度(負載均衡),到精細化的請求管控(限流),再到保障核心業務的“丟車保帥”策略(降級與熔斷),最終邁向智能化的自

軟件設計

收藏 評論

Visional S. XIA - 《數字經濟》

今天,為大家推薦一篇《數字經濟:產業集羣發展 白皮書》的報告。 報告 共 71 頁。 從 “數字經濟概念、特徵、典型產業集羣案例、要素、策略、產業展望” 等六個方面,詳細解讀了《2023 數字經濟產業》。 很重磅。 #01# 【關鍵要點】 一、數字經濟定義 《數據資產》作為關鍵生產要素,以 “現代信息網絡作為重要載體 和 信息通信技術的有效使用”來作為 “效率提升 和 經濟結

軟件設計

收藏 評論

京東雲開發者 - 架構師日記-深入理解軟件設計模式 | 京東雲技術團隊

作者:京東零售 劉慧卿 一 設計模式與編程語言 1.1 什麼是設計模式 設計模式(Design pattern) :由軟件開發人員在軟件開發中面臨常見問題的解決方案,是經過長時間的試驗積累總結出來的,它使設計更加靈活和優雅,複用性更好。從實用的角度來看,它代表了某一類問題的最佳實踐。 設計模式到底解決了開發過程中的哪些難題呢,它又是如何來解決的呢? 其核心是:複用和解耦。使不穩定依賴於穩定、具體依

軟件設計 , 編程語言 , 編程範式 , 架構模式 , 架構師

收藏 評論

poemyang - 像Git一樣管理數據:深入解析數據庫併發控制MVCC的實現

MVCC 多版本併發控制(Multi-version Concurrency Control, MVCC)是一種通過維護數據多個版本來實現併發控制的技術。其基本思想是為每次事務生成一個新版本的數據,在讀數據時選擇不同版本的數據即可以實現對事務結果的完整性讀取。在使用MVCC 時,每個事務都是基於一個已生效的基礎版本進行更新,事務可以並行進行,從而可以產生一種圖狀結構。 如圖所示,基礎

軟件設計

收藏 評論

亞德雷 - 搜索數據庫表的性能優化過程

問題背景 做一個數據庫表查看、標註與分析的工具軟件。 \(Table\)是數據庫中表的信息(information_schema.tables);\(Documentation\)是\(Table\)的數據字典文檔,存儲在本地文件中;\(Annotation\)是對\(Table\)的額外標註信息,存儲在另一個數據庫中。每一條\(Table\),最多關聯到一條\(Documentation\)和一

軟件設計

收藏 評論

消失者 - `i` 和 `e` 寫反引發的血案:當 AI 的“糾錯癖”遇上 NexusContract 的“照妖鏡”

i 和 e 寫反引發的血案:當 AI 的“糾錯癖”遇上 NexusContract 的“照妖鏡” 摘要:在對接某頭部支付網關時,我遭遇了一次完美的“降維打擊”。官方文檔裏一個把 ei 寫成 ie 的英語語法錯誤,騙過了 AI 的語法檢查,也騙過了我的肉眼 Review。本文將探討 NexusContract 如何通過元數據隔離機制,在混亂的遺留接口與現代化的整潔代碼之間建立一道防線。 1.

軟件設計

收藏 評論

老肖想當外語大佬 - 學習真DDD的最佳路徑

本文書接上回《DDD是軟件工程的第一性原理?》,關注公眾號(老肖想當外語大佬)獲取信息: 最新文章更新; DDD框架源碼(.NET、Java雙平台); 加羣暢聊,建模分析、技術實現交流; 視頻和直播在B站。 假DDD的特徵 在開始之前,考慮到目前關於DDD的資料非常多且雜,我們需要具備分辨的能力,確保不被誤導。看過本系列文章的朋友,對我們是如何看待DDD的會有一定的感受,這裏我們列舉一

軟件設計 , ddd , 後端

收藏 評論