讀軟體設計的要素07讀後總結與感想兼導讀

1. 基本信息 軟體設計的要素 丹尼爾·傑克遜著 浙江教育出版社,2024年5月出版 1.1. 讀薄率 書籍總字數236千字,筆記總字數18853字。 讀薄率18853÷236000≈8% 1.2. 讀厚方向 構建可擴展分散式系統方法與實踐 設計模式:可復用面向對象軟體的基礎 程式員修煉之道:通向務 ...

PLC結構化文本(ST)——結構體屬性外部調用(Issue)

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——結構體屬性外部調用(Issue) 問題 很久之前在做OOP編程時,遇到過這樣一個問題,創建一個屬性類型是結構體,而我在外部訪問結構體內部成員時編譯器(TwinCAT3)直接報錯 ...

一文看懂什麼是架構

對程式員來說,架構是一個常見辭彙。如果想成為一名架構師,對架構概念的理解必須清晰。否則,在制定架構方案時,肯定會漏洞百出,問題頻發,這將對你的面試、晉升和團隊領導產生負面影響。 我們看下維基百科關於架構的定義: 軟體架構是抽象描述系統的一組結構,以及構建這些結構的規則。這些結構包括:軟體要素、要素之 ...

讀構建可擴展分散式系統:方法與實踐01可擴展系統簡介

1. 簡介 1.1. 在過去20年裡,軟體系統的規模、複雜性和容量都出現了前所未有的增長 1.2. 代碼是容器、資料庫、消息傳遞系統和其他組件的一部分,通過調用API和構建指令,構成你的應用程式 1.3. 可擴展(scalable)是軟體工程中用來描述軟體系統能夠適應增長的術語 1.3.1. 可擴展 ...

設計模式之狀態模式(三分鐘學會一個設計模式)

狀態模式(State Pattern)的定義是這樣的:類的行為是基於它的狀態改變的。註意這裡的狀態不是狹義的指對象維護了一個“狀態”欄位,我們傳入了不同的枚舉值,對象整體的表現行為(對外方法)就改變了。而是指內部的(任意)欄位如果發生了變化,那麼它的狀態就變了,那麼它對外的表現形式就變了。狀態模式是 ...

讀構建可擴展分散式系統:方法與實踐02分散式系統架構簡介

1. 系統架構基礎 1.1. 幾乎所有大規模系統都是從小規模開始,在成功路上逐漸發展壯大 1.2. 通信使用標準的應用層網路協議,通常是HTTP 1.3. Java EE和Java的Spring框架 1.4. Python的Flask 1.5. 隨著應用程式的特性變得更加豐富,單體應用程式的複雜性往 ...

弔打面試官!從多維度理解架構

大家好,我是湯師爺~ 在工作當中,我們經常會聽到以下說法: 產品負責人說,現在的業務架構太複雜,需要仔細梳理下。 技術領導說,這個項目很複雜,需要做下系統架構方案評審。 研發經理說,這次秒殺活動訪問量非常大,需要用到高併發架構方案。 一線研發說,互聯網大廠都會用到微服務架構,我要學學微服務架構設計。 ...

讀構建可擴展分散式系統:方法與實踐03分散式系統要點

1. 通信基礎 1.1. 每個分散式系統都包含通過網路進行通信的軟體組件 1.2. 硬體 1.2.1. 全球互聯網就是一臺異構機器,由不同類型的網路通信通道和設備組成,它們每秒將數百萬條消息通過網路傳送到預定目的地 1.2.2. 對於單個光纖鏈路,可以提供每秒超過70 Tbps的總帶寬 1.2.3. ...

弔打面試官!業務架構的關鍵概念

商業模式 商業模式是幫助企業成功的“秘訣”,它通過整合企業內外部的多種要素,構建起一個全面、高效且具有獨特競爭優勢的運營體系。這一體系的目的是滿足市場的需求,實現各利益相關者價值最大化,並確保企業的長期盈利能力。 商業模式的核心架構由三個緊密相連的環節構成:創造價值、傳遞價值和獲取價值。 創造價值: ...

讀構建可擴展分散式系統:方法與實踐04應用服務

1. 應用服務 1.1. 任何系統的核心都在於實現應用需求的特定業務邏輯 1.2. 服務是可擴展軟體系統的核心 1.2.1. 它們將契約定義為一個API,向客戶端聲明它們的能力 1.3. 應用伺服器高度依賴於編程語言,但通常都會提供多線程編程模型,允許服務同時處理許多請求 1.4. 多服務配置意味著 ...

讀構建可擴展分散式系統:方法與實踐05分散式緩存

1. 分散式緩存 1.1. 緩存存在於應用程式的許多地方 1.1.1. 行應用程式的CPU具有高速多級硬體緩存,可以減少相對較慢的主記憶體訪問 1.1.2. 資料庫引擎可以利用主記憶體來緩存數據存儲的內容,這樣在許多情況下查詢就可以不用訪問速度相對較慢的磁碟 1.2. 分散式緩存是可擴展系統的重要組成部 ...

PLC結構化文本(ST)——屬性(Property)

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——屬性(Property) 屬性的定義 C# 中的屬性(Property)是類和結構體中用於封裝數據的成員。它們提供了一種方式來定義類成員的訪問和設置規則,通常用於隱藏欄位(Fi ...

PLC結構化文本(ST)——繼承(inheritance)

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——繼承(inheritance) 繼承的概念 繼承是面向對象程式設計中最重要的概念之一。繼承允許我們根據一個類來定義另一個類,這使得創建和維護應用程式變得更容易。同時也有利於重用 ...

PLC結構化文本(ST)——介面(Interface)

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——介面(Interface) 介面定義 介面定義了所有類繼承介面時應遵循的語法合同。介面定義了語法合同 "是什麼" 部分,派生類定義了語法合同 "怎麼做" 部分。 介面定義了屬性 ...

讀軟體設計的要素01概念

1. 概念 1.1. 一個軟體,從運行於手機上的最小程式到大型的企業系統,都是由概念組成的,每個概念都是獨立的功能單元 1.2. 軟體中的可用性問題,經常可以追溯到其底層概念 1.2.1. 概念幫助識別軟體的不可用性 1.3. 概念都是以同樣形式在各種軟體中重覆使用的 1.3.1. 將設計分解為最基 ...

PLC結構化文本(ST)——訪問修飾符

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——訪問修飾符 訪問修飾符及作用 根據出現位置不同劃分 1.出現在功能塊(FB)中 ①.Public:最低訪問級別,此功能塊可以被任何地方聲明調用。 ②.Internal:只允許當 ...

PLC結構化文本(ST)——構造函數(FB_init)

PLC Structured Text Object Oriented Programming PLC結構化文本(ST)——構造函數(FB_init) 構造函數的作用 簡單來說,構造函數是一種方法,用來初始化類的實例也就是對象。類在創建時會有一個預設的構造函數,如果自定義一個構造函數,那麼預設構造函 ...

讀軟體設計的要素02概念的目的

1. 要素 1.1. 概念的定義包括名稱、目的、狀態、操作和操作原則 1.2. 操作原則(operational principle) 1.2.1. 操作原則用於展示如何通過操作實現目的,這是理解概念的關鍵 1.2.2. 展示如何通過操作的組合實現概念的目的,包含一個或多個典型的使用場景 1.2.3 ...

一周排行
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...