主頁 > 軟體設計 > 程式員必須要懂的計算機核心概念

程式員必須要懂的計算機核心概念

2021-11-05 08:34:14 軟體設計

開始卷起來吧!💪為讓學習更有趣,這篇文章我會列出計算機科學理論和一些概念,并且用類比的方式和盡量少的技術術語來為你進行解釋,這樣做的目的就是為了讓你快速了解計算機,查漏補缺,

👋如果對這些概念有任何解釋不妥之處,請及時指正我,

雖然這些概念能夠快速幫助你去理解,但是這并不是一種最好的學習方式,如果你想要完整的理解這些概念,去看相關書籍或者論文,

1. 核心概念:資料結構和演算法

👋👋一個很酷的演算法視頻

1.1 遞回

比如你坐在電影院正準備好看電影的時候,這時候剛來電影院的人問你坐的是第幾排,你懶的數就問前面的人,“哥們,你那一排是第幾排?”你只需要從對方口中得知他的行號 + 1 就是你坐的行號,但是你前面那哥們也做了同樣的事情,他也問了他前面的人,,,,,,依此類推,一直問到第一排,他回答:“我這是第一排!” 然后從現在開始,正確的行號將會一直 + 1 直到傳達給剛進電影院的那哥們,

千萬別在電影院這么做,否則第二排或者第三排的人可能會被第一排的當成傻子,,,,,,因為第二排的人問第一排的人:“哥們,你坐第幾排?” 想象一下這個場景,,,,,,

我給你幾幅圖,讓你理解一下什么是遞回

image-20211020221644910

1.2 大資料

假設你有一個花園,但是你花園中的水管漏水,你需要拿一些桶和密封材料來解決這個問題,但是過了一會兒,你發現實際泄漏的要大的多,你需要水管工拿更多的工具來處理,同時,你仍在使用水桶排水, 過了一會兒,你發現地下有一條巨大的地下溪流已經打開,你需要每秒處理數加侖的水,

這時候桶就沒用了,你需要一種全新的方法來解決這個問題,因為水的體積和速度都在增加,為了防止城鎮發生洪水,你需要 zf 建造一座大型水壩,然而這需要大量的土木工程專業知識和復雜的控制系統,

大資料描述了使用傳統資料處理工具無法管理的龐大而復雜的資料集,

1.3 資料結構

關于資料結構,每位程式員都應該知道

  • 陣列 https://en.wikipedia.org/wiki/Array_data_structure
  • 樹 https://en.wikipedia.org/wiki/Tree_%28data_structure%29
  • 堆疊 https://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29
  • 佇列 https://en.wikipedia.org/wiki/Queue_%28abstract_data_type%29
  • 圖 https://en.wikipedia.org/wiki/Graph_%28abstract_data_type%29
  • 哈希表 https://en.wikipedia.org/wiki/Hash_table
  • 鏈表 https://en.wikipedia.org/wiki/Linked_list
  • 堆 https://en.wikipedia.org/wiki/Heap_%28data_structure%29

2. 核心概念 AI

2.1 貪心演算法

想象一下,你要去徒步旅行,而你的目標是盡可能到達最高峰,在開始之前你已經有了地圖,但是地圖上顯示了成千上萬條路,但是你無法評估每一條,所以扔掉了地圖,你從一個看起來很簡單的路開始走,這種方式就是根據感性來選出來的,是一種貪婪和短視的表現,你選擇只走最傾斜向上的路線,

但是旅行結束后,全身酸痛,你查看地圖卻發現旁邊有一條泥濘的小河,跨過去就好了,而不用一直向上走,

image-20211022213807138

貪心演算法會選擇當下的最佳路線,而不是重新開始考慮評估選擇,

2.2 爬山演算法

這次你要爬另一座山,你決定要找到能夠帶你到達最高峰的那條路,但是很不幸,你的地圖丟了,而且山上霧氣很大,那怎么辦呢?所以你為了讓旅途更輕松,你下載了一個 app ,這個 app 能夠跟蹤你走過的路測量你當前的高度,于是你每次走過的路線都是能夠把你帶到最高峰的路線,但是在中途,你選擇了一條另外的路線,而這個路線也能把你帶到最高峰,

