/

/

Hadde jeg bare visst dette da jeg startet med Angular

/

/

Hadde jeg bare visst dette da jeg startet med Angular

/

/

Hadde jeg bare visst dette da jeg startet med Angular

/

/

Hadde jeg bare visst dette da jeg startet med Angular

Vårt delingshjørne

Hadde jeg bare visst dette da jeg startet med Angular

Hadde jeg bare visst dette da jeg startet med Angular

Hadde jeg bare visst dette da jeg startet med Angular

Martin

Klingenberg

Systemutvikler

Systemutvikler

3. januar 2023

Utvikling

Det er fire år siden jeg skrev Angular for første gang. Noen vil påstå at Angular ikke er det feteste rammeverket, men kan fort hende at ditt neste prosjekt tvinger deg inn i Angular-verden. Dette er min liste med tips for å skrive god Angular-kode.


Aldri logikk i komponenter

Når jeg skriver aldri, så mener jeg at det ikke skal være business-logikk i komponentene. En komponent skal inneholde kode for rendring og håndtering av bruker-interaksjoner. All annen kode skal inn i services. Når mengden typescript i en komponent passerer 250-linjer kode, så er det på tide å tenke seg om. Da skal mest sannsynlig noe av koden inn i servces eller så burde komponenten brytes opp i flere komponenter.

NÅR KOMPONENTEN BLIR STØRRE ENN 250 LINJER SÅ ER DET PÅ TIDE Å TENKE SEG OM


Features === Moduler

I Angular har vi et modul-konsept som er noe helt annet enn en ES-Module. Ordet modul burde egentlig forbys. En Angular-modul, er en samling med komponenter, services og avhengigheter. Det enkleste, er å putte features inn i moduler. Modulene skal leve helt adskilt fra hverandre og skal aldri ha avhengigheter på tvers. Det er også fort gjort å bli fristet til å lage en delt modul med delte komponenter og servicer. Lag heller Single Component Angular Modules eller SCAM’s. Det er moduler som bare inneholder èn komponent. Kjernefunksjonalitet som autentisering og autorisasjon kan puttes i en liten og solid kjerne. Også pakket inn i en modul. Når du har fine moduler med features, så er det bare å sette i gang med å lazy-loade modulene for å oppnå bedre ytelse.

FEATURES SKAL INN I MODULER


Unngå duplisering av data

Må jo innrømme at jeg har duplisert masse data i min tid, og det fungerer kanskje der og da, men man kan ende opp med mutering av data og det er de vondeste bugsene å finne ut av.


Unngå dette


Gjør dette


Lær RXJS

Angular er sterkt knyttet til RXJS. Beste eksemplet, er den innebygde http-klienten, som er RXJS fra topp til bunn. Om man ikke er stødig på RXJS, så blir kodebasen så som så. RXJS er komplisert og RXJS inneholder masse funksjonalitet som kan gjøre livet ditt enklere.


Hver gang du skriver subscribe(), må du tenke en gang til

Dette er noe jeg skulle visst før. Når man bruker subscribe, så lager man en subscription som ikke dør før det man observerer blir ferdig eller at man eksplisitt dreper subscriptionen. La Angular håndtere dette med async-pipes.


Hold styr på streams og observables

En observable i RXJS verden kan completes. Med andre ord så vil den aldri spytte ut verdier igjen. Observables som completes fungerer som observables vi ble kjent med på skolebenken. Et godt eksempel er en observable basert på en http-request. Alle andre observables må anses som streams. Årsaken til at det er viktig å holde styr på nettopp de forskjellene, er fordi det finnes forskjellige operatorer som tar høyde for om en observable completer eller ikke. Et eksempel er forkJoin og combineLatest. Det de har til felles, er at de tar inn en liste med observables og venter til alle emitter. Forskjellen, er at forkJoin venter til alle observables completer, mens combineLatest venter til alle observables har gitt fra seg en verdi.


Noen enkle grep gjør en stor forskjell

Bruk Reactive Forms

Trenger ikke si så mye mer, bare gjør det. Ikke finn på andre kreative løsninger. Dine løsninger er ikke like gode som angular/forms


Pipes øker ytelsen

Det er utrolig enkelt å bruke funksjoner til å hente ut verdier i Angular, men det har en kost. Bruk pipes til å konvertere verdier og formatering av tekster. Det er også ganske mange nyttige pipes i Angular sin CommonModule.


Gi loops en index

Når man rendrer lister, så vil man fra tid til annen gjøre endringer på lista, men det er sjelden at man har endret alle elementene samtidig. Løsningen er å gi Angular en index gjennom trackBy.


Dette er bare begynnelsen

Tipsene over er det jeg skulle ønske jeg kunne før jeg begynte med Angular. Angular får mye kritikk for at rammeverket er alt for stort, og det betyr at det er ekstremt mye å sette seg inn i. Jeg er overbevist om at om du starter med å fokusere på disse punktene så har du et bedre utgangspunkt enn jeg hadde.

Kanskje du liker:

Kanskje du liker:

Kanskje du liker:

Utvikling

21. april 2024

.net 8 med nye Identity Endpoints oppsett. Vi har tatt en en nærmere titt på det. Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Utvikling

21. april 2024

.net 8 med nye Identity Endpoints oppsett. Vi har tatt en en nærmere titt på det. Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Utvikling

1. mars 2024

Mange tenker på Techlead kun som en flink utvikler, mens Techleadene selv ofte tenker på seg selv som et teknisk orakel som bør bestemme det meste. Begge disse ytterpunktene står i veien for god verdiskaping. 

Utvikling

1. mars 2024

Mange tenker på Techlead kun som en flink utvikler, mens Techleadene selv ofte tenker på seg selv som et teknisk orakel som bør bestemme det meste. Begge disse ytterpunktene står i veien for god verdiskaping. 

Utvikling

11. september 2023

Her er 8 viktige punkter når du gjøre review av teknisk arkitektur.

Utvikling

11. september 2023

Her er 8 viktige punkter når du gjøre review av teknisk arkitektur.

Utvikling

21. april 2024

.net 8 med nye Identity Endpoints oppsett. Vi har tatt en en nærmere titt på det. Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Utvikling

1. mars 2024

Mange tenker på Techlead kun som en flink utvikler, mens Techleadene selv ofte tenker på seg selv som et teknisk orakel som bør bestemme det meste. Begge disse ytterpunktene står i veien for god verdiskaping. 

Utvikling

21. april 2024

.net 8 med nye Identity Endpoints oppsett. Vi har tatt en en nærmere titt på det. Er Identity API Endpoints i .net 8 kroken på døra for tredjepartsautentisering?

Utvikling

1. mars 2024

Mange tenker på Techlead kun som en flink utvikler, mens Techleadene selv ofte tenker på seg selv som et teknisk orakel som bør bestemme det meste. Begge disse ytterpunktene står i veien for god verdiskaping. 

Footer Logo

Når riktig partner utgjør all forskjell



822 704 042

Pløens gate 7

0181 Oslo

hei@alv.no

+47 91 92 92 18

Copyright ©2024. All rights reserved.

Footer Logo

Når riktig partner utgjør all forskjell



822 704 042

Pløens gate 7

0181 Oslo

hei@alv.no

+47 91 92 92 18

Copyright ©2024. All rights reserved.

Footer Logo

Når riktig partner utgjør all forskjell



822 704 042

Pløens gate 7

0181 Oslo

hei@alv.no

+47 91 92 92 18

Copyright ©2024. All rights reserved.

Footer Logo

Når riktig partner utgjør all forskjell



822 704 042

Pløens gate 7

0181 Oslo

hei@alv.no

+47 91 92 92 18

Copyright ©2024. All rights reserved.