不寫垃圾程式碼,從學會這個設計模式開始

大家好,我們今天來一起學習一個新的設計模式,叫做媒介模式。 所謂的媒介其實是一種封裝的思想,把某些功能共同的邏輯抽象出來做成一箇中間的媒介,從而減少程式碼之間的耦合,提升拓展性,更加方便日後的需求變更。 簡單案例 我們用一個實際的例子來認知一下媒介這個設計模式。 假設我們要做一個聊天室,如果真要去做的話,這裡

Npoi XWPF Word 匯出時插入圖片無法顯示 bug 完美解決

一、來自客戶的需求 最近客戶來個新需求生成一個word 標籤紙,並且需要在標籤紙上插入一個logo,並且將erp 中的資料取出來自動寫在文件上,不由得淡淡一笑,這不難呀! 於是乎我就寫下了這樣的程式碼: 插入文欄位落 XWPFParagraph m_xp = doc.CreateParagraph();

向量、矩陣和張量的導數

# 向量、矩陣和張量的導數 > [著] Erik Learned-Miller > > 本文翻譯自 [Vector, Matrix, and Tensor Derivatives](https://yun.zyxweb.cn/index.php?explorer/share/file&hash=0280t

Java併發程式設計實戰(3)- 互斥鎖

我們在這篇文章中主要討論如何使用互斥鎖來解決併發程式設計中的原子性問題。 [toc] # 概述 併發程式設計中的原子性問題的源頭是執行緒切換,那麼禁止執行緒切換可以解決原子性問題嗎? 這需要分情況討論,在單核CPU的情況下,同一時刻只有一個執行緒執行,禁止CPU中斷,就意味著作業系統不會重新排程執行緒,

Linux裝置上沒有空間之覆盤

某天前端在調介面的時候,發現登入頁面得驗證碼介面居然沒有響應資料,顯示的是500響應碼。於是我一路排查,首先排查驗證碼介面所屬的微服務是否正常,通過lsof -i:服務埠進行排查,發現該微服務程序存在,同時我在服務註冊中心的服務管理列表也發現該服務正常註冊。結合之前遇到的問題,驗證碼介面報500,沒有及時響應

如何在Linux(CentOS7)環境搭建 Jenkins 伺服器環境

    最近,我自己要親手搭建一套完整的企業級 CI/CD 環境,這個環節裡面涉及了很多內容,沒有辦法把這麼多的內容都放在一篇文章裡,所以 Jenkins 的安裝和Java 的 JDK 安裝我就是分了兩篇文章來寫的。而且這套環境中也包含 Docker 容器,涉及的東西不少,有些東西,自己也是第一次遇到,所以就

MySQL在按照某個欄位分組、排序加序號

#### 事情是這樣的,最近領導給了一個新的需求,要求在一張訂單表中統計每個人第一次和第二次購買的時間間隔,最後還需要按照間隔統計計數,求出中位數等資料。 - 由於MySQL不想Oracle那般支援行號、中位數等,所以怎麼在表中統計處資料成為了關鍵 #### 訂單表結構,主要包含欄位如下 - id、訂單號

java設計模式-抽象工廠模式

抽象工廠模式詳解  一,概述   抽象工廠模式為一個產品家族提供了統一的建立介面。當需要這個產品家族的某一系列的時候,可以從抽象工廠中選出相對應的系列來建立一個具體的工廠類別。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。   在抽象工廠模式中,介面是負責建立一個相關物件的工廠,

Redis為什麼這麼快

# 前言 ```properties 本篇部落格已被收錄GitHub:https://zhouwenxing.github.io/ ``` 在日常開發中,為了保證資料的一致性,我們一般都選擇關係型資料庫來儲存資料,如 `MySQL`,`Oracle` 等,因為關係型資料庫有著事務的特性。然而在併發量比較大的業

Netty原始碼解析 -- 物件池Recycler實現原理

由於在Java中建立一個例項的消耗不小,很多框架為了提高效能都使用物件池,Netty也不例外。 本文主要分析Netty物件池Recycler的實現原理。 **原始碼分析基於Netty 4.1.52** ### 快取物件管理 Recycler的內部類Stack負責管理快取物件。 Stack關鍵欄位 ``` /

瑣碎的想法(二)網路協議——人們給計算機的一組“約定”

## 網路協議學習方式一 學習網路協議的入門多種多樣,如果是從術語上來講協議,大概是這樣的。 1. 協議的作用意義 2. 協議的定義。 3. 協議的發展。 4. 協議的特點。 ... 這是一種靠強記,通過實踐來加深印象,最後不自知地瞭解網路協議的過程。有效但趣味寥寥。 ## 網路協議學習方式二 這一

聊聊併發,程序通訊方式,go協程簡單應用場景

## 開篇提問 1. 知道併發,並行,執行緒,協程概念嗎?或者知道大概含義嗎? 2. 有執行緒為什麼還要有協程?區別是什麼? 3. 『程序』通訊方式知道幾種?有沒有超過3種? 4. golang『協程』通訊方式推薦? 5. 使用併發的目的是為什麼?是能幫我們解決什麼問題嗎? ## 概念 **併

在.NET Core中使用Channel(二)

在我們之前的文章中,看了一些非常簡單的例子來說明Channel是如何工作的,我們看到了一些非常漂亮的特性,但大多數情況下它與其他某某Queue實現非常相似。讓我們進入一些更高階的話題。我說的是高階,但其中很多都非常簡單。 讀/寫分離 如果你曾經在兩個類之間共享佇列,你就會知道任何一個類都可以讀/寫,即使它

0.33634400367737