2.3 模擬退火

在你前面的是珠穆朗瑪峰,

image-20211022224048884

這是你所面臨的最大的挑戰,你的目標是登頂,但是一遍又一遍爬珠峰是不切實際的,所以你只有一次機會,你現在非常謹慎,你不會總是向上爬,而是偶爾移動到一個比較低的點來探索其他可能的路徑,以減少出錯的機會,你爬的越高,你移動到較低點進行探索的可能性就越低,

2.4 動態規劃

父親:在一張紙上寫下 “1+1+1+1+1+1+1+1 =”,

父親:那等于什么?

兒子:三秒后數了數等于 8 ,

父親:在左側寫下另一個“ + 1”,

父親:現在等于多少?

兒子:立刻確定了是 9 !

父親:現在為何你數的這么快?

兒子:因為你剛剛才加了一個!

父親:所以你不需要重新數,而是記住了剛剛那個數字等于 8 !

2.5 P 和 NP 的問題

P vs NP 是計算機科學領域中最流行和最重要的未解決問題之一,

假設我給你一個乘法問題,例如:

Q1:P = 7 * 17

答案是119 ,這個很容易算吧?如果我顛倒這個問題怎么辦:

Q2:P * Q = 119 (P 和 Q 都不能是 1 或者 119)

如果你沒有看到 Q1,你要解決 Q2 ,你可能會從 2 開始嘗試,一直遍歷到 118 為止,所以我們還沒有一種找到一個數因數的高效演算法,

如果我問你,P 可能是 7 嗎?這時候你可以輕松驗證答案嗎?你當然可以,只需要將 119 / 7 就可以了,

乘法很容易,但是找到一個數的原始因數卻很難,

所以 Q1 是一個 **P(多項式)**問題,它很容易得到解決,因為計算機可以輕松的將任意兩個數相乘,

但是 Q2 是一個 **NP(非多項式)**問題,它很難解決,找到 119 的因數對計算機來說還是很容易解決的,但是 500 位數字呢?現在對任何計算機都是不可能的,

這是這個問題的最重要的部分:NP 問題(分解)是否也是 P(乘法),只是我們還沒有發現解決 NP 問題的有效方法?還是人類太笨了?想象一下,存在比人類智能得多的機器或生命,他們看我們就像我們看螞蟻一樣,我們的智力水平對他們來說太微不足道了,解決 P vs NP 問題就像為他們解決 1 + 1!

那么為什么 P vs NP 問題很重要呢?如果我們能夠證明 P=NP,則意味著所有 NP 問題都可以在合理的計算機時間內輕松解決,我們將能夠治愈癌癥(蛋白質折疊)、破解密碼(RSA)等,這將會改變世界,

3. 核心概念:并發

前景提要:假設你正在某公司擔任秘書,你所做的作業包括接打電話、安排會議、寫檔案等,你總是需要根據任務的優先級來停下手頭的作業轉而做其他的(作業),每次電話響起時,你都需要停止正在處理的作業,

3.1 并行

隨著任務越積越多,你無法應對你的作業了,因為有太多的書寫任務,你向老板抱怨,他愿意再雇個人來幫你分擔書寫任務,

并行允許有兩個或者更多的任務同時運行,但是前提是你的 CPU 能夠支持多處理能力,人只有一個 CPU ,所以一心不能二用,這也并不是一件壞事,有的時候單執行緒的作業效率反而更高,而中斷(學習的時候被打斷)是作業的天敵,這種開銷實在是太大了,

所以你和新招的那個雇員一起分擔書寫任務就是一種并行

并發概念的引入也引發了很多很多問題,比如下面的競態條件

3.2 競態條件

這里就不得不提我們大家都耳熟能詳的銀行轉賬這個例子了:

  • 你的銀行賬戶里有 1000 元,
  • 有人轉給你 500 元,而你從 ATM 中提取了 300 元,
  • 假設這兩筆交易同時進行,兩筆交易都會看到你當前的余額是 1000 元(注意這是兩筆交易,這兩筆交易之前彼此不可見,這點很重要),
  • 現在,第一筆交易給你的賬戶增加了 500 元,你現在就有了 1500 元,但是,第二筆交易看到的你的賬戶余額還是 1000 元,他從 1000 元中扣除了 300 ,變成了 700 元,
  • 所以你現在的賬戶余額會變為 700 元,而不是 1200 元,因為第二筆交易覆寫了第一筆交易,
  • 發生這種情況是因為銀行系統不知道其他正在進行的交易,

那么,你應該如何處理這種情況呢?下面是幾種解決方式,

3.3 互斥

現在我們采用這種方式:只要有正在進行的交易,系統就會鎖定交易中涉及的賬戶,而且系統會認定轉賬開始 -> 轉賬完成是一個完整的事務周期,

所以這一次,當第一筆交易發生的那一刻,你的賬戶會被鎖定,你不能再從你的賬戶中取錢,直到第一筆交易完成為止,

所以互斥是不是就解決問題了?

雖然互斥能解決系統資料安全性的問題,但是卻不符合人的感性認知,但沒有人希望每次有正在進行的交易時都被 ATM 拒絕,

所以我們需要修改一下方案,

3.4 信號量

二進制信號量

現在我們需要為不同型別的交易設定不同的優先級,假如提現請求的優先級要高于銀行轉賬的優先級,所以當你從 ATM 中取款時,這筆交易的優先級要大于向你賬戶轉賬的優先級,所以此時轉賬的的交易會暫停,而提現的事務優先進行,因為它具有更高的優先級,等到提現成功后,轉賬事務再恢復,

二進制信號量很簡單,1 = 正在進行的交易, 0 = 等待,

計數信號量

計數信號量允許多個行程同時運行,

假設你是一家游泳館的作業人員,有 10 個儲物柜,每個儲物柜都有一把鑰匙,每次收到或者分發鑰匙時,你都需要把控所有的鑰匙數量,如果所有儲物柜都滿了,其他人必須排隊, 每當有人完成時,他會將鑰匙交給佇列中的第一個人,

3.5 死鎖

死鎖是另外一種并發中的共性問題,

還是讓我們拿銀行轉賬來舉例子,請記住,只要有正在進行的事務,就會鎖定對銀行帳戶的訪問,

  • 假如你向張阿姨轉賬 500 元(來讓張阿姨高興一下),同時張阿姨向你轉賬 1000 元(讓你補補身子),
  • 于是事務 A 鎖定了張阿姨的賬戶,并且從她的賬戶里扣除了 1000 元,
  • 事務B 鎖定你的賬戶,并且從你的賬戶里扣除了 500 元,
  • 然后,事務 A 嘗試訪問你的賬戶來添加她給你轉賬的 1000 元,
  • 同時,事務 B 嘗試訪問張阿姨的賬戶來添加你給她轉賬的 500 元,

但是,由于兩項交易都沒有完成,因此兩個事務都無法訪問鎖定的帳戶,造成兩個事務都在等待對方事務的結束,這種情況就是死鎖,

還有為什么談戀愛的程序中男生要主動一些,如果你不主動,可能就死局(死鎖)了,

4. 核心概念:計算機安全

4.1 計算機黑客

計算機黑客類似于強制闖入你的房子里,下面有幾種流行的黑客技術,

暴力攻擊

這種做法就是嘗試使用成百上千種不同的密碼,有經驗的黑客會先嘗試最常用的密碼,

暴力攻擊會嘗試所有可能的密碼,通常首先猜測常用的密碼,如“123456”、“abcdef”等,

我之前嘗試過用 kali linux 配上專用的設備跑過包破解過鄰居家的 WI-FI ,結果密碼只是 000000 ,

社會工程

這是一項強大的技術!!!我愿稱之為網路 Pua!!!

