主頁 > 軟體設計 > 面經: 計算機基礎

面經: 計算機基礎

2021-09-06 07:51:59 軟體設計

(1)OSI七層模型和TCP/IP四層模型

OSI

  • 應用層 :為特定應用程式提供資料傳輸服務,例如 HTTP、DNS 等協議,資料單位為報文,

  • 傳輸層 :為行程提供通用資料傳輸服務,運輸層包括兩種協議:TCP,提供面向連接、可靠的資料傳輸服務,資料單位為報文段;用戶資料報協議 UDP,提供無連接、盡最大努力的資料傳輸服務,資料單位為用戶資料報,

  • 網路層 :為主機提供資料傳輸服務,網路層把傳輸層傳遞下來的報文段或者用戶資料報封裝成分組,IP協議,ICMP協議,ARP等

  • 資料鏈路層 :資料鏈路層把網路層傳下來的分組封裝成MAX幀,點到點的傳遞,傳輸單位為幀,主要包括的協議為MAC VLAN PPP

  • 物理層 :物理層的作用是盡可能屏蔽傳輸媒體和通信手段的差異,使資料鏈路層感覺不到這些差異,

  • 表示層 :資料壓縮、加密以及資料描述

  • 會話層 :建立及管理會話,

TCP/IP

它只有四層,相當于五層協議中資料鏈路層和物理層合并為網路介面層,

網路介面層:MAC VLAN

網路層:IP ARP ICMP

傳輸層:TCP UDP

應用層:HTTP DNS SMTP

(2)計算機網路 - 鏈路層

1. 封裝成幀

將網路層傳下來的分組添加首部和尾部,

2. 透明傳輸

幀使用首部和尾部進行定界,如果幀的資料部分含有和首部尾部相同的內容,那么幀的開始和結束位置就會被錯誤的判定,零位元插入洗掉法

3. 差錯檢測

資料鏈路層廣泛使用了回圈冗余檢驗(CRC)來檢查位元差錯,

PPP 協議

互聯網用戶通常需要連接到某個 ISP 之后才能接入到互聯網,PPP 協議是用戶計算機和 ISP 進行通信時所使用的資料鏈路層協議,

(3)計算機網路 - 網路層

網路層向上只提供簡單靈活的、無連接的、盡最大努力互動的資料報服務,使用 IP 協議,可以把異構的物理網路連接起來,使得在網路層看起來好像是一個統一的網路,

與 IP 協議配套使用的還有三個協議:

  • 地址決議協議 ARP(Address Resolution Protocol)
  • 網際控制報文協議 ICMP(Internet Control Message Protocol)
  • 網際組管理協議 IGMP(Internet Group Management Protocol)

子網劃分:IP 地址 ::= {< 網路號 >, < 子網號 >, < 主機號 >}

無分類:使用網路前綴和主機號來對 IP 地址進行編碼,網路前綴的長度可以根據需要變化,

IP 地址 ::= {< 網路前綴號 >, < 主機號 >}

地址決議協議 ARP

通信程序中,IP 資料報的源地址和目的地址始終不變,而 MAC 地址隨著鏈路的改變而改變,ARP 實作由 IP 地址得到 MAC 地址,

網路層等到資料鏈層用mac地址作為通信目標,資料包到達網路等準備往資料鏈層發送的時候,首先會去自己的arp快取表(存著ip-mac對應關系)去查找改目標ip的mac地址,如果查到了,就講目標ip的mac地址封裝到鏈路層資料包的包頭,如果快取中沒有找到,會發起一個廣播:who is ip XXX tell ip XXX,所有收到的廣播的機器看這個ip是不是自己的,如果是自己的,則以單撥的形式將自己的mac地址回復給請求的機器

如果主機 A 知道主機 B 的 IP 地址,但是 ARP 高速快取中沒有該 IP 地址到 MAC 地址的映射,此時主機 A 通過廣播的方式發送 ARP 請求分組,主機 B 收到該請求后會發送 ARP 回應分組給主機 A 告知其 MAC 地址,隨后主機 A 向其高速快取中寫入主機 B 的 IP 地址到 MAC 地址的映射,

虛擬專用網 VPN

下圖中,場所 A 和 B 的通信經過互聯網,如果場所 A 的主機 X 要和另一個場所 B 的主機 Y 通信,IP 資料報的源地址是 10.1.0.1,目的地址是 10.2.0.3,資料報先發送到與互聯網相連的路由器 R1,R1 對內部資料進行加密,然后重新加上資料報的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6,路由器 R2 收到資料報后將資料部分進行解密,恢復原來的資料報,此時目的地址為 10.2.0.3,就交付給 Y,

網路地址轉換 NAT

專用網內部的主機使用本地 IP 地址又想和互聯網上的主機通信時,可以使用 NAT 來將本地 IP 轉換為全球 IP,

(4)計算機網路 - 傳輸層

TCP和UDP的區別和各自適用的場景

參考回答:

1)TCP和UDP區別

1) 連接

TCP是面向連接的傳輸層協議,即傳輸資料之前必須先建立好連接,

UDP無連接,

2) 服務物件

TCP是點對點的兩點間服務,即一條TCP連接只能有兩個端點;

UDP支持一對一,一對多,多對一,多對多的互動通信,

3) 可靠性

TCP是可靠交付:無差錯,不丟失,不重復,按序到達,

UDP是盡最大努力交付,不保證可靠交付,

4)擁塞控制,流量控制

TCP有擁塞控制和流量控制保證資料傳輸的安全性,

UDP沒有擁塞控制,網路擁塞不會影響源主機的發送效率,

5) 報文長度

TCP是動態報文長度,即TCP報文長度是根據接收方的視窗大小和當前網路擁塞情況決定的,

UDP面向報文,不合并,不拆分,保留上面傳下來報文的邊界,

6) 首部開銷

TCP首部開銷大,首部20個位元組,

UDP首部開銷小,8位元組,(源埠,目的埠,資料長度,校驗和)

2)TCP和UDP適用場景

從特點上我們已經知道,TCP 是可靠的但傳輸速度慢,UDP 是不可靠的但傳輸速度快,因此在選用具體協議通信時,應該根據通信資料的要求而決定,

若通信資料完整性需讓位與通信實時性,則應該選用TCP 協議(如檔案傳輸、重要狀態的更新等);反之,則使用 UDP 協議(如視頻傳輸、實時通信等),

請你說說傳遞到IP層怎么知道報文該給哪個應用程式,它怎么區分UDP報文還是TCP報文

參考回答:

根據埠區分;

看ip頭中的協議標識欄位,17是udp,6是tcp

TCP怎么保證可靠性,并且簡述一下TCP建立連接和斷開連接的程序

(1)序列號、確認應答、超時重傳

資料到達接收方,接收方需要發出一個確認應答,表示已經收到該資料段,并且確認序號會說明了它下一次需要接收的資料序列號,

(2)視窗控制與高速重發控制/快速重傳(重復確認應答)

(3)擁塞控制

如果把視窗定的很大,發送端連續發送大量的資料,可能會造成網路的擁堵(大家都在用網,你在這狂發,吞吐量就那么大,當然會堵),甚至造成網路的癱瘓,

TCP 的三次握手

三次握手的原因:三次握手可以防止已經失效的連接請求報文突然又傳輸到服務器端導致的服務器資源浪費,例如,客戶端先發送了一個SYN,但是由于網路阻塞,該SYN資料包在某個節點長期滯留,然后客戶端又重傳SYN資料包并正確建立TCP連接,然后傳輸完資料后關閉該連接,該連接釋放后失效的SYN資料包才到達服務器端,在二次握手的前提下,服務器端會認為這是客戶端發起的又一次請求,然后發送SYN ,并且在服務器端創建socket套接字,一直等待客戶端發送資料,但是由于客戶端并沒有發起新的請求,所以會丟棄服務端的SYN ,此時服務器會一直等待客戶端發送資料從而造成資源浪費,

TCP 的四次揮手

四次揮手的原因

客戶端發送了 FIN 連接釋放報文之后,服務器收到了這個報文,就進入了 CLOSE-WAIT 狀態,這個狀態是為了讓服務器端發送還未傳送完畢的資料,傳送完畢之后,服務器會發送 FIN 連接釋放報文,

TCP 流量控制

流量控制是為了控制發送方發送速率,保證接收方來得及接收,

TCP 擁塞控制

如果網路出現擁塞,分組將會丟失,此時發送方會繼續重傳,從而導致網路擁塞程度更高,因此當出現擁塞時,應當控制發送方的速率,這一點和流量控制很像,但是出發點不同,

流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個網路的擁塞程度,

1. 慢開始與擁塞避免

發送的最初執行慢開始,令 cwnd = 1,發送方只能發送 1 個報文段;當收到確認后,將 cwnd 加倍,因此之后發送方能夠發送的報文段數量為:2、4、8 ...

注意到慢開始每個輪次都將 cwnd 加倍,這樣會讓 cwnd 增長速度非常快,從而使得發送方發送的速度增長速度過快,網路擁塞的可能性也就更高,設定一個慢開始門限 ssthresh,當 cwnd >= ssthresh 時,進入擁塞避免,每個輪次只將 cwnd 加 1,

如果出現了超時,則令 ssthresh = cwnd / 2,視窗為1,然后重新執行慢開始,

2. 快重傳

