前言
隨著分布式技術堆疊逐漸成熟,近幾年業界采用微服務架構設計的系統和領域越來越多,包括金融、電商、直播、物流、營銷、采購、制造等,有互聯網領域,也有傳統領域,
近段時間正值找作業的最佳時間,本人將一些各大廠商的面試題和今年(2020)最新資料的收集,以下是部分資料截圖(所有資料均已整合成檔案,pdf壓縮打包處理),
如有有需要的朋友可以點擊這里來獲取資料,暗號:qf

正題
我們如何在測驗中消除非決定論?
非確定性測驗(NDT)基本上是不可靠的測驗,所以,有時可能會發生它們通過,顯然有時它們也可能會失敗,當它們失敗時,它們會重新運行通過,
從測驗中洗掉非確定性的一些方法如下:
1、 隔離
2、 異步
3、 遠程服務
4、 隔離
5、 時間
6、 資源泄漏
Mock 或 Stub 有什么區別?
存根
· 一個有助于運行測驗的虛擬物件,
· 在某些可以硬編碼的條件下提供固定行為,
· 永遠不會測驗存根的任何其他行為,
例如,對于空堆疊,您可以創建一個只為 empty()方法 回傳 true 的存根,因此,這并不關心堆疊中是否存在元素,
嘲笑
· 一個虛擬物件,其中最初設定了某些屬性,
· 此物件的行為取決于 set 屬性,
· 也可以測驗物件的行為,
例如,對于 Customer 物件,您可以通過設定名稱和年齡來模擬它,您可以將 age設定為 12,然后測驗 isAdult()方法,該方法將在年齡大于 18 時回傳 true,因此,您的 Mock Customer 物件適用于指定的條件,
您對 Mike Cohn 的測驗金字塔了解多少?
Mike Cohn 提供了一個名為 Test Pyramid 的模型,這描述了軟體開發所需的自動化測驗型別,

Mike Cohn 的測驗金字塔 – 微服務面試問題
根據金字塔,第一層的測驗數量應該最高,在服務層,測驗次數應小于單元測驗級別,但應大于端到端級別,
Docker 的目的是什么?
Docker 提供了一個可用于托管任何應用程式的容器環境,在此,軟體應用程式和支持它的依賴項緊密打包在一起,
因此,這個打包的產品被稱為 Container,因為它是由 Docker 完成的,所以它被稱為 Docker 容器!
什么是金絲雀釋放?
Canary Releasing 是一種降低在生產中引入新軟體版本的風險的技術,這是通過將變更緩慢地推廣到一小部分用戶,然后將其發布到整個基礎架構,即將其提供給每個人來完成的,
什么是持續集成(CI)?
持續集成(CI)是每次團隊成員提交版本控制更改時自動構建和測驗代碼的程序,這鼓勵開發人員通過在每個小任務完成后將更改合并到共享版本控制存盤庫來共享代碼和單元測驗,
什么是持續監測?
持續監控深入監控覆寫范圍,從瀏覽器內前端性能指標,到應用程式性能,再到主機虛擬化基礎架構指標,
架構師在微服務架構中的角色是什么?
微服務架構中的架構師扮演以下角色:
· 決定整個軟體系統的布局,
· 幫助確定組件的磁區,因此,他們確保組件相互粘合,但不緊密耦合,
· 與開發人員共同撰寫代碼,了解日常生活中面臨的挑戰,
· 為開發微服務的團隊提供某些工具和技術的建議,
· 提供技術治理,以便技術開發團隊遵循微服務原則,
我們可以用微服務創建狀態機嗎?
我們知道擁有自己的資料庫的每個微服務都是一個可獨立部署的程式單元,這反過來又讓我們可以創建一個狀態機,因此,我們可以為特定的微服務指定不同的狀態和事件,
例如,我們可以定義 Order 微服務,訂單可以具有不同的狀態,Order 狀態的轉換可以是 Order 微服務中的獨立事件,
什么是微服務中的反應性擴展?
Reactive Extensions 也稱為 Rx,這是一種設計方法,我們通過呼叫多個服務來收集結果,然后編譯組合回應,這些呼叫可以是同步或異步,阻塞或非阻塞,Rx是分布式系統中非常流行的工具,與傳統流程相反,
2020祝大家心想事成!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/67881.html
標籤:其他