一對夫婦剛搬進隔壁,他們真的很好,樂于助人,他們經常請你吃晚飯,有一天,你說你很快就會去度假兩周, 他們高興地提出要照顧你的狗,你給他們留了一把備用鑰匙,從那以后,你再也沒有聽到關于他們的任何訊息,

社會工程學會誘騙用戶透露他們的私人資訊,

此處應該要有個配圖,

image-20211023120448543

安全漏洞

安全漏洞就是黑客入侵你家能找到的缺口,比如你可能沒關窗戶,

特洛伊木馬

黑客冒充水管工,讓你幫他開門,他修理了你漏水的水管,但是他走后,你發現你的首飾不見了,

特洛伊木馬是假裝有用并在后臺運行惡意代碼的惡意軟體程式,

RootKit

你的門鎖被卡住了,你打電話給鎖匠,他修理了你的門鎖并偷偷復制了另一把鑰匙,

Rootkit 通過社會工程等多種方式獲得計算機管理員或 root 訪問權限,然后偽裝成殺毒軟體難以檢測到的必要檔案,

DDos

這是一個書店的比喻,

假如你有一個書店,書店里面能容納 200 多人,某一天突然有 200 多人進入你的書店,你的書店滿了,而且你不能趕走他們,因為他們看起來互相都不認識,而且他們似乎真的都有興趣買書,甚至有人問你 xxx 書在哪里,然而柜臺上只有一個人付了幾塊錢,

人們不斷進出幾個小時,但是你賣的書還不到 5 本,你覺得你這個書店還能撐多久?

DDoS 試圖通過大量訪問者來關閉站點或服務,

4.2 密碼學

對稱加密

假設老王和老劉想要互相發送東西,為了確保沒有人可以看到他們的東西,他們用一個盒子鎖起來,他們為鎖制作了 2 個相同(對稱)的鑰匙,并事先見面共享鑰匙,

非對稱加密

在兩個人之間共享密鑰能夠正常作業,但是如果老王想和老趙交換東西,而且還不想讓老劉知道該怎么辦?重新共享一個全新的鑰匙嗎?那假如老王想和 10 個不同的人交換東西該怎么辦?難道要消滅掉解決問題的老王嗎?

所以老王想出了一個絕對fashion的主意:現在老王只維護一把鑰匙(私鑰),她將另一把鑰匙(公鑰)分給他的朋友們,任何人都能夠加密,但是只有她有打開(解密)的鑰匙,現在,任何人都能夠使用她發的公鑰進行加密,而且老王不需要再為任何人管理不同的鑰匙,

5. 核心概念:軟體開發方法

5.1 瀑布開發方式

你需要弄清楚所有的事情并記錄下來,就向是瀑布一樣,除非重新開始,否則無法回傳,只有當前階段完成后,你才能進入下一階段,

image-20211023195137609

5.2 敏捷開發

這是國內大多數軟體公司采用的軟體開發方式 — 敏捷開發

一開始你就弄清楚一些你需要坐的事情,然后隨著開發的進行,不斷改進、發展協作和適應,

就像大多數產品經理或者你的領導說的:先弄一版出來再說

5.3 現實世界中的軟體開發

現在你畢業了,你撰寫了你認為比較漂亮的代碼,一切都很完美,現在我給你介紹一種 牛仔編碼,這是大學教授沒有教你的開發方法,

你可能想知道為什么你不會評估開發事件,請看下圖

image-20211023200236613

總結

這篇文章我給你整理了一些計算機科學中的一些常見概念,并且用生動形象的例子來為你闡述這些概念,希望能降低你學這些內容的門檻,

還是那句話,如果你想要完整的理解這些概念,去看相關書籍或者論文

最后給大家推薦一下我自己的 Github ,里面有非常多的硬核文章,絕對會對你有幫助,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348452.html

標籤:其他

上一篇:2021電賽D 題《基于互聯網的攝像測量系統》

下一篇:K210識別數字(0~9)并與單片機通信通過數字來控制小車移動

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more