在接收方,要求每次接收到報文段都應該對最后一個已收到的有序報文段進行確認,例如已經接收到 M1 和 M2,此時收到 M4,應當發送對 M2 的確認,

在發送方,如果收到三個重復確認,那么可以知道下一個報文段丟失,此時執行快重傳,立即重傳下一個報文段,例如收到三個 M2,則 M3 丟失,立即重傳 M3,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時直接進入擁塞避免,

(5)計算機網路 - 應用層

請你來說一說http協議

1)無連接:(也有有連接的)

無連接的含義是限制每次連接只處理一個請求,服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接,采用這種方式可以節省傳輸時間,

2)無狀態:

HTTP協議是無狀態協議,無狀態是指協議對于事務處理沒有記憶能力,缺少狀態意味著如果后續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連接傳送的資料量增大,另一方面,在服務器不需要先前資訊時它的應答就較快,

3)默認埠80

4)基于TCP協議

HTTP 請求/回應的步驟如下:

1、客戶端連接到Web服務器

一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP埠(默認為80)建立一個TCP套接字連接,例如,http://www.baidu.com,

2、發送HTTP請求

通過TCP套接字,客戶端向Web服務器發送一個文本的請求報文,一個請求報文由請求行、請求頭部、空行和請求資料4部分組成,

3、服務器接受請求并回傳HTTP回應

Web服務器決議請求,定位請求資源,服務器將資源復本寫到TCP套接字,由客戶端讀取,一個回應由狀態行、回應頭部、空行和回應資料4部分組成,

4、釋放連接TCP連接

若connection 模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會保持一段時間,在該時間內可以繼續接收請求;

5、客戶端瀏覽器決議HTML內容

客戶端瀏覽器首先決議狀態行,查看表明請求是否成功的狀態代碼,然后決議每一個回應頭,回應頭告知以下為若干位元組的HTML檔案和檔案的字符集,客戶端瀏覽器讀取回應資料HTML,根據HTML的語法對其進行格式化,并在瀏覽器視窗中顯示,

舉例:

在瀏覽器地址欄鍵入URL,按下回車之后會經歷以下流程:

1、瀏覽器向 DNS 服務器請求決議該 URL 中的域名所對應的 IP 地址;

2、決議出 IP 地址后,根據該 IP 地址和默認埠80,和服務器建立TCP連接;

3、瀏覽器發出讀取檔案(URL中域名后面部分對應的檔案)的HTTP 請求,該請求報文作為 TCP 三次握手的第三個報文的資料發送給服務器;

4、服務器對瀏覽器請求作出回應,并把對應的 html 文本發送給瀏覽器;

5、釋放 TCP連接;

6、瀏覽器將該 html 文本并顯示內容;

請回答一下HTTP和HTTPS的區別,以及HTTPS有什么缺點?

參考回答:

HTTP協議和HTTPS協議區別如下:

1)HTTP協議是以明文的方式在網路中傳輸資料,而HTTPS協議傳輸的資料則是經過TLS加密后的,HTTPS具有更高的安全性

2)HTTPS在TCP三次握手階段之后,還需要進行SSL 的handshake,協商加密使用的對稱加密密鑰

3)HTTPS協議需要服務端申請證書,瀏覽器端安裝對應的根證書

4)HTTP協議埠是80,HTTPS協議埠是443

HTTPS優點:

HTTPS傳輸資料程序中使用密鑰進行加密,所以安全性更高

HTTPS協議可以認證用戶和服務器,確保資料發送到正確的用戶和服務器

HTTPS缺點:

HTTPS握手階段延時較高:由于在進行HTTP會話之前還需要進行SSL握手,因此HTTPS協議握手階段延時增加

HTTPS部署成本高:一方面HTTPS協議需要使用證書來驗證自身的安全性,所以需要購買CA證書;另一方面由于采用HTTPS協議需要進行加解密的計算,占用CPU資源較多,需要的服務器配置或數目高

域名系統

DNS 是一個分布式資料庫,提供了主機名和 IP 地址之間相互轉換的服務,

DNS 可以使用 UDP 或者 TCP 進行傳輸,使用的埠號都為 53,大多數情況下 DNS 使用 UDP 進行傳輸

Web 頁面請求程序

1. DHCP 配置主機資訊

  • 假設主機最開始沒有 IP 地址以及其它資訊,那么就需要先使用 DHCP 來獲取,

  • 主機生成一個 DHCP 請求報文,并將這個報文放入具有目的埠 67 和源埠 68 的 UDP 報文段中,

  • 該報文段則被放入在一個具有廣播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 資料報中,

  • 該資料報則被放置在 MAC 幀中,該幀具有目的地址 FF:<zero-width space>FF:<zero-width space>FF:<zero-width space>FF:<zero-width space>FF:FF,將廣播到與交換機連接的所有設備,

  • 連接在交換機的 DHCP 服務器收到廣播幀之后,不斷地向上分解得到 IP 資料報、UDP 報文段、DHCP 請求報文,之后生成 DHCP ACK 報文,該報文包含以下資訊:IP 地址、DNS 服務器的 IP 地址、默認網關路由器的 IP 地址和子網掩碼,該報文被放入 UDP 報文段中,UDP 報文段有被放入 IP 資料報中,最后放入 MAC 幀中,

  • 該幀的目的地址是請求主機的 MAC 地址,因為交換機具有自學習能力,之前主機發送了廣播幀之后就記錄了 MAC 地址到其轉發介面的交換表項,因此現在交換機就可以直接知道應該向哪個介面發送該幀,

  • 主機收到該幀后,不斷分解得到 DHCP 報文,之后就配置它的 IP 地址、子網掩碼和 DNS 服務器的 IP 地址,并在其 IP 轉發表中安裝默認網關,

2. ARP 決議 MAC 地址

  • 主機通過瀏覽器生成一個 TCP 套接字,套接字向 HTTP 服務器發送 HTTP 請求,為了生成該套接字,主機需要知道網站的域名對應的 IP 地址,

  • 主機生成一個 DNS 查詢報文,該報文具有 53 號埠,因為 DNS 服務器的埠號是 53,DNS查詢分為兩種方式,一種是遞回查詢,一種是迭代查詢,如果是迭代查詢,本地的DNS服務器,向根域名服務器發送查詢請求,根域名服務器告知該域名的一級域名服務器,然后本地服務器給該一級域名服務器發送查詢請求,然后依次類推直到查詢到該域名的IP地址,DNS服務器是基于UDP的,因此會用到UDP協議,

  • 該 DNS 查詢報文被放入目的地址為 DNS 服務器 IP 地址的 IP 資料報中,

  • 該 IP 資料報被放入一個以太網幀中,該幀將發送到網關路由器,

  • DHCP 程序只知道網關路由器的 IP 地址,為了獲取網關路由器的 MAC 地址,需要使用 ARP 協議,

  • 主機生成一個包含目的地址為網關路由器 IP 地址的 ARP 查詢報文,將該 ARP 查詢報文放入一個具有廣播目的地址(FF:<zero-width space>FF:<zero-width space>FF:<zero-width space>FF:<zero-width space>FF:FF)的以太網幀中,并向交換機發送該以太網幀,交換機將該幀轉發給所有的連接設備,包括網關路由器,

  • 網關路由器接收到該幀后,不斷向上分解得到 ARP 報文,發現其中的 IP 地址與其介面的 IP 地址匹配,因此就發送一個 ARP 回答報文,包含了它的 MAC 地址,發回給主機,

3. DNS 決議域名

  • 知道了網關路由器的 MAC 地址之后,就可以繼續 DNS 的決議程序了,

  • 網關路由器接收到包含 DNS 查詢報文的以太網幀后,抽取出 IP 資料報,并根據轉發表決定該 IP 資料報應該轉發的路由器,

  • 因為路由器具有內部網關協議(RIP、OSPF)和外部網關協議(BGP)這兩種路由選擇協議,因此路由表中已經配置了網關路由器到達 DNS 服務器的路由表項,

  • 到達 DNS 服務器之后,DNS 服務器抽取出 DNS 查詢報文,并在 DNS 資料庫中查找待決議的域名,

  • 找到 DNS 記錄之后,發送 DNS 回答報文,將該回答報文放入 UDP 報文段中,然后放入 IP 資料報中,通過路由器反向轉發回網關路由器,并經過以太網交換機到達主機,

4. HTTP 請求頁面

  • 有了 HTTP 服務器的 IP 地址之后,主機就能夠生成 TCP 套接字,該套接字將用于向 Web 服務器發送 HTTP GET 報文,

  • 在生成 TCP 套接字之前,必須先與 HTTP 服務器進行三次握手來建立連接,生成一個具有目的埠 80 的 TCP SYN 報文段,并向 HTTP 服務器發送該報文段,

  • HTTP 服務器收到該報文段之后,生成 TCP SYN ACK 報文段,發回給主機,

  • 連接建立之后,瀏覽器生成 HTTP GET 報文,并交付給 HTTP 服務器,

  • HTTP 服務器從 TCP 套接字讀取 HTTP GET 報文,生成一個 HTTP 回應報文,將 Web 頁面內容放入報文主體中,發回給主機,

  • 瀏覽器收到 HTTP 回應報文后,抽取出 Web 頁面內容,之后進行渲染,顯示 Web 頁面,

參考文獻:

文獻

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

標籤:其他

上一篇:vue+egg.js使用websocket

下一篇:Linux自動化運維——9—Nginx+PHP(更新中)

標籤雲
其他(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