Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Soalan temuduga Go yang baru dikeluarkan (Baidu dan MiHoYo)

Soalan temuduga Go yang baru dikeluarkan (Baidu dan MiHoYo)

藏色散人
藏色散人ke hadapan
2021-09-25 16:38:569495semak imbas

Baru-baru ini saya telah menemu duga untuk go jawatan teknikal di dua syarikat, satu di Baidu dan satu di MiHoYo Situasi temu duga tidak begitu optimistik sekarang.

Kedua-dua syarikat menggunakan temu bual dalam talian pada masa itu tidak ada rakaman. Kini saya bergantung sepenuhnya pada ingatan saya sendiri untuk menyemaknya.

Baidu sebelah

Langkah temuduga Baidu dibahagikan kepada asas komputer, go berkaitan, mysql berkaitan, redis berkaitan, linux soalan berkaitan. Terdapat juga beberapa isu yang berbeza.

Algoritma

  • asas, termasuk tetapi tidak terhad kepada pokok merah-hitam, pokok binari, dsb.
  • Struktur data, termasuk tetapi tidak terhad kepada senarai terpaut, tatasusunan, dsb.
  • tcp, ip soalan berkaitan, seperti jabat tangan tiga hala, gelombang empat hala, time_wait, dsb.
  • Masukkan alamat dalam penyemak imbas, dan terangkan prosesnya secara terperinci. (Saya rasa seperti saya akan ditanya ini, hahaha).

Bagi bahagian ini, jawapan saya adalah jarang, saya tidak dapat menjawab mana-mana algoritma dan struktur data yang terakhir ditanya dalam temu bual sebelum ini, jadi saya melakukan penyelidikan dan menjawabnya dengan adil boleh.

pergi berkaitan

  • GC, (menghadapi GO soalan yang diperlukan), GCstw masa, cara menyelesaikan setiap peringkat .
  • gpm, (soalan yang diperlukan untuk GO), ini mesti difahami sepenuhnya, cara penjadualan pendahuluan mendahului, cara menjadualkan goroutine dan bilangan M dan P .
  • Bagaimana untuk melaksanakan goroutinekolam secara elegan (jawapan ini jarang)
  • Bercakap tentang pelarian memori
  • Pengurusan memori (jawapan ini juga jarang)

berkaitan mysql

  • kunci mysql, kebutiran penguncian dan algoritma kunci (kunci celah, kunci rekod, kunci kunci sementara), dan apakah algoritma kunci itu digunakan dalam beberapa kes. Maksud umum ialah jika ia boleh dipadankan dengan tepat, kunci rekod akan digunakan, jika tidak, ia akan merosot menjadi kunci celah
  • prinsip pelaksanaan mvvc mysql.
  • indeks mysql, masa penciptaan indeks, peraturan penubuhan.
  • sub-pangkalan data MySQL dan peraturan jadual, adakah anda pernah mempraktikkannya?
  • Jenis indeks MySQL dan struktur data indeks
  • Ciri transaksi MySQL dan tahap pengasingan.

redis

  • Apakah jenis data redis, mari kita bincangkan tentang senario penggunaan.
  • Perlu ada dua kaedah pengekodan untuk redis zset Dikonfigurasikan dalam fail konfigurasi, unsur lalai 128 ialah senarai zip (jadual mampatan), dan jika ia lebih besar daripada 128, ia adalah senarai langkau
  • Strategi penghapusan memori Redis
  • Strategi kegigihan Redis
  • kunci teragih redis
  • Apakah seni bina yang diedarkan redis
  • Jika terdapat senarai kedudukan, gunakan zset, mengikut Isih mengikut mata dan masa Yang mempunyai mata tertinggi dan masa yang paling dekat akan diambil terlebih dahulu.

linux

  • Apakah arahan yang anda kenali
  • Jika terdapat lonjakan dalam trafik dalam talian, semuanya akan dihantar ke satu huluan Ya, bagaimana untuk menyemak.
  • Bagaimana untuk mengetahui 10 IP teratas yang diminta dalam log akses nginx

Ringkasan

Selepas saya selesai temuduga, saya biasanya bertanya Penemuduga, berdasarkan temu bual ini, jika anda mempunyai sebarang cadangan atau pendapat yang baik tentang kemahiran teknikal saya, jawapan penemuduga kepada saya ialah: Asas komputer agak lemah, tetapi keupayaan perniagaan sangat kuat. Ini juga keadaan saya sekarang, haha, jadi saya telah membaca teori komputer dan sistem operasi yang diajar oleh guru-guru dari Institut Teknologi Harbin baru-baru ini. Saya harap kerja keras saya dapat menampung kekurangan saya.

Temuduga MiHoYo

Temuduga MiHoYo terbahagi kepada empat bahagian, gorelevan, mysqlrelevan, redisrelevan, linuxRelevan.

go related

  • Saya keliru dengan soalan pertama. Kodnya adalah seperti berikut:
...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)
    }()}...

Tanyakan apa yang akan berlaku, mengapa dan bagaimana untuk menyelesaikannya. Cuma jangan gunakan penutupan secara langsung untuk menggunakan pembolehubah luaran, ia boleh diselesaikan dengan lulus parameter.

  • Memori bocor, dalam keadaan apa memori akan bocor.
  • Prinsip pelaksanaan asas saluran, (sebenarnya, ia meminta buf ialah struktur data senarai pautan bulat)
  • tangguh, ini mesti dijawab dengan teliti, bilakah penangguhan akan diubah suai nilai pulangan. Perintah penangguhan berganda.
  • Perbezaan antara buatan dan baharu
  • Apa yang berlaku apabila saluran ditutup dan kemudian data dihantar, dan apa yang berlaku apabila saluran tertutup ditutup.
  • Adakah urutan peta selamat?
  • Perbezaan antara tatasusunan dan kepingan.
  • GC
  • Model GPM
  • Perbezaan antara proses, benang dan coroutine. (Ini sangat penting)

Ada lagi yang saya terlupa.

redis

Ia hampir seperti Baidu.

mysql

hampir sama dengan Baidu.

linux

Hampir sama, jadi saya bertanya bagaimana untuk menyemak id proses berdasarkan nama proses.

Ringkasan

Berdasarkan maklum balas temu bual, MiHoYo mempunyai asas Go yang lemah tetapi keupayaan perniagaan yang kukuh. Mungkin inilah ciri-ciri outsourcing sebelum ini.

Sisi Kedua MiHoYo

Sisi Kedua MiHoYo terutamanya bertanyakan soalan tentang perniagaan dan algoritma, dan ia terdiri daripada tiga bahagian.

  • Perkhidmatan mikro yang berkaitan, termasuk pendaftaran dan penemuan perkhidmatan mikro, pemantauan perkhidmatan mikro, pengehadan mikroperkhidmatan semasa, dsb., serta cara untuk memperdayakan perkhidmatan mikro, Jawapan saya ialah penyelia, juga saya tidak tahu kalau betul.
  • Realisasi perniagaan tertentu, realisasi kod penebusan, cara kumpulan menjana ratusan ribu atau berjuta kod penebusan, (saya menjawab soalan ini dengan menggunakan algoritma kepingan salji), di bawah konkurensi tinggi, bagaimana pula dengan satu kod penebusan? Ia menjamin bahawa ia hanya boleh ditebus sekali oleh seorang dan bagaimana kod penebusan boleh ditebus oleh berbilang orang. (Saya mengambil masa setengah jam untuk menjawab soalan ini. Disebabkan saya pernah menjalankan perniagaan berkaitan sebelum ini, saya berasa sedikit tidak pasti)
  • Tiga soalan algoritma.
    1. Tulis kaedah untuk menyelesaikan: masukkan 4 nombor, tambah, tolak, darab dan bahagi dan keluarkan nilai yang dijangkakan.
    2. Algoritma keluasan didahulukan: Bagaimana untuk mengeluarkan nilai setiap lapisan.
    3. Masalah langkah, jika anda ingin naik satu langkah, anda boleh naik satu langkah pada satu masa, atau anda boleh naik dua langkah pada satu masa. Tulis kaedah untuk memasukkan bilangan langkah dan output berapa banyak cara untuk naik.

Disyorkan: "tutorial golang"

Atas ialah kandungan terperinci Soalan temuduga Go yang baru dikeluarkan (Baidu dan MiHoYo). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam