Golang
Ko nozīmē saīsinājumi KISS un DRY?
Kuras uzņēmumus tevi piesaista un kā izvēlēsies starp piedāvājumiem?
Kā savā starpā sazinās jūsu mikroservisi? Vai esat strādājis ar gRPC?
Kāda ir iemesls aiziet no [uzņēmuma] un kas jūs motivēja ienākt tirgū?
Kā ģenerējāt kodu no proto failiem? Vai izmantojāt Makefile?
Vai ir labi, ka vienu un to pašu endpoint izmanto, lai pievienotu draugus un skatītu lietotāja draugus, bet ar dažādām metodēm? Kā tas darbosies?
Pastāstiet par transakciju izolācijas līmeņiem
Kas ir stack un heap?
Kā novērtējat sevi grādos — Middle, Middle+, Senior?
Kādi indeksi ir PostgreSQL? Kā risināt lēnas vaicājumus?
Kas notiek, ievadot google.com pārlūkprogrammā un nospiežot Enter? Aprakstiet visu procesu un dalībniekus.
Kas ir reverse proxy un kā tas var tikt īstenots?
Pastāsti par konkurences apstrādi — kā ierobežoja paralēlismu, kā izvēlējās parametrus pēc mērījumiem?
Kuras sinhronizācijas primitives tu zini?
Kādus tīmekļa API veidus jūs zināt? Kā būtībā REST atšķiras no RPC?
Kādi var būt blakus efekti, izmantojot goroutines faila apstrādei, kam jābūt gatavam?
Kā mēs varam padarīt bibliotēkas drukas vairāk kontrolējamas? Tas ir, kā lietotājs var pārvaldīt žurnālu ierakstus?
Kāda ir atšķirība starp EXPLAIN un EXPLAIN ANALYZE?
/* Ir ir pastāv lietojumprogramma ar mikroservisu arhitektūra. Mikroserviss var tikt abstrakti ar `Backend` interfeisa. Lai piekļūt vienam mikroservisa eksemplāram, var izmantot `BackendImpl` tipu, kas jau ir realizēts. Katrs mikroserviss ir vairākas desmiti darbojošu eksemplāru, katrs pieejams ar savu adresi `addr`. Tomēr atsevišķi mikroservisa eksemplāri nav uzticami: tie var krist, būt nepieejami vai pārkrauti. Tādēļ jums jārealizē `Balancer` tips, kā arī realizē `Backend` interfeisu un veic slodzes balansēšanu starp mikroservisa eksemplāriem, katru reizi izvēloties **mazāk noslogotu** eksemplāru. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr satur konkrēta eksemplāra ip:port func NewBackend(addr string) *BackendImpl type Balancer struct { //TODO } var _ Backend = &Balancer{} // addrs satur visu balansēto eksemplāru adreses func NewBalancer(addrs []string) *Balancer { //TODO }
galvenais pakotne importēt ( "fmt" ) func main() { c := make(chan string, 1) go fmt.Println(<-c) c <- "Sveika, pasaule!" fmt.Println("Išeiti!") } mirtina klaida: visos gorutinos miega - deadlock! goroutine 1 [kanāla saņemšana]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a Programa beidzās: stāvoklis 2.