Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
4 zpusoby, jak psát moderní JavaScript bez zbytečných chyb
Strona
Dyskusja
polski
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
Základní cyklus má tři kroky a plete se pořád dokola. git status ukáže, co se změnilo. git add soubor přesune změnu do přípravy (staging). git commit -m "popis" ji uloží jako bod v historii. Kdo vynechá git add, diví se, že commit je prázdný. Kdo naopak přidá omylem celý adresář přes git add ., dostane do historie i to, co tam nechce. Zpráva commitu nemá být „oprava" nebo „změny" — za měsíc nebudeš vědět, co se opravovalo. Piš krátce, ale konkrétně: „oprava dělení nulou v exportu".<br><br>Testování jednotek v C# s NUnit vypadá na první pohled jednoduše: napíšete metodu, ozdobíte ji atributem [Test], spustíte runner a hotovo. Jenže rozdíl mezi sadou testů, která vám vydrží roky, a sadou, kterou po měsíci přestanete spouštět, netkví v syntaxi. Tkví v návycích, které se kolem psaní testů vytvoří. Následující čtyři zásady pokrývají většinu problémů, na které při práci s NUnit narazíte.<br><br>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.<br><br>Požadavek na sloučení nemá být formalita. Napište do něj, co změna řeší, jak jste ji otestovali a na co si dát pozor. Recenzent nemá hádat záměr z deseti commitů. Když je změna velká, rozdělte ji na několik menších požadavků. Malé změny se kontrolují rychleji a snáze se vracejí, pokud se něco pokazí. Nikdy neschvalujte vlastní změnu jen proto, že spěcháte.<br><br>Čtvrtý návyk je práce s výjimkami a parametrizací. Pro očekávané výjimky používejte Assert.Throws nebo Assert.That s Throws.TypeOf, nikdy ne obalení do try-catch s prázdným blokem. Parametrizované testy s [TestCase] nebo [TestCaseSource] ušetří desítky metod a zpřehlední hraniční hodnoty. Pozor ale na přílišnou abstrakci: pokud parametr mění i logiku testu, ne jen vstup, patří zvlášť. Nakonec testy pravidelně spouštějte lokálně i v rámci sestavení, jinak ztratí smysl. Test, který se nespouští, je jen komentář s horší syntaxí.<br><br>Pro vizuální kontrolu používejte snímky obrazovky porovnávané proti schválené předloze, ale nastavte toleranci. Bez tolerance budou testy nestabilní. U síťové komunikace testujte i výpadky: vypněte data uprostřed odesílání a sledujte, zda aplikace zobrazí srozumitelnou zprávu a zda se data neztratí. Právě tady ruční testování odhalí to, co automatizace přehlédne – zda je chybová hláška pochopitelná a zda se aplikace nezasekne.<br><br> Začněte jednou pipeline, ne celou platform<br><br>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í.<br><br>Š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.<br><br>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.<br><br>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.
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony