Golang
Descreva o processo de compilação de um programa Go: o que acontece ao executar go build?
Existem formas mais simples e rápidas de equilibrar a carga em vez de escolher o backend menos carregado?
Como é garantida a consistência dos dados no projeto?
O que é uma aplicação bem executada?
Você tenta cobrir o máximo possível em percentagem ou cobrir a lógica de negócio mais crítica?
A sequência de saída de 100 goroutines será a mesma em cada execução? Do que isso depende?
Que testes normalmente e em que casos eles são utilizados?
Existe uma plataforma: aplicação móvel para pacientes, gabinete web para médicos, módulo ML para interpretação de análises. Como você projetaria a interação desses componentes? Qual estilo de API você escolheria e por quê?
Quais são as desvantagens do método de limpeza de cache em segundo plano implementado? Como pode ser melhorado?
Como foi implementado o cache de dados? Qual política de cache foi usada?
O que te motiva, por que gostas de trabalhar como programador?
Onde trabalha atualmente?
Quantos anos de experiência combinada em desenvolvimento em Go?
Estás disposto a trabalhar de acordo com o Código do Trabalho da Federação Russa?
Como os dados são armazenados nos antigos mapas Go após a definição do bucket?
Que tipos de memória o Go distingue (pilha e heap)? Como eles diferem? Como o Garbage Collector trabalha com objetos na pilha?
Quais são as desvantagens de passar uma entidade através do contexto em Go?
O que é uma transação numa base de dados? Quais são os níveis de isolamento de transações e como eles diferem entre si?
var ( mu sync.Mutex items []Product vatRate = 10.0 order Order ) type Product struct { NameOfProduct string PriceOfProduct float32 } type Order struct { Items []Product } func init() { items = make([]Product, 100) } func AddItemToShoppingCart(item Product) { items = append(items, item) } func RemoveItemFromShoppingCart(nameOfItem string) bool { mu.Lock() defer mu.Unlock() for i, item := range items { if item.NameOfProduct == nameOfItem { items = append(items[:i], items[i+1:]...) } } }
Ainda há corridas de dados na implementação? Especificamente no método Keys, que retorna uma fatia de chaves?