Waarom worden er geen fouten geretourneerd in de methode Process? Het moet worden gecorrigeerd en de volledig werkende code moet worden gestuurd.
Golang
Wat is het verschil tussen relationele databases en NoSQL?
Waarom ga je nu de markt op?
Welke andere structuren worden gebruikt voor indexen in databases naast de B-tree?
Wat zijn kanalen in Go en de select-operator?
Welke richting of project is je momenteel toegewezen in je huidige organisatie?
Hoe werkt binaire zoekopdracht in een gesorteerde lijst?
Kan de context worden gebruikt om gegevens tussen componenten of functies door te geven?
Wat is een pointer en hoeveel weegt hij?
Wat is het verschil tussen een proces en een thread?
Wat is een raceconditie en welke manieren zijn er om je ertegen te beschermen?
Documentupdates worden naar de service gestuurd message Document { string Url = 1; // URL van het document, de unieke identificatie uint64 PubDate = 2; // tijd van aangekondigde publicatie van het document uint64 FetchTime = 3; // tijd van ontvangst van deze documentupdate, kan worden beschouwd als versienummer. Het paar (Url, FetchTime) is uniek. string Text = 4; // tekst van het document uint64 FirstFetchTime = 5; // aanvankelijk afwezig, moet worden ingevuld } Documenten kunnen in willekeurige volgorde binnenkomen (niet in de volgorde waarin ze werden bijgewerkt), en er kunnen dubbele berichten zijn. Het is nodig om dezelfde berichten te vormen, maar met gecorrigeerde velden volgens de volgende regels (alles hieronder geldt voor een groep documenten met hetzelfde veld Url): Het veld Text en FetchTime moeten hetzelfde zijn als die van het document met de grootste FetchTime die tot nu toe is ontvangen. Het veld PubDate moet hetzelfde zijn als dat van het bericht met de kleinste FetchTime. Het veld FirstFetchTime moet gelijk zijn aan de minimale waarde van FetchTime. Met andere woorden, op elk moment nemen we PubDate en FirstFetchTime van de eerste versie die tot nu toe is ontvangen (als we ze sorteren op FetchTime), en Text van de laatste. De interface in de code kan als volgt worden geïmplementeerd: type Processor interface { Process(doc *Document) (*Document, error) } Deze code werkt in een service die berichten leest uit een wachtrij (Kafka of vergelijkbaar), en ook het resultaat in de wachtrij schrijft. Als Process null retourneert, wordt er niets in de wachtrij geschreven.
Wat is het verschil tussen een goroutine en een besturingssysteemthread?
Hoe gebruik je select om tegelijkertijd met meerdere kanalen te werken?
Wat zijn probes in Kubernetes, hoe stel je ze in en welke soorten zijn er?
Wat anders, naast een mutex, kan worden gebruikt om race conditions te voorkomen?
Wat is een iteratie over een string met for range in Go? Wat zijn de variabelen i en v binnen de lus, wat zijn hun datatypes?
Vertel over je praktische ervaring met kanalen in Go — hoe heb je ze in de praktijk toegepast?
Wat is asymptotische notatie en wat betekent het?
Wat is virtueel geheugen (swap), wanneer is het nodig en wanneer moet het worden uitgeschakeld?