Wzorce rozwoju Angular
Wykorzystaj Cursor i Claude Code do rozwoju Angular, od architektury komponentów po wzorce enterprise. Te przepisy obejmują funkcje Angular 17+, komponenty standalone, sygnały, wstrzykiwanie zależności i strategie testowania.
Szybka konfiguracja projektów Angular
Dział zatytułowany „Szybka konfiguracja projektów Angular”Inicjalizacja Angular z AI
Dział zatytułowany „Inicjalizacja Angular z AI”- Otwórz Cursor w swoim obszarze roboczym
- Skonfiguruj Figma MCP: Ustawienia > MCP > Dodaj serwer >
http://127.0.0.1:3845/sse
- Aktywuj tryb Agent (Cmd/Ctrl + I)
- Prompt: “Utwórz nowy projekt Angular 17 z komponentami standalone, Angular Material, Tailwind CSS i Jest do testowania”
- Włącz tryb YOLO dla automatycznego wykonywania CLI
- Przejrzyj angular.json i konfigurację projektu
- Przejdź do katalogu projektów
- Uruchom polecenie
claude
- Dodaj Figma MCP:
claude mcp add figma --transport sse http://127.0.0.1:3845/sse
- Wykonaj: “Skonfiguruj Angular 17 z SSR, obsługą PWA, i18n, NgRx do zarządzania stanem i kompleksową konfiguracją testową”
- Pozwól Claude obsłużyć całą konfigurację
- Użyj
/init
dla specyficznego dla Angular CLAUDE.md
Konfiguracja kontekstu AI
Dział zatytułowany „Konfiguracja kontekstu AI”Konfiguracja Figma MCP
Dział zatytułowany „Konfiguracja Figma MCP”{ "mcpServers": { "figma": { "type": "sse", "url": "http://127.0.0.1:3845/sse" } }}
# Standardy rozwoju Angular
## Wytyczne architektury- Używaj komponentów standalone (Angular 14+)- Implementuj lazy loading dla funkcji- Przestrzegaj przewodnika stylu Angular- Używaj detekcji OnPush domyślnie
## Konwencje kodu- Tryb strict TypeScript włączony- RxJS do programowania reaktywnego- Sygnały Angular do zarządzania stanem- Najlepsze praktyki wstrzykiwania zależności
## Standardy testowania- Testy jednostkowe z Jest- Testy integracyjne z Testing Library- Testy E2E z Playwright- Minimum 80% pokrycia kodu
Rozwój komponentów
Dział zatytułowany „Rozwój komponentów”Projektowanie komponentów Angular
Dział zatytułowany „Projektowanie komponentów Angular”# PRD: Konwertuj projekty Figma na komponenty Angular# Plan: Użyj Figma MCP do generowania komponentów
"Używając Figma MCP, wygeneruj komponent Angular z wybranego projektu:1. Utwórz komponent standalone z właściwymi importami2. Używaj Angular Material tam, gdzie to możliwe3. Zastosuj detekcję zmian OnPush4. Wyodrębnij tokeny projektu do zmiennych SCSS5. Wygeneruj dyrektywy responsywnego układu"
# Przykładowy przepływ pracy"Wybierz komponent Card w Figma i:- Wygeneruj komponent standalone Angular- Zmapuj na komponent Material Card- Wyodrębnij tokeny podniesienia i odstępów- Utwórz właściwości @Input() z wariantów Figma- Dodaj właściwe interfejsy TypeScript"
Tokeny projektowe Figma do Angular
Dział zatytułowany „Tokeny projektowe Figma do Angular”// Wyodrębnij system projektowy z Figma"Używając Figma MCP get_variable_defs:1. Pobierz wszystkie zmienne kolorów i odstępów2. Wygeneruj zmienne Angular SCSS3. Utwórz serwis tokenów projektowych4. Skonfiguruj niestandardowe właściwości CSS"
// Wygenerowany: _design-tokens.scss$color-primary: #1D4ED8; // Figma: Primary/Blue$color-primary-dark: #1E40AF; // Figma: Primary/Dark$spacing-xs: 0.5rem; // Figma: Spacing/XS$spacing-sm: 1rem; // Figma: Spacing/S$spacing-md: 1.5rem; // Figma: Spacing/M
:root { --color-primary: #{$color-primary}; --color-primary-dark: #{$color-primary-dark}; --spacing-xs: #{$spacing-xs}; --spacing-sm: #{$spacing-sm}; --spacing-md: #{$spacing-md};}
// Wygenerowany: design-tokens.service.ts@Injectable({ providedIn: 'root' })export class DesignTokensService { readonly colors = signal({ primary: '#1D4ED8', primaryDark: '#1E40AF' });
readonly spacing = signal({ xs: '0.5rem', sm: '1rem', md: '1.5rem' });}
Wzorce komponentów standalone
Dział zatytułowany „Wzorce komponentów standalone”Inteligentne tworzenie komponentów:
Utwórz komponent standalone UserDashboard, który:1. Używa sygnałów Angular do zarządzania stanem2. Implementuje detekcję zmian OnPush3. Ma leniwie ładowane trasy potomne4. Integruje się z UserService przez DI5. Zawiera granicę błędów6. Ma stany ładowania7. Implementuje właściwe typy TypeScript8. Używa komponentów Angular Material
Formularze reaktywne z AI
Dział zatytułowany „Formularze reaktywne z AI”Zbuduj wieloetapowy formularz rejestracji z:- Formularzami reaktywnymi z silnym typowaniem- Walidatorami niestandardowymi (async i sync)- Dynamicznymi polami formularza na podstawie wyboru użytkownika- Form array dla powtarzających się sekcji- Walidacją między polami- Funkcją automatycznego zapisu- Wskaźnikiem postępu
Utwórz dynamiczny kreator formularzy, który:- Ładuje schemat formularza z JSON- Generuje typowane formularze reaktywne- Obsługuje zagnieżdżone grupy formularzy- Implementuje pola warunkowe- Ma niestandardowe komponenty kontroli- Waliduje względem schematu JSON
Zarządzanie stanem
Dział zatytułowany „Zarządzanie stanem”Sygnały i RxJS
Dział zatytułowany „Sygnały i RxJS”Nowoczesny wzorzec stanu:
Implementuj koszyk zakupowy używając sygnałów Angular:1. Utwórz sygnały koszyka dla elementów, sumy, liczby2. Implementuj sygnały obliczeniowe dla kalkulacji3. Dodaj efekty do synchronizacji localStorage4. Utwórz serwis z API opartym na sygnałach5. Implementuj funkcjonalność cofnij/ponów6. Dodaj optymistyczne aktualizacje7. Obsługuj warunki wyścigu
Integracja NgRx
Dział zatytułowany „Integracja NgRx”-
Konfiguracja store
Skonfiguruj NgRx dla naszej aplikacji e-commerce:- Sklepy funkcji dla produktów, koszyka, użytkownika- Adaptery encji dla kolekcji- Efekty dla wywołań API- Selektory z memoizacją- Integracja Redux DevTools -
Zaawansowane wzorce
Implementuj najlepsze praktyki NgRx:- Wzorzec fasady dla dostępu do sklepu- Meta-reducery do logowania- Integracja router store- Optymistyczne aktualizacje- Strategie obsługi błędów
Wstrzykiwanie zależności
Dział zatytułowany „Wstrzykiwanie zależności”Zaawansowane wzorce DI
Dział zatytułowany „Zaawansowane wzorce DI”Pokaż wzorce wstrzykiwania zależności:1. Multi-providers dla systemów wtyczek2. Factory providers z zależnościami3. Tokeny wstrzykiwania dla konfiguracji4. Hierarchiczne injektory5. Opcjonalne zależności6. Forward references7. Niestandardowe dekoratory
Architektura Angular
Dział zatytułowany „Architektura Angular”Wzorzec mikro-frontendów
Dział zatytułowany „Wzorzec mikro-frontendów”Implementuj architekturę mikro-frontendów:1. Skonfiguruj Module Federation2. Utwórz aplikację powłoki3. Zbuduj moduły zdalne4. Implementuj wspólne zależności5. Obsługuj routing między aplikacjami6. Udostępnij stan uwierzytelniania7. Implementuj granice błędów
Monorepo z Nx
Dział zatytułowany „Monorepo z Nx”Skonfiguruj monorepo Nx dla Angular:1. Utwórz obszar roboczy Nx2. Wygeneruj wiele aplikacji Angular3. Utwórz współdzielone biblioteki4. Skonfiguruj polecenia affected5. Skonfiguruj cache budowania6. Implementuj testy e2e7. Skonfiguruj pipeline CI/CD
Optymalizacja wydajności
Dział zatytułowany „Optymalizacja wydajności”Strategie detekcji zmian
Dział zatytułowany „Strategie detekcji zmian”Optymalizuj komponent dla OnPush:- Konwertuj na strategię OnPush- Używaj niemutowalnych aktualizacji danych- Implementuj funkcje trackBy- Dodaj ChangeDetectorRef gdzie potrzeba- Używaj async pipe właściwie- Unikaj wywołań funkcji w szablonach
Implementuj przewijanie wirtualne dla dużych list:- Używaj CDK virtual scroll- Implementuj dynamiczne wysokości elementów- Dodaj kotwiczenie przewijania- Optymalizuj wydajność renderowania- Obsługuj nawigację klawiaturową- Dodaj funkcje dostępności
Optymalizacja rozmiaru pakietu
Dział zatytułowany „Optymalizacja rozmiaru pakietu”Analizuj i optymalizuj rozmiar pakietu:1. Uruchom analizator pakietu2. Implementuj lazy loading3. Tree-shake nieużywany kod4. Optymalizuj importy5. Używaj dynamicznych importów6. Skonfiguruj budżety budowania7. Implementuj differential loading
Strategie testowania
Dział zatytułowany „Strategie testowania”Testowanie komponentów
Dział zatytułowany „Testowanie komponentów”Napisz kompleksowe testy dla komponentu UserProfile:1. Testuj inicjalizację komponentu2. Mockuj zależności serwisów3. Testuj interakcje użytkownika4. Weryfikuj zdarzenia wyjściowe5. Testuj scenariusze błędów6. Sprawdź dostępność7. Testuj z różnymi inputami8. Weryfikuj detekcję zmian
Testowanie serwisów
Dział zatytułowany „Testowanie serwisów”Utwórz testy dla AuthService:- Mockuj wywołania HTTP- Testuj zarządzanie tokenami- Weryfikuj zachowanie interceptora- Testuj obsługę błędów- Sprawdź logikę ponawiania- Testuj warunki wyścigu- Weryfikuj czyszczenie
Internacjonalizacja
Dział zatytułowany „Internacjonalizacja”Implementacja i18n
Dział zatytułowany „Implementacja i18n”Skonfiguruj internacjonalizację:1. Skonfiguruj Angular i18n2. Wyodrębnij wiadomości3. Skonfiguruj pliki tłumaczeń4. Implementuj przełącznik języka5. Obsługuj formaty daty/liczb6. Dodaj obsługę RTL7. Skonfiguruj budowanie per locale
Zaawansowane wzorce
Dział zatytułowany „Zaawansowane wzorce”Niestandardowe dyrektywy
Dział zatytułowany „Niestandardowe dyrektywy”Utwórz zaawansowane dyrektywy:1. Dyrektywa infinite scroll2. Dyrektywa click outside3. Dyrektywa resize observer4. Dyrektywa intersection observer5. Dyrektywa debounce input6. Dyrektywa uprawnień7. Dyrektywa stanu ładowania
Niestandardowe pipe’y
Dział zatytułowany „Niestandardowe pipe’y”Zbuduj pipe'y wielokrotnego użytku:- Safe HTML pipe- Time ago pipe- Currency converter pipe- Search filter pipe- Truncate pipe- Markdown pipe- Highlight pipe
Typowe problemy
Dział zatytułowany „Typowe problemy”Zapobieganie wyciekom pamięci
Dział zatytułowany „Zapobieganie wyciekom pamięci”Audytuj i napraw wycieki pamięci:1. Odsubskrybuj od observables2. Usuń event listenery3. Wyczyść timery/interwały4. Zniszcz dynamiczne komponenty5. Wyczyść cache'owane dane6. Profiluj z DevTools
Rozwiązywanie zależności kołowych
Dział zatytułowany „Rozwiązywanie zależności kołowych”Rozwiąż zależności kołowe:- Zidentyfikuj kołowe importy- Refaktoryzuj wspólny kod- Używaj barrel exports właściwie- Implementuj inwersję zależności- Używaj forwardRef oszczędnie
Wdrożenie
Dział zatytułowany „Wdrożenie”Konfiguracja SSR
Dział zatytułowany „Konfiguracja SSR”Skonfiguruj Angular Universal:1. Dodaj obsługę SSR2. Skonfiguruj serwer Express3. Obsługuj API tylko przeglądarki4. Implementuj transfer stanu5. Optymalizuj renderowanie6. Dodaj strategię cache'owania7. Wdróż na host Node.js
Funkcje PWA
Dział zatytułowany „Funkcje PWA”Implementuj Progressive Web App:- Skonfiguruj service worker- Dodaj obsługę offline- Implementuj powiadomienia push- Utwórz manifest aplikacji- Dodaj prompt instalacji- Obsługuj aktualizacje- Testuj scenariusze offline
Wzorce migracji
Dział zatytułowany „Wzorce migracji”AngularJS do Angular
Dział zatytułowany „AngularJS do Angular”Migruj starszą aplikację AngularJS:1. Skonfiguruj tryb hybrydowy2. Aktualizuj komponenty stopniowo3. Konwertuj serwisy4. Aktualizuj routing5. Migruj formularze6. Usuń zależności AngularJS7. Zakończ migrację
Następne kroki
Dział zatytułowany „Następne kroki”- Porównaj z wzorcami React
- Eksploruj wzorce TypeScript
- Naucz się wzorców testowania