En aquest tema, aprendrem sobre la importància de mantenir un codi net i consistent, i com utilitzar eines de linting per ajudar-nos a aconseguir-ho. El linting és el procés d'analitzar el codi font per trobar errors de programació, estils de codi inconsistents i altres problemes potencials.
Objectius del tema
- Entendre la importància de la qualitat del codi.
- Aprendre a configurar i utilitzar eines de linting en un projecte Angular.
- Conèixer les regles de linting més comunes i com personalitzar-les.
Importància de la qualitat del codi
Mantenir un codi de qualitat és essencial per diverses raons:
- Mantenibilitat: Un codi net i ben estructurat és més fàcil de mantenir i actualitzar.
- Col·laboració: Facilita la col·laboració entre desenvolupadors, ja que tothom segueix les mateixes regles i estàndards.
- Prevenció d'errors: El linting pot detectar errors potencials abans que es converteixin en problemes greus.
- Rendiment: Un codi optimitzat pot millorar el rendiment de l'aplicació.
Eines de linting
ESLint
ESLint és una de les eines de linting més populars per a JavaScript i TypeScript. Proporciona una gran quantitat de regles configurables que poden ajudar a mantenir la qualitat del codi.
Configuració d'ESLint en un projecte Angular
-
Instal·lació d'ESLint:
ng add @angular-eslint/schematics
-
Configuració d'ESLint: Després d'instal·lar ESLint, es generarà un fitxer de configuració
.eslintrc.json
a l'arrel del projecte. Aquest fitxer conté les regles de linting que s'aplicaran al codi.Exemple de
.eslintrc.json
:{ "root": true, "overrides": [ { "files": ["*.ts"], "parserOptions": { "project": ["tsconfig.json"], "createDefaultProgram": true }, "extends": [ "plugin:@angular-eslint/recommended", "plugin:@typescript-eslint/recommended" ], "rules": { "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/explicit-function-return-type": "off" } }, { "files": ["*.html"], "extends": ["plugin:@angular-eslint/template/recommended"], "rules": {} } ] }
-
Executar ESLint: Per executar ESLint i analitzar el codi, utilitza la següent comanda:
ng lint
Regles de linting comunes
A continuació, es mostren algunes de les regles de linting més comunes que es poden configurar en ESLint:
- @typescript-eslint/no-unused-vars: Detecta variables no utilitzades.
- @typescript-eslint/explicit-function-return-type: Requereix que les funcions tinguin un tipus de retorn explícit.
- @angular-eslint/no-empty-lifecycle-method: Evita mètodes de cicle de vida buits en components Angular.
- @angular-eslint/component-class-suffix: Assegura que les classes de components tinguin el sufix
Component
.
Personalització de les regles de linting
Les regles de linting es poden personalitzar segons les necessitats del projecte. Per exemple, si vols desactivar una regla específica, pots fer-ho al fitxer .eslintrc.json
:
Exercici pràctic
Exercici 1: Configurar ESLint en un projecte Angular
-
Crea un nou projecte Angular:
ng new my-angular-app
-
Afegeix ESLint al projecte:
ng add @angular-eslint/schematics
-
Personalitza el fitxer
.eslintrc.json
per afegir la regla@typescript-eslint/no-unused-vars
amb el valorerror
. -
Crea un fitxer
src/app/test.ts
amb el següent contingut:const unusedVariable = 'This variable is not used';
-
Executa ESLint per veure els errors de linting:
ng lint
Solució
Després de seguir els passos anteriors, hauries de veure un error de linting indicant que unusedVariable
no s'utilitza.
Resum
En aquest tema, hem après sobre la importància de mantenir un codi de qualitat i com utilitzar ESLint per ajudar-nos a aconseguir-ho. Hem vist com configurar ESLint en un projecte Angular, algunes de les regles de linting més comunes i com personalitzar-les segons les necessitats del projecte. També hem realitzat un exercici pràctic per reforçar els conceptes apresos.
Curs d'Angular 2+
Mòdul 1: Introducció a Angular
- Què és Angular?
- Configuració de l'entorn de desenvolupament
- La teva primera aplicació Angular
- Arquitectura d'Angular
Mòdul 2: Conceptes bàsics de TypeScript
- Introducció a TypeScript
- Variables i tipus de dades en TypeScript
- Funcions i funcions fletxa
- Classes i interfícies
Mòdul 3: Components i plantilles
Mòdul 4: Directives i pipes
Mòdul 5: Serveis i injecció de dependències
Mòdul 6: Enrutament i navegació
Mòdul 7: Formularis en Angular
Mòdul 8: Client HTTP i observables
- Introducció al client HTTP
- Realització de sol·licituds HTTP
- Gestió de respostes HTTP
- Ús d'observables