Technical Writer
Hogyan választod ki a Go projekt szerkezetét?
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } }
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } } package main import "fmt" func main() { x := 1 defer func() { fmt.Println("defer:", x) }() x = 2 fmt.Println("now:", x) }
Röviden mesélj magadról.
Highload-tal való munka során: kevesebb allokáció vagy jobb kód olvashatóság?
Milyen immutable objektumokat ismersz Java-ban?
A szolgáltatás lassan fogyaszt memóriát. Hogyan lokalizálhatja a problémát?
Magyarázd el, mi az interfész junior fejlesztő szinten
Mesélj egy érdekes esetről a legutóbbi cégednél, körülötte most hol van szűk keresztmetszet?
Mi az a versenyhelyzet (race condition)?
SQL vagy NoSQL? Mikor melyiket választod? Szükség van migrációkra a MongoDB-hez?
Telefonos fizetési rendszer Olyan architektúrát kell megvalósítani, ahol az ügyfél mobilalkalmazáson keresztül fizethet vásárlásokat a pénztárnál/KS-nél (önkiszolgáló pénztár). A fizetés NEM SBP-n keresztül történik. Amikor a felhasználó vásárol, a fizetést az alkalmazáson keresztül választja. A pénztár vagy KS azonosítja a felhasználót, és elindítja a fizetési folyamatot az ügyfél bankjával. CJM: - A pénztáros/ügyfél szkenneli a termékeket. - Átmegy a fizetéshez. - Azonosítja magát a pénztárnál/KS-nél. - A Magnit alkalmazásban választ fizetést. - Belép a Magnit alkalmazásba. - Kiválasztja a telefonjára telepített bankot, ahonnan a fizetés történik. - A bank alkalmazásában végrehajtja a fizetést. - Visszatér a fizetési eredményt mutató képernyőre a Magnit alkalmazásban. - A pénztárnál/KS-nél megkapja a sikeres fizetés üzenetét. Nem funkcionális követelmények: - DAU = 1000 az üzletben - Üzletek száma 500 - Pénztárak száma - átlagosan 5. - A fizetés legfeljebb 2 perc alatt kell megtörténjen. - A fizetési oldal legfeljebb 250ms alatt nyílik meg.
Milyen okokból nem skálázható egy mikroszolgáltatás?
Milyen típusú kivételek vannak Java-ban, és miben különböznek egymástól?
Milyen megközelítéseket használsz a szolgáltatás építéséhez? Nevezd meg a 12-factor app fő tényezőit
Előfordultak olyan esetek, amikor szándékosan nem használtál goroutine-okat, pedig használhattad volna? Miért?
Hogyan ellenőrizzük az adatok integritását egy webhookban? Hogyan védjük az adatokat a szállítási szinten?
Milyen rétegeket látsz az alkalmazásban? Hogyan kommunikálnak egymással?
Milyen minták alkalmasak az adatok validálására, az objektum létrehozására és a fizetési mód kiválasztására?
Mesélj a elosztott tranzakciókról. Mi a különbség az orchestration és a choreography között?