Jak zavést efektivní Git workflow v týmu

Aus MeinWiki
Wechseln zu: Navigation, Suche


Pull request by měl být malý a srozumitelný. Pokud je příliš velký, je těžké ho zkontrolovat a reviewer snadno přehlédne kritickou chybu. Vždy k němu napište stručný popis, co a proč dělá. Před odesláním pull requestu si sami projděte diff a zkuste, jestli se kód sestaví a projdou testy. Až pak ho pošlete kolegovi. Nezapomeňte také na aktualizaci své větve před mergem – jinak hrozí konflikt, který budete muset řešit na poslední chvíli.

Pravidla pro commity a pull requesty Commit messages by měly být krátké, výstižné a ve formátu, který si tým odsouhlasí. Například „Oprava přihlašování přes OAuth" je mnohem lepší než „uprava". Vyhněte se commitům s hromadou změn nesouvisejících s daným úkolem – pokud potřebujete opravit dvě různé věci, udělejte dva commity. Před commitem vždy zkontrolujte, co přesně přidáváte pomocí git diff. Tím zabráníte tomu, aby se do historie dostaly dočasné soubory nebo klíče.

Pokud z nějakého důvodu musíte psát dynamické dotazy (například u řazení sloupců), ověřte, že hodnota je striktně z bílého seznamu povolených názvů. Nikdy neberte název sloupce nebo tabulky přímo z uživatelského vstupu. Pro řazení nebo filtrování používejte číselné indexy nebo enumy, které převedete na konkrétní hodnotu až v aplikaci. Tím eliminujete možnost, že by se do dotazu dostal cizí identifikátor.

Psaní čistého kódu není o dodržování striktních pravidel, ale o srozumitelnosti pro ostatní i pro vaše budoucí já. Když se kód po třech měsících vrátíte, neměli byste muset luštit, co jste si mysleli. Základem je volba výstižných názvů proměnných a funkcí. Místo `data` použijte `userList`, místo `getIt` raději `fetchUserById`. Názvy mají popisovat účel, ne implementaci. Vyhněte se zkratkám jako `tmp` nebo `x`, pokud nejde o řídicí proměnnou v cyklu.

Dalším častým chybným krokem je spoléhání se na escapování pomocí funkcí, jako je mysqli_real_escape_string. Tyto funkce sice dokážou ošetřit určité znaky, ale nejsou stoprocentně spolehlivé a v některých kontextech selhávají. For more information in regards to návod look at the webpage. Parametrizace je vždy bezpečnější, protože řeší problém u zdroje. Escapování používejte pouze jako doplňkovou ochranu, nikdy jako hlavní obranu.

Začít používat Git ve větším týmu bez jasných pravidel je recept na konflikty a ztracený čas. Nejdůležitější je definovat si workflow, který vyhovuje vašemu stylu práce, a pak ho důsledně dodržovat. Nejčastější chybou bývá, že každý vývojář používá jiný postup – jeden dělá commity přímo barvy stěn do obýváku hlavní větve, druhý používá větve a merguje bez kontroly. Výsledek? Historie plná nesmyslných merge commitů a nefunkční kód v produkci.

Kromě technik na straně aplikace nezapomínejte ani na oprávnění databázového uživatele. Pro běžný provoz aplikace nepoužívejte účet s administrátorskými právy. Vytvořte si účet, který má přístup pouze k potřebným tabulkám a operacím (SELECT, INSERT, UPDATE, DELETE). Tím omezíte škody, i když se útočníkovi podaří injekci provést. Pravidelně provádějte bezpečnostní testy, včetně automatických skenerů, a kontrolujte logy na podezřelé dotazy.

Základem každého funkčního workflow je oddělení hlavní větve (například main nebo master) od větví feature. Feature branch by měla vždy vycházet z aktuálního stavu hlavní větve a měla by být krátkodobá. Ideální je, když vetev žije maximálně pár dní, dokud není funkce hotová a otestovaná. Jakmile je práce hotová, provedete pull request a po kontrole kolegou větve sloučíte. Tento postup minimalizuje riziko konfliktů a usnadňuje code review.

Časté chyby a jak se jim vyhnout Jednou z nejčastějších chyb je mutace globálního stavu. Pokud funkce mění proměnnou mimo svůj rozsah, vznikají vedlejší efekty, které vedou k nepredikovatelnému chování. Řešením je předávat hodnoty jako parametry a vracet nové hodnoty. Například místo abyste upravovali pole pomocí `push`, raději vytvořte nové pole pomocí spread operátoru a na konci ho přiřaďte. Tím zajistíte, že původní data zůstanou nedotčena a testování bude jednodušší.
Nakonec si osvojte dvě užitečné dovednosti: vracení změn a prohlížení historie. Když zjistíte, že jste rozbili aplikaci, nepropadejte panice. Stačí se podívat na poslední commity a vrátit se o rekonstrukce koupelny krok za krokem zpět. Užitečné je také porovnat aktuální stav se starší verzí souboru – to vám pomůže najít, co přesně se změnilo. Pravidelný trénink s těmito nástroji vám dá jistotu a webové projekty přestanou být noční můrou. Začněte ještě dnes a za týden nebudete chtít pracovat jinak.

Používejte parametrizované dotazy místo řetězení Základním pravidlem je nikdy neskládat SQL dotaz pomocí řetězení textu a uživatelských dat. Tento způsob je přesně tím, co útočníci zneužívají. Pokud uživatel zadá do formuláře hodnotu, která obsahuje SQL příkaz, může ji aplikace vykonat. Místo toho vždy používejte parametrizované dotazy nebo připravené příkazy, které oddělují SQL kód od dat. Většina jazyků a frameworků tuto funkci nativně podporuje, takže nemáte žádný důvod ji nepoužívat.