Sobes.tech

Golang

func Copy(src io.Reader, dst io.Writer) error { //... } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) (statusCh, error) { //... go func() { statusCh }() } func Read() { select { case status := <-statusCh: } } type Stat struct { status string err error } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) go func() { statusCh{ } } return statusCh } func Read() { select { case status := <-statusCh: } } import gocopy s := file.Open() err := gocopy.Copy(s, d) func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } } func Copy(src io.Reader, dst io.Writer) chan Stat { //... statusCh := make(chan Stat{}) buf := make([]byte, 1024) var total int64 go func() { for { select { case : n, err := src.Read(buf) if n > 0 { writen, err := dst.Write(buf[:n]) total += int64(writen) if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } } if err == io.EOF { statusCh <- Stat{ bCopy: total, status: "done", err: nil, } return } if err != nil { statusCh <- Stat{ status: "done with err", err: err, } return } default: statusCh <- Stat{ bCopy: total, status: "pending", err: nil, } } } } return statusCh } func Read() { select { case status := <-statusCh: if status.err != nil { return } } }

345

Mit keresel egy munkában, mivel szeretnél foglalkozni?

308

Van egy `unpredictableFunc()` nevű függvény, amit be kell csomagolni úgy, hogy időkorlát mellett (például 1 másodperc) fusson, és mérjük a futási időt. // Van egy függvény, ami végtelen ideig fut, és számot ad vissza. // A törzsét nem lehet módosítani (feltételezzük, hogy belül egy hálózati kérés van). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // A csomagoló függvényt módosítani kell, hogy egy adott időkorlát mellett (például 1 másodperc) működjön. // Ha a "hosszú" függvény ezen idő alatt befejeződik, az jó, visszaadjuk az eredményt. // Ha nem, hibát adunk vissza. Az eredmény ebben az esetben nem számít. // // Továbbá mérni kell, hogy mennyi ideig futott ez a függvény (egyszerűen írjuk ki a logba). // A wrapper függvény szignatúráját módosíthatjuk. func predictableFunc() int64 { return unpredictableFunc() }

291

Milyen csapatban dolgoztál a bankban? Mit csinált a csapat?

276

Hogyan működik az SSL/TLS? Írja le a kapcsolat létesítésének folyamatát.

264

Hogyan épülnek fel a mapek a Go nyelvben?

247

Hogyan működik belülről a context.WithTimeout?

231

Mi az a tranzakciók izolációs szintjei? Melyiket használtad?

220

Hogyan ellenőrizhető a CPU és memória terhelése Linuxon?

216

Mit fog a kód kiírni? package main import "fmt" func main() { nums := make([]int, 1, 2) fmt.Println(nums) // appendSlice(nums, 1024) fmt.Println(nums) // mutateSlice(nums, 1, 512) fmt.Println(nums) // } func appendSlice(sl []int, val int) { sl = append(sl, val) } func mutateSlice(sl []int, idx, val int) { sl[idx] = val }

216

**Feltétel** Több URL-kérésnek párhuzamosan kell végrehajtódnia. Mutassa a HTTP-állapotokat, kezelje a hibákat. ```go package main func main() { urls := []string{"[link]"} // Valamit csinálj } ```

210

Miben különböznek a goroutine-ok az OS szálaktól? Mire jók a goroutine-ok?

206

Hogyan találjuk meg a lassú lekérdezést a PostgreSQL-ben, és hogyan optimalizáljuk?

206

Fontolóra vették az adatok forró (utolsó 3 hónap) és hideg részre osztását a terhelés csökkentése érdekében az Elasticsearch helyett?

205

Hogyan különbözteted meg a Junior, Middle és Senior fejlesztőket? Milyen kritériumok alapján tartod magad Seniornak?

202

Beszélj a resp.Body.Close()-ról — miért szükséges, és miért tettél egy 10-es pufferet?

202

Írjon SQL lekérdezést, amely megjeleníti **az ügyfél nevét**, **városát** és **az összes rendelésének összegét**. Csak azok az ügyfelek kerüljenek be a végső eredménybe, akik összes költése **több mint 1000** egység. --- **Adatséma:** 1. **`customers` tábla:** - `customer_id` (int) – az ügyfél egyedi azonosítója. - `customer_name` (varchar) – az ügyfél neve. - `city` (varchar) – lakóhely városa. 2. **`orders` tábla:** - `order_id` (int) – egyedi rendelési szám. - `customer_id` (int) – az ügyfél azonosítója, aki vásárolt. - `total_amount` (decimal) – egy adott rendelés összege.

196
/3