手寫解析器、渲染器、主題樣式、自定義彈窗和精細的撤銷/恢復機制等。 整體總結 YtyMark-java 項目,從用戶輸入到用戶查看到實時渲染結果的全過程 監聽文本區域內容是否發生變化 解析和渲染:“原始文本的塊裁剪”→“塊級元素解析” → “行內元素解析” → “渲染” 四大階段 將渲染結果重新 ...
開源項目地址 GitHub 開源地址(YtyMark-java) 歡迎提交 PR、Issue、Star ??! 1. 簡述 YtyMark-java項目分為兩大模塊: UI界面(ytyedit-mark) markdown文本解析和渲染(ytymark) 本文主要內容為UI界面相關功能 ...
開源項目地址 GitHub 開源地址(YtyMark-java) 歡迎提交 PR、Issue、Star ??! 1. 簡述 YtyMark-java項目分為兩大模塊: UI界面(ytyedit-mark) markdown文本解析和渲染(ytymark) 本文主要內容為核心模塊--mark ...
NCHU OOP BLOG1--電梯調度程序 目錄 1.前言 2.設計與分析 3.踩坑心得 4.改進建議 5.總結 正文 1.前言 這三次大作業主要圍繞的對電梯的調度來展開,調度算法為LOOK算法,實際上,比現實中的一些電梯所用算法更簡單。 其中,第一次作業難度最大,后面兩次作業進行迭代并不難; 考 ...
本文闡述了UML序列圖中消息的類型與特性。同步消息采用實心箭頭實線表示,發送方需等待接收方返回虛線箭頭標記的響應,但允許非阻塞等待;異步消息以V形箭頭實線呈現,發送方無需等待且接收方須為活動類,適用于中斷或Web交互場景;自消息既可同步也可異步,用于對象內部通信。消息可攜帶參數且需類型匹配,返回消息... ...
RabbitMQ 1、記一次線上RabbitMQ的堵塞問題 當時解決問題參考的文檔:https://www.codenong.com/cs109484329/ 1、背景 RabbitMQ同步外省市運單到本系統中 2、問題 某天早上上班,發現運維群里有很多企業反饋,在系統中查不到自己最新的運單了,當時 ...
錨定效應的應用-獨立站優化價格打折顯示-《認知偏差手冊》 先看結果:價格展示 https://atemplate.com/pricing 舊的打折價格展示 新的打折價格展示 錨定效應是什么? 人類在進行決策時,會過度偏重先前取得的資訊(這稱為錨點),即使這個資訊與這項決定無關。在進行決策時,人類傾向 ...
“假設你負責的系統,某個業務線的QPS突然暴增100倍,你會怎么應對?” ——這是上周朋友去面試,被問到一道題,他答了“加機器擴容”,結果面試官眉頭一皺:“如果機器不夠呢?如果數據庫崩了呢?”朋友當場卡殼。其實這道題就像“高壓水槍”,專沖知識漏洞。 作為開發者,如果只回答“加機器”“擴容”,可能直接 ...
本文主要分享我的設計模式筆記PDF文檔:《掌握設計模式:23種經典模式實踐、選擇、價值與思想》 這只是設計模式的秘籍1:《掌握設計模式:23種經典模式實踐、選擇、價值與思想》 后續還會分享練手項目秘籍2:設計模式實戰項目--markdown文本編輯器軟件開發(開放所有源代碼) 前言 為什么要寫這份資 ...
1. 學習設計模式的意義:讓代碼更優雅,讓開發更從容 設計模式的學習常常被貼上“枯燥”“抽象”的標簽,但它更像一本軟件開發的“烹飪食譜”——不是要求你死記硬背,而是教會你如何用更巧妙的方式組合代碼的“食材”,最終做出一道既美味(功能完善)又美觀(易于維護)的“佳肴”。以下是它的核心價值與意義: 1. ...
觀察者模式(Observer Pattern)是一種行為型設計模式,通過定義對象間一對多的依賴關系實現狀態變化的自動通知機制,廣泛應用于解耦事件發布與訂閱場景 適用于 ①當一個抽象模型有兩個方面,其中一個方面依賴于另一個方面。將這兩者封裝在獨立地對象中以使它們可以各自獨立地改變和復用。 ②當對一個對 ...
參與者是交互中的可連接元素,它不是類或對象,而是類型化的角色。生命線代表一個參與者按時間順序排列的事件序列,從頂部到底部代表時間順序。生命線可在交互過程中創建或終結。 ...
本人主要講述設計模式怎么去選擇,這僅僅是不知從何下手提供一個抓手的東西,并不是銀彈。常想、多用,積累經驗后,方可靈活運用,做到無模式勝有模式,才可能會在復雜場景中,設計出高質量的系統。 設計模式的選擇是一個從問題到解決方案的遞進過程。通過明確問題類型、分析目標特性、遵循設計原則以及結合場景需求,可以 ...
簡介 備忘錄模式(Memento Pattern)是一種行為型設計模式,它允許生成對象狀態的快照并在以后將其還原。備忘錄模式不會影響它所處理對象的內部結構,也不會影響快照中存儲的數據。簡單來說,它就像游戲中的“保存”和“加載”功能。 組成角色: Originator(發起人): 主要用于生成自身狀態 ...
軟件的可擴展性 軟件善變,可擴展性成為評價軟件生命力的重要指標。 所謂的可擴展性是指軟件為了應對將來的業務變化,而提供的擴展能力。當有新的業務發生時,可擴展性較好的軟件僅需小范圍修改就能提供支持,它們可以保持總體上的穩定。 傳統的結構化軟件設計方法在這方面力有不及,面向對象方法卻有一些天然的優勢。 ...
解釋器模式(Interpreter Pattern) 解釋器模式(Interpreter Pattern)是一種行為型設計模式,用于定義一種語言的文法表示,并提供一個解釋器來解釋該語言中的句子。這種模式通常用于開發需要解析、解釋和執行特定語言或表達式的應用程序。 主要目的是為特定類型的問題定義一種語 ...
云圖庫項目ddd重構 把原項目復制一份,用副本進行項目重構 原結構為 com.yupi.yupicturebackend.xxx,保留 com.yupi,新建一個和 yupicturebackend 包同級的包來當作ddd重構包 把主類 xxxApplication 先拖到新建的根包中。因為主類會掃 ...
故事的開始是這樣的:無聊的時候在阿里云買了一個99/年的服務,上面部署了一個Git服務,用于托管自己無聊時寫的一些代碼,順便也拿它做開發服務器。為了方便應用管理,起初用docker來管理和部署應用,后來升級了一把,用上了docker-compose,畢竟跟手撕命令相比聲明式部署更顯科學,docker ...
狀態模式(State Pattern) 狀態模式(State Pattern)是一種行為設計模式,它允許對象在其內部狀態改變時改變其行為,看起來像是改變了其類。這種模式通常用于解決對象在運行時狀態多變且行為復雜的問題。 核心思想:將狀態與行為綁定,每種狀態對應一個具體類有獨立的行為邏輯,狀態的切換只 ...
UML擴展用例用于在基本用例中附加可選功能或后續新增邏輯。它通過«extend»關系將擴展用例與基本用例關聯,方向由擴展用例指向基本用例。基本用例中可定義“擴展點”標識觸發擴展的位置,擴展條件通過約束明確執行時機。擴展支持多層級結構,允許擴展用例自身被進一步擴展,形成用例擴展迭代鏈。該機制適用于靈活... ...