1 post / 0 new
Guest (not verified)
5 věcí, které rozhodují o tom, zda REST API v Node.js uspěje

Poslední rada se týká pořádku v souborech. Názvy tříd pište podle toho, co prvek dělá, ne jak vypadá. Barvu lze změnit, název třídy zůstane. Oddělujte obsah od vzhledu a vždy, když něco nefunguje, zkontrolujte, zda je soubor skutečně uložený a zda cesta k němu odpovídá skutečnosti. Většina problémů vzniká z těchto dvou důvodů.

Dalším častým omylem je domněnka, že stačí ošetřit vstup na začátku aplikace. Data se mohou dostat do dotazu i z databáze, z mezipaměti, ze souboru nebo z externího rozhraní. Stejně nebezpečné je spoléhat na to, že magické uvozovky nebo automatické escapování vyřeší vše. Escapování je vázané na konkrétní znakovou sadu a konkrétní databázi. Při nesprávném nastavení připojení může být obejité. Parametrizace žádné takové podmínky nemá.

Skryté činnosti není možné z plánu úplně vyloučit, ale je možné s nimi počítat dopředu. Kdo je pojmenuje, rozdělí odhad na jednotlivé kroky a vede si záznam o skutečně stráveném čase, ten dřív nebo později zjistí, že se jeho odhady přestaly rozpadat. Nejde o to odhadnout budoucnost přesně, ale o to nepředstírat, že práce sestává jen z viditelné části.

SQL injection vzniká ve chvíli, kdy aplikace vloží vstup od uživatele přímo do databázového dotazu, aniž by jej oddělila od samotné logiky dotazu. Útočník pak může místo očekávané hodnoty předat fragment SQL, který změní význam příkazu, přečte cizí data, zapíše nová nebo je smaže. Nejde přitom o okrajovou chybu. Stačí jedno neošetřené pole ve formuláři nebo parametr v adrese a celá databáze je ohrožená.

Začátečníci často vkládají veškerý obsah do jediného odstavce a zalamování řádků řeší prázdnými řádky. Prohlížeč je ale ignoruje. Výsledkem je nečitelná změť, kterou nelze nastylovat ani zpřístupnit. Místo toho se používají sémantické značky: nadpisy podle úrovně, odstavce, seznamy, odkazy a obrázky s alternativním textem. Alternativní text není formalita, pomáhá lidem se čtečkou obrazovky a zobrazí se, když se obrázek nenačte.

Testování odhalí víc než ladění za běhu. Napište testy pro šťastnou cestu i pro případy, kdy vstup chybí nebo je neplatný. Sledujte, jak se aplikace chová při souběžných požadavcích, a logujte dostatek kontextu, abyste z produkce dokázali zjistit, co se stalo. Express sám o sobě není zázrak, ale s rozmyslem nad strukturou, validací a chybami z něj postavíte API, které vydrží i provoz mimo vývojový stroj.

Základní kostra vypadá tak, že vytvoříte instanci aplikace, zaregistrujete middleware a definujete trasy pro jednotlivé HTTP metody. Klíčové je pochopit pořadí: middleware se vykonává v tom pořadí, v jakém ho přidáte. Když dáte parsování JSON až za routu, která data potřebuje, dostanete prázdné tělo a budete hodiny hledat chybu. Stejně tak chybový handler patří na konec řetězce, jinak se k němu výjimka nikdy nedostane.

Odhadujte činnosti, ne jen výsledek Místo jednoho čísla za celý úkol je spolehlivější rozložit práci na jednotlivé činnosti a odhadnout každou zvlášť. U každé položky se ptejte, co všechno obnáší: kde seženete potřebné informace, kdo musí něco schválit, jaké nástroje bude potřeba upravit, co se může pokazit. Zvláštní pozornost věnujte přepínání kontextu — návrat k rozdělané práci po schůzce nebo po jiném úkolu zabere reálně několik minut, i když se to do žádné kolonky nevejde. Pokud se odhad dělá ve dvou lidech, jeden může klást otázky a druhý vysvětlovat; rozdíly mezi jejich představami jsou přesně tím místem, kde skryté činnosti nejčastěji unikají.

Typickou chybou je odhadovat podle nejlepšího možného scénáře. Předpokládá se, že vše půjde hladce, že kolega odpoví hned a že testy projdou napoprvé. Ve skutečnosti je potřeba počítat s čekáním, s neúplnými zadáními a s tím, že část práce se dělá dvakrát. Další častou chybou je opomenout režii na komunikaci: krátké zprávy, schůzky, vysvětlování a domlouvání detailů zaberou u netriviálního úkolu klidně i několik hodin, přestože se na první pohled zdají bezvýznamné. Podobně se zapomíná na úklid po dokončení — odstranění dočasných řešení, doplnění dokumentace a předání informací těm, kdo budou na práci navazovat.

Struktura projektu se vyplatí řešit dřív, než napíšete dvacátou routu. Rozdělte kód na trasy, controllery a vrstvu pro přístup k datům. Jeden soubor s pěti sty řádky se nedá testovat ani rozumně upravovat. Konfiguraci a tajné klíče držte mimo zdrojový kód, ideálně v proměnných prostředí, a nikdy je necommitujte do repozitáře. Stejně tak si hlídejte, co posíláte klientovi: chybová odpověď nemá obsahovat stack trace ani interní detaily.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Navigation

User login