Golang
Stručně vysvětlete hlavní rozdíly mezi souborovými systémy ext2 a ext4.
Jak zabránit vzniku konkurenčních podmínek při paralelním zpracování dat?
Popište proces sběru a nastavení gRPC služby pro ruční testy nebo vývoj
Jak jsou na úrovni systému správy databází implementovány mechanismy omezení úrovní izolace transakcí?
Co může být negativní při převodu segmentu bajtů na řetězec?
Jaké důsledky nastanou, pokud data přenášená kanálem zůstanou nečtená?
Jaké je výhoda gorutin oproti vláknům z hlediska efektivity a pohodlí použití?
Jaké parametry lze nastavit pro chod plánovače úloh?
Jakými způsoby lze zajistit zpracování Kafka až 100 tisíc zpráv za sekundu?
Jak vnímáte situaci, kdy v kódu není explicitně uvedeno použití rozhraní?
Pověz mi o aktuálním projektu, na kterém pracuješ nebo na kterém jsi nedávno pracoval
Jaké operace existují nad slices v Go?
Jak se nazývá proces přesunu prvků z jednoho Mapu do druhého?
/* Musíme přenést data ze zdroje k příjemci. Zdroj poskytuje data v malých dávkách (~deset záznamů), zatímco příjemce s nimi pracuje efektivněji ve větších dávkách (~tisíc záznamů). Reálným příkladem je přenos dat z front typu Kafka do databáze Clickhouse. Zdroj: - Téměř nekonečný. - Zdroj nikdy nevrátí více než MaxItems záznamů v jednom volání Next. - V rámci jedné "seance" (jedno volání funkce Pipe) zdroj při každém volání Next vrací nová data. - Po restartu však zdroj začne od předchozí "potvrzené" pozice, určené cookie. Proto každý cookie vrácený Next, po uložení dat do příjemce, musí být potvrzen voláním Commit, ve stejném pořadí, v jakém byla data vrácena. Příjemce: - Nedokáže zpracovat více než MaxItems najednou. Základní úroveň: Je třeba implementovat funkci func Pipe(p Producer, c Consumer) error která čte data ze zdroje, seskupuje je do bufferu o velikosti nejvýše MaxItems a ukládá je do příjemce, po čemž potvrzuje pokrok ve zdroji. Zvýšená obtížnost: Metody Next, Process a Commit jsou spojeny s síťovými voláními a mohou trvat dlouho. Pro urychlení procesu je nutné paralelizovat procesy čtení, zápisu a potvrzování pokroku. Tak, aby během Process nebo Commit pokračovalo čtení ze zdroje a tvorba nového bufferu. */ const MaxItems = 9999 type Producer interface { // Next vrací: // - dávku položek k zpracování // - cookie k potvrzení po dokončení zpracování // - chybu Next() (items []any, cookie int, err error) // Commit se používá k označení dávky dat jako zpracované Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { // TODO }
Jak je implementována operace select v jazyce Go a jak funguje s kanály?
Lze pozastavit provádění gorutiny tak, aby se zablokovala na konkrétním systémovém vlákně?
Má jazyk Go vestavěnou podporu pro pole?
Jaký mechanismus abstrakce v jazyce Go je určen k reprezentaci znaků nebo tokenů?
Co znamená nulová hodnota pro řez v programovacím jazyce?
Jaké datové typy jsou vhodné pro použití jako klíč v datové struktuře Map?