序文
分散テクノロジースタックの段階的な成熟に伴い、近年、金融、eコマース、ライブブロードキャスト、ロジスティクス、マーケティング、調達、製造など、インターネット分野と従来の分野の両方で、マイクロサービスアーキテクチャを使用して設計されたシステムとフィールドが増えています。フィールド。
最近、仕事を見つけるのに最適な時期です。今年(2020年)に、主要メーカーからのインタビューの質問と最新のデータを収集しました。以下は、データのスクリーンショットです(すべてのデータがドキュメントに統合され、pdfで圧縮およびパッケージ化されています)。 。
友だちが必要な場合は、ここをクリックして情報を入手できます。コード:qf
正题
テストで不確定性を排除するにはどうすればよいですか?
非決定的テスト(NDT)は、基本的に信頼性の低いテストです。そのため、彼らが合格することもあれば、失敗することもあります。彼らが失敗すると、彼らは再実行して合格します。
テストから非決定性を削除するいくつかの方法は次のとおりです。
1.分離
2.非同期
3.リモートサービス
4.分離
5.時間
6.リソースの漏洩
モックとスタブの違いは何ですか?
スタブ
・テストの実行に役立つ仮想オブジェクト。
・ハードコード化できる特定の条件下での固定動作を提供します。
・スタブの他の動作をテストしないでください。
たとえば、空のスタックの場合、empty()メソッドに対してのみtrueを返すスタブを作成できます。したがって、スタックに要素があるかどうかは関係ありません。
歯に詰め物をする
・特定のプロパティが最初に設定されている仮想オブジェクト。
・このオブジェクトの動作は、設定された属性によって異なります。
・オブジェクトの動作をテストすることもできます。
たとえば、Customerオブジェクトの場合、名前と年齢を設定することでシミュレートできます。年齢を12に設定してから、isAdult()メソッドをテストします。これにより、年齢が18を超えるとtrueが返されます。したがって、Mock Customerオブジェクトは指定された条件に適しています。
マイクコーンのテストピラミッドについてどれだけ知っていますか?
Mike CohnはTest Pyramidと呼ばれるモデルを提供しました。これは、ソフトウェア開発に必要な自動テストのタイプを示しています。
Mike Cohn 的测试金字塔 – 微服务面试问题
ピラミッドによると、最初の層のテストの数は最も多くなるはずです。サービス層では、テストの数は単体テストレベルより少なくする必要がありますが、エンドツーエンドレベルよりも大きくする必要があります。
Dockerの目的は何ですか?
Dockerは、任意のアプリケーションをホストするために使用できるコンテナー環境を提供します。ここでは、ソフトウェアアプリケーションとそれをサポートする依存関係が緊密にパッケージ化されています。
したがって、このパッケージ化された製品はDockerによって実行されるため、コンテナーと呼ばれ、Dockerコンテナーと呼ばれます。
カナリアリリースとは何ですか?
Canaryリリースは、新しいソフトウェアバージョンを本番環境に導入するリスクを軽減するテクノロジーです。これは、変更を小さなユーザーグループにゆっくりと展開し、それをインフラストラクチャ全体に公開して、誰でも利用できるようにすることで行われます。
継続的インテグレーション(CI)とは何ですか?
継続的インテグレーション(CI)は、チームメンバーがバージョン管理の変更を送信するたびに、コードを自動的に構築およびテストするプロセスです。これにより、開発者は、小さな各タスクが完了した後で、変更を共有バージョン管理リポジトリにマージして、コードとユニットテストを共有することができます。
継続的監視とは何ですか?
ブラウザのフロントエンドパフォーマンスインジケーターからアプリケーションパフォーマンス、ホスト仮想化インフラストラクチャーインジケーターまで、カバレッジの継続的な監視と詳細な監視。
マイクロサービスアーキテクチャにおけるアーキテクトの役割は何ですか?
マイクロサービスアーキテクチャの設計者は、次の役割を果たします。
・ソフトウェアシステム全体のレイアウトを決定します。
・コンポーネントのパーティション分割を決定するのに役立ちます。したがって、コンポーネントが互いに接着されているが、しっかりと結合されていないことが保証されます。
・開発者と共同でコードを記述して、日常生活で直面する課題を理解します。
・マイクロサービスを開発するチームに特定のツールと手法に関する提案を提供します。
・技術開発チームがマイクロサービスの原則に従うように、技術ガバナンスを提供します。
マイクロサービスで状態マシンを作成できますか?
独自のデータベースを備えた各マイクロサービスは、独立してデプロイ可能なプログラムユニットであり、ステートマシンを作成することができます。したがって、特定のマイクロサービスに異なる状態とイベントを指定できます。
たとえば、Orderマイクロサービスを定義できます。注文にはさまざまなステータスがあります。Order状態の遷移は、Orderマイクロサービスの独立したイベントになる可能性があります。
マイクロサービスのリアクティブ拡張とは何ですか?
Reactive ExtensionsはRxとも呼ばれます。これは、複数のサービスを呼び出して結果を収集し、結合された応答をコンパイルする設計方法です。これらの呼び出しは、同期または非同期、ブロッキングまたは非ブロッキングにすることができます。Rxは、従来のプロセスとは異なり、分散システムで非常に人気のあるツールです。