Čtvrtým krokem je otestovat, zda je licence v praxi vymahatelná a srozumitelná. Soubor s licencí patří do kořene projektu, v hlavičkách zdrojových souborů má být stručná zmínka. Častá chyba je neúplný nebo rozporuplný licenční text, který v praxi nikdo neumí vyložit. Stejně problematické je napsat vlastní licenci bez právního základu. Pokud si nejste jistí, použijte existující osvědčenou licenci a jen doplňte, kdo je držitelem práv.
Pracovní postup místo hromady příkaz
Rozvržení se dnes nedělá pomocí tabulek ani plovoucích prvků, ale pomocí mřížky a flexboxu. Flexbox stačí na řazení prvků vedle sebe nebo pod sebe, mřížka zvládne složitější rozvržení se sloupci a řádky. Oba nástroje jsou součástí CSS a nepotřebujete k nim žádnou knihovnu. Kdo je zvládne, obejde se bez zbytečných závislostí a jeho stránky se načtou rychleji.
Pull request není formalita pro manažery, ale místo, kde se chyby zachytí nejlevněji. Piš do něj, co a proč se mění, ne jen „oprava”. Uveď, jak se to dá ověřit, a pokud jde o změnu chování, napiš, co se stane při chybě. Recenzent by měl číst diff, ne se ptát, co tam vlastně je. Malý pull request do dvou set řádků se zkontroluje za deset minut, obří za dva dny a stejně se přehlédne. Pokud změna souvisí s jinou, rozděl ji; pokud ne, nespojuj ji jen proto, že to bylo pohodlné.
Instalace je přímočará. Vytvořte virtuální prostředí, aktivujte ho a nainstalujte pytest pomocí správce balíčků. Ověření provedete příkazem pytest –version. Testy se ukládají do souborů, jejichž název začíná na test_ nebo končí na _test. Samotné testovací funkce musí mít také prefix test_. pytest je sám najde bez jakékoli registrace. Spuštění je pak otázkou příkazu pytest v kořeni projektu. Pro podrobnější výstup použijte pytest -v, pro zastavení po první chybě pytest -x.
První zásadní věcí je deklarace proměnných. Místo var používejte let a const. let použijte tam, kde se hodnota bude měnit, const všude jinde. Blokový rozsah platnosti zabrání nechtěnému přepsání proměnné ve vnější funkci. Typická chyba je, že někdo dá const poli nebo objektu a diví se, že s ním nemůže manipulovat. const neznamená neměnnost obsahu, pouze neměnnou vazbu. Pokud potřebujete skutečně neměnný objekt, musíte sáhnout po jiných technikách, jako je zmrazení nebo kopírování.
Asynchronní operace se výrazně zjednodušily díky Promise a syntaxi async/await. Místo řetězení .then() můžete psát kód, který vypadá synchronně. Uvnitř async funkce použijte await před voláním, které vrací promise. Nezapomeňte na try/catch, jinak se chyba ztratí. Častý omyl je zapomenout await a pracovat s promise místo s výsledkem. Také pamatujte, že await lze použít jen uvnitř async funkce nebo v modulu na nejvyšší úrovni, pokud to prostředí podporuje.
Poslední oblastí jsou moduly. import a export nahrazují staré globální proměnné a okamžitě zpřehlední strukturu projektu. Při importu používejte relativní cesty a pojmenované exporty. Pokud exportujete výchozí hodnotu, importujte ji bez složených závorek. Častá chyba je cyklická závislost, kdy modul A importuje B a B importuje A. Tomu se vyhněte rozdělením kódu nebo přesunem společné logiky do třetího modulu. Moderní JavaScript není o tom naučit se všechny novinky nazpaměť, ale vědět, kdy kterou použít a kde naopak zvolit starší, ale bezpečnější postup.
Šablonové literály řeší skládání řetězců elegantně. Místo nekonečného spojování plusy použijte zpětné apostrofy a $promenna. Uvnitř lze psát i víceřádkový text, což oceníte u HTML šablon. Častá chyba je zapomenutí zpětných apostrofů nebo záměna za běžné uvozovky. Dalším pomocníkem jsou výchozí parametry funkcí. function pozdrav(jmeno = ‘návštěvníku’) zajistí, že funkce nespadne, když argument chybí. Dejte si ale pozor na hodnotu null — výchozí hodnota se použije jen při undefined, nikoli při null.
Moderní JavaScript dnes znamená především standard ES6 a novější. Přechod od staršího stylu psaní není jen kosmetická záležitost. Kód je kratší, čitelnější a mnohdy i rychlejší. Zároveň ale přináší nové možnosti, ve kterých se dá snadno udělat chyba. Následující řádky shrnují konkrétní postupy, které se vyplatí používat, a upozorňují na místa, kde vývojáři často klopýtnou.
Šipky, rozbalování a další každodenní pomocníci Arrow funkce jsou krátké a přebírají this z okolního kontextu. To je výhoda v metodách pole, ale problém v objektech, kde potřebujete vlastní this. Pokud si nejste jistí, raději použijte klasickou funkci. Rozbalování objektů a polí výrazně zkracuje kód. Například const jmeno, vek = uzivatel; vytáhne vlastnosti do samostatných proměnných. Pozor na kolizi názvů — pokud už proměnná existuje, musíte ji přejmenovat pomocí dvojtečky. U polí funguje podobně [prvni, druhy] = pole;, ale nezapomeňte, že se jedná o přiřazení, ne o kopii celého pole.
To learn more about NáBytek Na MíRu have a look at our own page.