V porovnání s frameworky jako Backbone nebo React, které vyžadují volání metody render pro zpracování HTML šablon, Angular tento proces vykonává automaticky a zcela transparentně pro vývojáře. Jedním z klíčových rozdílů mezi aplikacemi typu MVC a MVVM je právě vazba (binding). V Angularu je základní jednotkou aplikace komponenta. Komponenta je kombinací tří složek: JavaScriptové třídy napsané v TypeScriptu a šablony Angularu napsané v HTML, CSS a TypeScriptu. Tyto dvě části do sebe zapadají jako puzzle, což umožňuje jejich vzájemnou komunikaci.
Třídy jsou konstrukty objektově orientovaného programování (OOP), a pokud se rozhodnete do této paradigmatu ponořit hlouběji, výrazně zlepšíte své porozumění tomu, jak Angular funguje. OOP paradigmata umožňují injektování závislých služeb do vašich komponent, což znamená, že můžete provádět HTTP požadavky nebo spouštět toast zprávy pro uživatele, aniž byste do komponenty museli zahrnovat tuto logiku nebo ji duplikovat. Injekce závislostí (DI) výrazně usnadňuje práci s mnoha vzájemně závislými službami, protože se nemusíte starat o pořadí jejich inicializace, instancování nebo destrukce z paměti. DI tak udržuje aplikaci přehlednou a efektivní.
Angular šablony umožňují podobné opětovné využívání kódu prostřednictvím direktiv, filtrů (pipes), uživatelských ovládacích prvků a dalších komponent. Tato část kódu, která je zodpovědná za interaktivitu, bývá často složitá a obtížně udržovatelná, proto je třeba ji oddělit od logiky byznysu nebo prezentace, aby bylo možné snadno udržovat čistotu a čitelnost kódu. Angular 17 přináší novou syntaxi pro řízení toku (v režimu náhledu), která nahrazuje starší direktivy, jako jsou *ngIf, *ngFor a *ngSwitch, novými dekorátory jako @if, @for a @switch, a zavádí novinky jako @empty, @defer, kontextové proměnné a podmíněné příkazy. Tato nová syntaxe činí šablony přehlednějšími a zabraňuje importování zastaralých direktiv do každé komponenty ve stand-alone projektech. V tomto knihy se bude výhradně používat nový kontrolní tok.
Existují dva způsoby, jak vytvořit Angular aplikaci: jako projekt NgModule nebo jako stand-alone projekt. Od Angularu 17 je výchozí způsob inicializace aplikace prostřednictvím stand-alone projektů. Tento přístup přináší mnoho výhod, jak je uvedeno v části o Angular Routeru. Moduly, jak je koncept rozuměn, sice nezmizely, ale už nejsou povinné. Ať už vaše aplikace začíná pomocí bootstrapApplication nebo bootstrapModule, na kořenové úrovni aplikace jsou komponenty, služby, direktivy, filtry a uživatelské ovládací prvky poskytnuty funkci bootstrapApplication nebo organizovány v modulech. Kořenová konfigurace zajišťuje vykreslení první komponenty, injektování služeb a připravení závislostí, které budou potřebné. V stand-alone aplikacích lze načítat komponenty lazily, což šetří čas při inicializaci.
S příchodem stand-alone komponent se objevuje výhoda eliminace složitých a často neefektivních modulů. Předtím bylo nutné vkládat sdílené komponenty do společného modulu, což vedlo k neefektivnímu zvyšování velikosti aplikace. Například aplikace jako LocalCast Weather by neměla žádné výhody z používání modulů, naopak aplikace jako LemonMart, která implementuje různé obchodní funkce v oddělených modulech, těží z modularity více. Tento přístup je efektivní pro velké aplikace, kde rozdělení kódu na různé části přináší významné úspory v rychlosti načítání a správě aplikace.
Přesto by stand-alone komponenty neměly být zaměňovány za Angular elements, které jsou implementací webového standardu pro vlastní prvky, známé také jako Web Components. Implementace komponent tímto způsobem by vyžadovala výrazné zjednodušení frameworku Angular, což by znamenalo snížení velikosti z přibližně 150 KB na několik KB. Tato technologie je ambiciózní a její úspěch by znamenal možnost používat Angular komponenty v jakékoli webové aplikaci, což by bylo revoluční. O této technologii se můžete dozvědět více na stránkách Angular Elements.
Angular v těsné spolupráci s knihovnou RxJS přináší reaktivní vzory vývoje, což znamená posun od tradičního imperativního stylu programování k reaktivnímu, který umožňuje snazší práci s asynchronními datovými toky. Tato změna ve stylu programování činí aplikace více modulárními a lépe škálovatelnými. V Angularu je možné kombinovat různé paradigmy programování – ať už pocházíte z objektově orientovaného nebo funkcionálního prostředí, můžete efektivně pracovat s Angular aplikacemi.
Reaktivní programování, které je podmnožinou funkcionálního programování, se od imperativního programování liší přístupem k práci s proměnnými. V imperativním programování definujete každý krok operace v přesném pořadí. To znamená, že každé rozhodnutí závisí na předchozích krocích a je třeba pečlivě řídit stavy proměnných, což může být složité a chybové. Na druhou stranu, reaktivní programování pracuje s asynchronními datovými toky, což znamená, že funkce nemusí být závislé na minulém stavu, ale vždy mohou pracovat s novými daty. Funkce v reaktivním programování jsou kompozitelné, což znamená, že lze snadno kombinovat různé funkce dohromady a získat tak výsledky, které očekáváte.
Je důležité si uvědomit, že reaktivní programování přináší nový způsob, jakým lze přistupovat k vývoji složitých aplikací. Tento přístup, který dává přednost asynchronnímu zpracování datových toků před sekvenčními kroky, usnadňuje testování a zjednodušuje ladění aplikací, protože každá část aplikace je jednoduše testovatelná jako samostatná funkce.
Jak správně nakonfigurovat Docker pro Angular aplikace: Kompletní průvodce
Instalace Dockeru je prvním krokem k tomu, abyste mohli vytvářet a spouštět kontejnery na vašem počítači. Docker umožňuje snadnou virtualizaci a izolaci aplikací, což výrazně zjednodušuje jejich nasazení do produkce. Abychom se dostali k práci s Dockerem, musíme si nejprve stáhnout a nainstalovat Docker Desktop na https://www.docker.com/products/docker-desktop/. Po dokončení instalace budeme moci spustit aplikace v kontejnerech a začít s jejich správou.
Po nainstalování Dockeru je dalším krokem konfigurace npm skriptů pro Docker. Tyto skripty usnadňují automatizaci procesů, jako je stavba, testování a publikování aplikací. Vytvořil jsem sadu skriptů pro Docker, které fungují na Windows 10 i macOS. Můžete si je stáhnout a automaticky konfigurovat pro svůj projekt pomocí příkazu:
Po spuštění tohoto příkazu budete mít připravené skripty, které vám umožní efektivně spravovat kontejnery pro vaše aplikace.
Stavba a publikování Docker obrázku na Docker Hub
Nyní se zaměříme na samotné vytvoření Docker obrázku a jeho publikování na Docker Hub. Tento proces vám umožní přenést vaši aplikaci do Docker kontejneru, což znamená, že ji můžete spustit kdekoli, kde je Docker k dispozici. Začněte tím, že si vytvoříte účet na Docker Hub na https://hub.docker.com/ a následně vytvoříte veřejný repozitář pro vaši aplikaci. V souboru package.json je potřeba přidat nebo upravit sekci config, která obsahuje nastavení pro Docker:
V tomto nastavení je namespace vaším uživatelským jménem na Docker Hubu. Při vytváření repozitáře definujete jeho název. Tímto způsobem se vytvoří správné propojení mezi vaší aplikací a Docker Hubem. imagePort určuje port, který bude použity pro expozici aplikace z kontejneru (pro vývoj se často používá port 4200, ale je doporučeno zvolit jiný, například 8080). internalContainerPort určuje port, který vaše aplikace používá v kontejneru (obvykle 3000 pro Node.js aplikace).
Konfigurace a spouštění skriptů Docker
Dalším krokem je konfigurace a přehled skriptů, které byly přidány do souboru package.json po spuštění mrm úkolu. Níže najdete ukázku a vysvětlení některých skriptů, které vám pomohou snadno pracovat s Dockerem.
-
build skript: Tento skript spustí build vaší aplikace a následně vytvoří Docker obrázek.
Skript predocker:build nejprve zkompiluje vaši Angular aplikaci, pak docker:build vytvoří Docker obrázek a následně postdocker:build označí obrázek verzí.
-
tag skript: Tento skript přidá tag na již postavený Docker obrázek.
-
stop skript: Tento skript zastaví běžící Docker kontejner, pokud nějaký běží.
-
run skript: Spustí nový kontejner z vytvořeného Docker obrázku.
-
publish skript: Tento skript publikuje Docker obrázek na Docker Hub.
-
taillogs skript: Tento skript zobrazuje logy běžícího Docker kontejneru.
-
open skript: Skript pro otevření aplikace v prohlížeči.
-
debug skript: Skript pro ladění, který postaví a spustí aplikaci v produkčním módu, a následně zobrazí logy.
Další kroky a doporučení
Aby byl proces efektivní, je důležité si být vědom několika věcí. Prvním krokem je vždy optimalizovat vaši aplikaci před jejím umístěním do Docker kontejneru. To zahrnuje nejen optimalizaci kódu, ale také úpravu konfigurace pro produkční prostředí. Použití příznaku --prod u příkazu ng build zajistí, že aplikace bude kompilována ve verzi optimalizované pro produkci, což sníží její velikost a zlepší výkon.
Dalším důležitým bodem je správné nakonfigurování portů a zajištění toho, že aplikace bude nasazena na správné verzi Docker kontejneru. Doporučuje se také provádět testování jak v lokálním prostředí, tak i na vzdáleném serveru, abyste se ujistili, že aplikace bude správně fungovat po nasazení.
Jak efektiv komunikovat při návštěvě muzea a na pracovních pohovorech?
Jak se změnily vnitřní světy a co se skrývá za slovy dopisů z fronty?
Jak zůstat v přítomném okamžiku a zlepšit svou pozornost pomocí smyslů a jednoduchých technik

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский