Jump to content

Když REST API v Node.js potřebuje pořádnou strukturu, Express ji dodá

From Babylon SIGNALIS Wiki

Co si osvojit jako první: přejmenování a extrakce Základem je bezpečné přejmenování symbolů. Místo ručního hledání a nahrazování použijte funkci Rename – IDE najde všechny výskyty proměnné, metody nebo třídy a změní je najednou. Pozor na to, že přejmenování funguje správně jen tehdy, když je kód syntakticky validní; jinak může nástroj některé výskyty přehlédnout. Dalším klíčovým nástrojem je extrakce – ať už metody, proměnné nebo konstanty. Vyberete blok kódu, zvolíte Extract Method a IDE vytvoří novou metodu s parametry a návratovou hodnotou. Tím se snižuje duplicita a zlepšuje čitelnost bez zbytečného přepisování.

Třetím krokem je automatizace nasazení do testovacího prostředí. Vytvořte skript, který spolehlivě nainstaluje vaši aplikaci na čistý server. Nespoléhejte na ruční konfiguraci. Důležité je, aby bylo prostředí reprodukovatelné – pokud vám skript funguje na lokálním počítači, ale ne na serveru, máte problém. Opravte to hned, jinak se k tomu už nikdy nevrátíte. Testujte nasazení alespoň jednou denně, raději častěji. Nezapomeňte na rollback – připravte si plán, jak se vrátit k předchozí verzi, pokud se něco pokazí.

Další past je v tom, že se snažíte zákazníkovi vyjít vstříc a do odhadu započítáte minimum času. Přitom každý projekt má nevyhnutelné rezervy – na komunikaci, na opravy, na čekání. Zkušený profesionál ví, že když odhad řekne „pět dní", ve skutečnosti to bude osm. Důvod není neschopnost, ale fakt, že se do práce vždy přimíchají nepředvídatelné věci. Odhad tedy vždy navrhněte jako střední hodnotu, ne jako nejlepší možný scénář. A rovnou vysvětlete, proč tam rezerva je: „Po počítejte s tím, že reálně to bude 6–7 dní, protože potřebuji dva dny na případné úpravy podle vašich připomínek." Tím zákazník dostane číslo, se kterým může počítat, a vy se vyhnete stresu.

Přínos z přispívání není jen o tom, že projekt získá novou funkci. Vy sami se naučíte číst cizí kód, pracovat s verzovacími nástroji a komunikovat s lidmi z různých prostředí. Tyto dovednosti se hodí v profesním životě, ať už pracujete jako vývojář, nebo v jiné roli. Pravidelnou účastí si také vybudujete reputaci, která vám může otevřít dveře k dalším příležitostem. Takže neváhejte – vyberte si projekt, který používáte, a udělejte první krok. I malá změna může mít velký dopad.

Typickou chybou je slibovat „průběžně budeme informovat". Tato fráze nic neznamená a zákazník si pod ní představí každodenní hlášení. Mnohem lepší je hned na začátku domluvit, kdy přesně budete posílat zprávy (například každý pátek odpoledne) a co v nich bude (stav, zpoždění, nejbližší krok). Pokud víte, že něco může sklouznout, oznamte to dřív, než se to stane. Zákazník vám odpustí zpoždění, ale nikdy neodpustí ticho a náhlé zjištění, že se práce nestíhá.

Začněte malými úkoly, které nevyžadují hluboké znalosti kódu. Dokumentace je ideálním výchozím bodem – oprava překlepů, doplnění příkladů nebo aktualizace zastaralých informací jsou vítané příspěvky. Tímto způsobem se seznámíte s procesem review a komunikací s maintainery, aniž byste riskovali rozbití funkčnosti. Pokud chcete přidat novou funkci, nejprve ji diskutujte v issue trackeru. Navrhněte řešení a zeptejte se, zda je to v souladu s vizí projektu. Mnoho začátečníků dělá chybu, že napíše velký kus kódu bez předchozí konzultace, a pak je odmítnuto kvůli architektonickým rozhodnutím.

Nezapomínejte ani na komentáře – ale jen tehdy, když vysvětlují proč, ne co. Komentář typu // increment counter je zbytečný, protože to vidíte z kódu. Užitečný je komentář, který vysvětluje netriviální obchodní logiku nebo upozorňuje na známý problém. Také se vyhněte komentářům, které popisují, co by kód měl dělat, ale neodpovídají skutečnosti – takové komentáře jsou horší než žádné, protože klamou.

S validací souvisí i jednotné zpracování chyb. Express má vestavěný mechanismus pro chybové middleware, který se definuje se čtyřmi argumenty (err, req, res, next). Vytvořte si centrální middleware pro chyby, který zaloguje detailní informace a vrátí klientovi pouze bezpečnou část. Nikdy nevracejte klientovi stack trace nebo interní chyby databáze. Pro produkční prostředí použijte generický formát chyby, který klientovi řekne, co se pokazilo a případně jak to opravit. Pro vývojové prostředí můžete vrátit více detailů.

Při komunikaci s maintainery buďte trpěliví a respektujte jejich čas. Nemusí odpovědět hned, a pokud váš příspěvek vyžaduje úpravy, berte to jako standardní součást procesu. Vyhněte se pasivně-agresivním poznámkám a osobním útokům, i když s rozhodnutím nesouhlasíte. Zdvořile vysvětlete své důvody a nabídněte kompromis. Nezapomeňte také na pravidlo, že jeden pull request by měl řešit jednu věc. Rozsáhlé změny, které kombinují refaktoring s novou funkcí, jsou obtížné k review a často končí uzavřené bez přijetí.