Co se stane, když zvolíte REST místo GraphQL a naopak

German Darbyshi… 26-08-30 01:14 2 0

GraphQL řeší právě problém nadbytečných dat. Klient si požádá přesně o to, co potřebuje, a server vrátí jen to. Když například potřebujete zobrazit jméno uživatele a počet jeho objednávek, jedno dotazovací pole nahradí dvě volání RESTu. Typická chyba začátečníků je ale návrh resolverů bez ohledu na N+1 problém – každý dotaz na seznam může znamenat desítky drobných dotazů do databáze. Pokud to neřešíte nástroji jako DataLoader, výkon se propadne. Další pastí je absence striktního verzování: zatímco u RESTu přidáte /v2/, u GraphQL musíte pečlivě plánovat evoluci schématu, abyste neporušili existující klienty.

female_looking_for_something_in_her_pursKdyž to celé nastavíte, zjistíte, že se tým soustředí na to podstatné – na psaní kódu a řešení problémů. Místo dohadování, jak co nainstalovat, mají všichni stejný základ. A to je přesně to, co potřebujete, aby projekt rostl bez zbytečných třenic. Jednotná konfigurace není o omezení svobody, ale o tom, že si každý může být jistý, že to, co běží u něj, poběží i jinde.

Když narazíte na chybu, která se projeví až po interakci s uživatelem, využijte možnost pozastavit provádění kódu. V panelu Sources (nebo Debugger) nastavte breakpoint na řádku, kde se podezřelá funkce volá. Poté stránku znovu načtěte a interagujte s ní. Kód se zastaví přesně na daném místě a vy můžete procházet proměnné v panelu Scope. If you have any type of questions pertaining to where and how you can make use of úložné prostory v malém bytě, you could call us at our own web page. Podívejte se, jestli hodnoty odpovídají vašim očekáváním. Často se ukáže, že proměnná obsahuje undefined, i když jste čekali objekt nebo pole. Pokud potřebujete pokračovat řádek po řádku, použijte tlačítko „Step over" (přeskočit aktuální funkci) nebo „Step into" (vstoupit barvy stěn do obýváku ní). Nezapomeňte na „Step out", které vás vrátí na místo volání.

Když se řekne API, mnoho začátečníků si představí černou skříňku s tlačítky. Ve skutečnosti jde o rozhraní, které umožňuje dvěma programům spolu mluvit. Představ si, že si v restauraci objednáváš jídlo – ty jsi program, číšník je API a kuchyně je server. Číšník převezme tvou objednávku, předá ji kuchyni a pak ti přinese výsledek. Přesně tak funguje API: pošleš požadavek (request), server odpoví (response). Tento princip pochopíš za pět minut, ale zbytek je o detailech.

Při výběru mezi REST API a GraphQL nejde o módní trend, ale o konkrétní dopady na výkon, údržbu a rychlost vývoje. Mnoho týmů sáhne po GraphQL jen proto, že je „moderní", a pak řeší problémy s cachováním nebo přetíženým serverem. Jiní zůstanou u RESTu a bojují s nadbytečnými daty v každé odpovědi. Klíčové je pochopit, jak obě technologie pracují s daty a kde leží jejich skutečné limity.

Typické chyby, na které breakpointy nestačí Někdy se problém neprojeví jako výjimka, ale jako nesprávné chování stránky – tlačítko nefunguje, nebo se obsah neaktualizuje. V takovém případě se vyplatí sledovat síťovou komunikaci. Otevřete panel Network a podívejte se na požadavky, které se odesílají. Často zjistíte, že se data odesílají na špatnou adresu, nebo že odpověď přichází ve formátu, se kterým kód neumí pracovat. Pokud pracujete s REST API, klikejte na jednotlivé požadavky a prohlédněte si jejich hlavičky a tělo odpovědi. Další častou pastí je asynchronní kód – funkce s klíčovým slovem async, nebo použití setTimeout. Zde pomáhá dočasně přidat do kódu příkaz console.log na začátek a konec dané funkce. Zjistíte tak, zda se kód vůbec spustí, a v jakém pořadí se jednotlivé části vykonávají.

Práce s breakpointy vyžaduje trpělivost, ale vyplatí se ji naučit. Vyhnete se tím neustálému opakování „změním kód, uložím, obnovím, kouknu". Většinu chyb odhalíte rychle, když se zaměříte na hodnoty proměnných v okamžiku selhání. Nezapomínejte ani na možnost podmíněných breakpointů – klikněte pravým tlačítkem na řádek, zvolte „Add conditional breakpoint" a napište podmínku, kdy se má kód zastavit. Tímto způsobem přeskakujete stovky zbytečných iterací cyklů. A pokud se vám zdá, že kód běží pomalu, otevřete panel Performance a nahrajte si průběh – uvidíte, která funkce zabírá nejvíce času.

Na závěr si osvojte jeden návyk: když řešíte problém, pište si dočasné komentáře k tomu, co jste zkoušeli. Po opravě je smažte. A nikdy neposílejte do produkce kód s přidanými console.log, protože tyto výpisy zpomalují stránku a zahlcují konzoli ostatním vývojářům. Stejně tak odstraňte všechny breakpointy, které už nepotřebujete. Tím udržíte kód čistý a příště se vám bude lépe hledat skutečná chyba.

Základním pravidlem je oddělit shrnutí od podrobností. První řádek by měl být krátký, do padesáti znaků, a měl by odpovídat na otázku, co commit dělá. Třeba „Oprava výpočtu DPH u faktur s měnou EUR". Tento řádek se zobrazuje v přehledech, logu i v e-mailech. Zbývající řádky oddělte prázdným řádkem a tam vysvětlete, proč jste změnu provedli, jak zařídit malou kuchynié měla důsledky a jaké alternativy jste zvažovali. Neopisujte, co je vidět v diffu — to už tam je. Pište to, co z kódu nevyčtete.

댓글목록

등록된 댓글이 없습니다.