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
/initdla 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 koduRozwó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 MaterialFormularze 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ępuUtwó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 JSONZarzą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ściguIntegracja 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 dekoratoryArchitektura 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ówMonorepo 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/CDOptymalizacja 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 szablonachImplementuj 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ściOptymalizacja 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 loadingStrategie 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ę zmianTestowanie 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 czyszczenieInternacjonalizacja
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 localeZaawansowane 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 ładowaniaNiestandardowe 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 pipeTypowe 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 DevToolsRozwią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ędnieWdroż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.jsFunkcje 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 offlineWzorce 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