Golang
Welke caching-strategie kiezen — cache-aside of write-through — rekening houdend met het gedragspatroon van gebruikers bij het controleren van de bestelstatus?
Welke regels voor het werken met kanalen moet je kennen bij ontwikkeling (gesloten, open, wanneer wat gedaan kan worden)?
Schrijf een opdracht in de programmeertaal Go — praktische sectie (problemen uit het leven van de ontwikkelaar, zonder algoritmen): verbeter of repareer een service. Duur — 1,5 uur.
Als gebruikers ontevreden zijn over de wijziging in het monetisatie-model, maar het bedrijf heeft een duidelijk plan — wat te doen?
Live codering: semafoor — hoe het werkt en de implementatie op basis van een gebufferde kanaal.
Welke methodologie gebruikt u: Scrum, Kanban of een mix?
Wat is de beperking van een semafoor en een gebufferde kanaal als oplossingen om parallelle verzoeken te beperken?
Heeft u eerder gehoord van [bedrijf] of onze producten?
Wat zijn schattingen?
Waar zou je niet meer mee geconfronteerd willen worden op het werk?
Wat is jouw niveau — middle, middle+, senior?
Analyse van Go-code: wat doet de code, welke problemen zijn er?
Tot welke groep (veranderlijk/onveranderlijk) behoort de interface in Go?
Wat zijn autorisatietokens en welke zijn er?
Wat is het verschil tussen relationele databases en NoSQL?
Ontwerp van een schaalbaar berichtenplatform dat 150 miljoen gebruikers ondersteunt, met 75 miljoen DAU, 225 miljoen MAU, 1,2 miljoen lees- / 300k schrijfsituaties QPS, 5 miljoen gelijktijdige gebruikers, 60 PB nieuwe gegevens per jaar, 30% jaarlijkse groei, SLA 99,95%, p99 <200 ms voor lezen, <300 ms voor schrijven. CONTEXTE Het is nodig om een gedistribueerd berichtenplatform te ontwerpen, vergelijkbaar met WhatsApp, dat 1:1 en groepschats ondersteunt, berichtbezorging garandeert, online statussen van gebruikers toont en multimedia-bestanden (foto's, video's, audio) overdraagt. Het systeem moet hoge beschikbaarheid en lage latentie bieden, hoge paralleliteit ondersteunen en wereldwijd schalen. FUNCTIONELE EISEN - Ondersteuning voor persoonlijke (1:1) en groepschats met de mogelijkheid om deelnemers toe te voegen/verwijderen - Verzenden en ontvangen van tekstberichten en multimedia-bestanden Er lijkt geen duidelijke implementatie van end-to-end encryptie-mechanismen op servicetoe of clientniveau, afgezien van een algemene notitie. - Er ontbreekt een expliciete beschrijving van sharding en replicatie van databases op basis van chat_id of user_id voor schaalbaarheid en fouttolerantie. - Er is geen duidelijke component of mechanisme voor offline synchronisatie van berichten en afleverbevestigingen. - Het is niet duidelijk hoe de load balancing tussen databases en services wordt uitgevoerd, vooral bij piekbelastingen. **Kritieke punten om rekening mee te houden:**
Noem de belangrijkste stack in Go
Moest u ooit uren registreren, tijd bijhouden in een systeem?
""" De plaatsen in de bioscoop zijn in één rij gerangschikt. Een net aangekomen kijker kiest een plek, om zo ver mogelijk van de andere kijkers in de rij te zitten. Dat wil zeggen, de afstand van die plek, waar de kijker zal zitten, tot de dichtstbijzijnde kijker, moet maximaal zijn. Er wordt gegarandeerd dat er altijd vrije plaatsen in de rij zijn en dat er al minstens één kijker zit. Schrijf een functie die, gegeven een rij van plaatsen (een array van nullen en enen), de afstand (het aantal tussenruimtes tussen de stoelen) teruggeeft van de gekozen plek tot de dichtstbijzijnde kijker. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }
Wat is lock contention?