Si parlem de l’arquitectura i el desenvolupament de software, hem de tenir molt presents els principis SOLID. Quan s’apliquen, s’aconsegueix que el codi sigui més extensible, lògic i més fàcil de llegir. Si el desenvolupador crea software seguint un mal disseny, el codi pot tornar-se inflexible i més fràgil. I tots sabem que, petits canvis en el programari poden provocar grans errors.
Què és SOLID?
SOLID és un acrònim que representa cinc principis molt importants quan desenvolupem amb el paradigma OOP, a més, és un coneixement fonamental que tot desenvolupador ha de conèixer. Comprendre i aplicar aquests principis li permetrà escriure codi de millor qualitat i, per tant, ser un millor desenvolupador.
Aquests 5 principis van ser presentats per Robert C. Martin (tío Bob), en el seu llibre Principios de diseño y patrones de diseño. No obstant això, l’acrònim SOLID real va ser identificat més tard per Michael Feathers.
Per què aplicar SOLID?
Aquests principis, quan es combinen, faciliten al programador que el desenvolupament de programari sigui fàcil de mantenir i ampliar. També faciliten als desenvolupadors evitar les olors de codi, refactoritzar fàcilment el codi i també són part del desenvolupament de software àgil o adaptable.
Els avantatges de SOLID
Els avantatges i virtuts que acompanyen a SOLID són clares:
-
- Una forma basada en principis de gestionar les dependències, especialment en una gran aplicació.
- Acoblament fluix (grau d’interdependència entre mòduls de software).
- Més cohesió (el grau en què els elements d’un mòdul pertanyen junts).
- El codi és més reutilitzable, robust, flexible, comprovable i mantenible.
Ara analitzarem les lletres de SOLID i vegem els detalls de cadascun d’ells:
01. Principi de responsabilitat única (SRP):
Una classe ha de tenir una i només una raó per a canviar, cosa que significa que una classe ha de tenir només un treball.
Definició simple: no sobrecarregui una classe amb massa responsabilitats.
Beneficis: Increment de la cohesió, baix acoblament, menor complexitat.
02. Principi obert-tancat (OCP):
Els objectes o entitats han d’estar oberts per a extensió, però tancats per a modificació.
Definició simple: hauria de poder estendre el comportament d’una classe, sense modificar-lo.
Beneficis: major cohesió, codi extensible, menys possibilitats d’introduir errors en l’aplicació existent.
03. Principi de substitució de Liskov (LSP):
Els objectes d’un programa han de ser reemplaçables amb instàncies dels seus subtipus sense alterar la correcció d’aquest programa.
Definició simple: els objectes de la classe derivada han de comportar-se de manera consistent amb les promeses fetes en el contracte de la classe basi.
Beneficis: reutilització del codi, acoblament reduït i menys possibilitats d’introduir errors en l’aplicació existent.
04. Principi de segregació d’interfície (ISP):
Moltes interfícies específiques del client són millors que una interfície d’ús general.
Definició simple: els clients no han de veure’s obligats a implementar interfícies que no utilitzen.
Beneficis: Major cohesió, més extensible i robust.
05. Principi d’inversió de dependencia (DIP):
Els mòduls d’alt nivell no han de dependre de mòduls de baix nivell. Tots dos haurien de dependre d’abstraccions.
Les abstraccions no haurien de dependre dels detalls. Els detalls haurien de dependre de les abstraccions.
Definició simple: les entitats han de dependre de abstraccions, no de concrecions.
Beneficis: Desacoblar dependències.
En definitiva, els principis SOLID són una sèrie de bones pràctiques que, ben seguides, permetran escriure millor codi. Si t’ha semblat interessant aquest article, tenim una sèrie d’entrades preparades que t’ajudaran a convertir-te en un millor desenvolupador i un coneixedor d’aquests principis.