目次
##概要 " > ##概要
※HoYoOne 側" >※HoYoOne 側
関連する" >関連する
MiHoYo の 2 面目" >MiHoYo の 2 面目
ホームページ バックエンド開発 Golang リリースされたばかりの Go インタビューの質問 (Baidu と MiHoYo)

リリースされたばかりの Go インタビューの質問 (Baidu と MiHoYo)

Sep 25, 2021 pm 04:38 PM
言語を移動

私は最近、Baidu と MiHoYo の 2 つの企業で go の技術職に面接しました。面接の状況はあまり楽観的ではありませんでした。次に、面接中に聞かれた質問を共有しましょう。

両社ともオンライン面接でしたが、当時は録画もありませんでしたので、今では完全に自分の記憶に頼って見直しています。

baidu 側

Baidu の面接ステップは、コンピューターの基本、go 関連、mysql 関連、 に分かれています。 redis 関連、linux 関連の問題。いくつかの分岐した問題もあります。

基本的な関連アルゴリズム

  • 赤黒ツリー、バイナリ ツリーなどを含む (ただしこれらに限定されない) アルゴリズム。
  • データ構造 (リンク リスト、配列などを含みますが、これらに限定されません)。
  • tcpip に関連するいくつかの問題 (スリーウェイ ハンドシェイク、4 ウェイ ウェーブ、time_wait など)。
  • ブラウザにアドレスを入力し、プロセスを詳しく説明します。 (基本的に聞かれそうな気がします、ははは)。

このセクションに関しては、私の答えはまばらでした。アルゴリズムとデータ構造のいずれにも答えていませんでした。後の 2 つは、以前のインタビューで質問されていたので、いくつか確認して、かなりうまく答えました。 。 できる。

関連する

  • GC、(GOの必須質問)、GCstwタイミング、各ステージの解き方。
  • gpm (GO の必須質問)、プリエンプティブ スケジューリングがどのようにプリエンプトするのか、goroutine をスケジュールする方法を十分に理解する必要があります。 、MP の数。
  • goroutine プールをエレガントに実装する方法 (この回答はスパースです)
  • メモリ エスケープについて話します
  • メモリ管理 (この回答もスパースです)壊れた)

mysql 関連

  • mysql ロック、ロック粒度とロック アルゴリズム (ギャップ ロック、レコード ロック、一時キー ロック)、および以下ロック アルゴリズムはどのような状況で使用されますか?一般的な意味は、正確に一致できる場合はレコード ロックが使用され、そうでない場合はギャップ ロックに退化するということです。
  • mysql mvvc 実装原則。
  • mysql インデックス、インデックス作成タイミング、作成ルール。
  • Mysql のサブデータベースとテーブルのルール、実践したことがありますか?
  • mysql インデックス タイプとインデックス データ構造
  • mysql トランザクションの特性と分離レベル。

redis

  • redis のデータ型とは何か、また使用シナリオについて説明します。
  • redis zset には 2 つのエンコード方法があるはずです。設定ファイルで設定されます。デフォルトの 128 要素は ziplist (圧縮テーブル) で、128 より大きい場合はスキップリストです。
  • Redis メモリ削除戦略
  • Redis 永続化戦略
  • redis 分散ロック
  • Redis 分散アーキテクチャとは
  • ランキング リストがある場合は、zset を使用します。に基づいてポイントと時間で並べ替えます。最も高いポイントを持つものと最も近い時間が最初に採用されます。これを実現するにはどうすればよいですか?

linux

  • どのコマンドに精通していますか?
  • オンライン トラフィックが急増すると、すべてのコマンドが送信されます。はい、確認方法です。
  • nginx アクセス ログでリクエストされた上位 10 の IP を確認する方法
面接が終わった後、私は通常、面接官に質問します。 、このインタビューに基づいて、私の技術スキルに関して何か良い提案や意見があれば、私に対する面接官の答えは次のとおりです: コンピューターの基礎は比較的弱いですが、ビジネス能力は非常に強いです。これは私の現在の状況でもあります(笑)。それで、最近はハルビン工業大学の先生が教えるコンピューター理論やオペレーティングシステムを読んでいます。私の努力が私の欠点を補ってくれることを願っています。

MiHoYo のインタビューは通常 4 つのパートに分かれており、

go 関連、mysql 関連です。 、redis 関連、linux 関連。

    最初の質問には困惑しました。コードは次のとおりです。
...m := make(map[int]int, 10)for i := 1; i<= 10; i++ {
    m[i] = i}for k, v := range(m) {
    go func() {
        fmt.Println("k ->", k, "v ->", v)
    }()}...
ログイン後にコピー
何が起こるか、なぜ、どのように解決するかを尋ねます。外部変数を使用するためにクロージャを直接使用しないでください。パラメータを渡すことで解決できます。

  • メモリ リーク。どのような状況でメモリ リークが発生するか。
  • チャネルの基本的な実装原則 (実際、これは buf が循環リンク リストのデータ構造であることを要求することを意味します)
  • 延期、これは慎重に答える必要があります。いつ延期するか変更します。戻り値。複数の順序は延期されます。
  • make と new の違い
  • チャネルが閉じられてからデータが送信されると何が起こるか、また閉じられたチャネルが閉じられると何が起こるか。
  • マップはスレッドセーフですか? マップ展開ルール。
  • 配列とスライスの違い。
  • GC
  • GPM モデル
  • プロセス、スレッド、コルーチンの違い。 (これはとても重要です)

他にも忘れていることがあります。

redis

は、Baidu に似ています。

mysql

は Baidu とほぼ同じです。

linux

ほとんど同じなので、プロセス名に基づいてプロセスの ID を確認する方法を尋ねました。

インタビューのフィードバックによると、MiHoYo は Go の基礎は貧弱でしたが、強力なビジネス能力を示しました。これが以前のアウトソーシングの特徴なのかもしれません。

MiHoYo の 2 面目は主にビジネス面とアルゴリズム面に関する質問で、主に 3 つのパートで構成されています。

    マイクロサービス関連 (マイクロサービスの登録と検出、マイクロサービスの監視、マイクロサービスの電流制限など)、およびマイクロサービスのプロセスを保護する方法。私の答えはスーパーバイザーです。また、そうではありません。それが正しいかどうかを知ってください。
  • 特定のビジネスの実現、引き換えコードの実現、高い同時実行性の下で、数十万または数百万の引き換えコードをバッチ生成する方法 (私の答えは、これを実装するためにスノーフレーク アルゴリズムを使用することです)。 1 つの引き換えコードについて 1 人が 1 回のみ引き換えることができること、および複数人が引き換えコードを引き換えることができる方法について説明します。 (この質問に答えるのに 30 分かかりました。以前に関連するビジネスを行ったことがあるため、少し自信がありません。)
  • アルゴリズムの質問が 3 つあります。
    1. 解くメソッドを書きます: 4 つの数値を入力し、加算、減算、乗算、除算を通じて期待値を出力します。
    2. 幅優先アルゴリズム: 各レイヤーの値を出力する方法。
    3. ステップ問題、1段ずつ上がりたい場合は1段ずつ上がってもいいし、2段ずつ上がってもいいです ステップ数を入力して出力するメソッドを書いてください上に行く方法は何通りありますか。

推奨: 「golang チュートリアル

以上がリリースされたばかりの Go インタビューの質問 (Baidu と MiHoYo)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go's Crawler Collyのキュースレッドの問題は何ですか? Go's Crawler Collyのキュースレッドの問題は何ですか? Apr 02, 2025 pm 02:09 PM

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

GOの浮動小数点番号操作に使用されるライブラリは何ですか? GOの浮動小数点番号操作に使用されるライブラリは何ですか? Apr 02, 2025 pm 02:06 PM

GO言語の浮動小数点数操作に使用されるライブラリは、精度を確保する方法を紹介します...

Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Goでは、Printlnとstring()関数を備えた文字列を印刷すると、なぜ異なる効果があるのですか? Apr 02, 2025 pm 02:03 PM

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Redisストリームを使用してGO言語でメッセージキューを実装する場合、user_idタイプの変換の問題を解決する方法は? Apr 02, 2025 pm 04:54 PM

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? GO言語の「VAR」と「タイプ」キーワード定義構造の違いは何ですか? Apr 02, 2025 pm 12:57 PM

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? GOのどのライブラリが大企業によって開発されていますか、それとも有名なオープンソースプロジェクトによって提供されていますか? Apr 02, 2025 pm 04:12 PM

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか? Apr 02, 2025 pm 05:09 PM

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

SQL.Openを使用するとき、DSNが空に渡されたときにエラーを報告しないのはなぜですか? SQL.Openを使用するとき、DSNが空に渡されたときにエラーを報告しないのはなぜですか? Apr 02, 2025 pm 12:54 PM

SQL.Openを使用する場合、DSNがエラーを報告しないのはなぜですか? GO言語では、sql.open ...

See all articles