Desenvolupament d'Aplicacions

CMS vs Headless CMS. Què és millor?

Quan s'inicia un nou projecte és comú preguntar-se quina arquitectura és la més apropiada. Usualment els projectes web es realitzen amb CMS, com Wordpress, Drupal o Joomla.

Headless CMS

Els CMS permeten crear webs autogestionables, la qual cosa és interessant per a l'usuari final que vulgui gestionar el contingut de la seva web.

Diferència entre CMS i Headless CMS

A priori, un projecte web consta de les següent parts:

  • Realitzar operacions CRUD
  • Interaccions amb la base de dades
  • Processament de dades backend
  • Treball amb Apis des de backend
  • Processament de dades frontend
  • Treball amb Apis des de frontal
  • Gestió de plantilles
  • Visualització del contingut

Les quatre primeres corresponen a backend, mentre que les quatre últimes al frontal.

En una estructura web amb un únic CMS, ell mateix s'encarrega de totes les accions del web. De la llista anterior s'encarregarà de totes les tasques, des de realitzar operacions CRUD fins la visualització del contingut.

En una estructura Headless CMS, com a mínim tindrem dues capes:

  • CMS per gestió de continguts
  • Una altra plataforma per a frontend

El CMS s'encarrega de la part backend, és a dir, des de la gestió de les operacions CRUD fins al treball amb Apis des backend, mentre que la plataforma frontal s'encarregarà de la part frontal, això és des del processament de dades des del frontal fins la visualització del contingut.

Avantatges i desavantatges de l'arquitectura CMS

Quan treballem en un sistema acoblat, on backend i frontend es gestionen a través d'una mateixa plataforma, ens sotmetem a una sèrie de limitacions:

La primera és a nivell tècnic. Les persones de el projecte haurien de ser desenvolupadors Full Stack, perquè tot el que es fa a la plataforma afecta Frontend i Backend alhora. No té sentit separar rols quan el backend genera l'HTML que és la part més important del resultat visual.

La segona és sobre el nombre de desenvolupadors que poden treballar en paral·lel ja que és més reduït, perquè tots estan treballant sobre una mateixa plataforma. Això significa que com a més persones...

  • Més sincronitzacions, el que implica temps no productiu.
  • Més caos al tocar tots el mateix: un comença una funcionalitat, l'altre la segueix, un altre la segueix i el nou de l'oficina l'acaba.

Però també té els seus avantatges:

  • Un projecte senzill que pugui realitzar una o dues persones FullStack es farà bastant més ràpid.

Headless CMS: avantatges i desavantatges

En un sistema desacoblat, a tenir una plataforma per frontal i una altra per a backend, elimina la limitació que tot desenvolupador sigui FullStack perquè cada tipus de desenvolupador toca la seva plataforma i els rols són més independents.

Podrem tenir perfils Backend, Frontend i fins i tot dissenyadors-maquetadors si es desacoblen els HTML del Frontend. Això seria clau per aconseguir millors resultats visuals.

Poden per tant treballar més desenvolupadors en paral·lel, més especialitzats en les seves àrees, amb més coneixement tècnic en plataformes diferents:

  • Qui s'especialitza en backend pot conèixer més llenguatges de programació, conèixer més sistemes de bases de dades siguin relacionals o no, per tant es poden optar per tecnologies millors segons el cas.
  • Qui s'especialitza en frontal pot conèixer més plataformes que ampliïn mercat, per exemple, pot conèixer React Native per fer aplicacions mòbils natives, Electron JS per a desenvolupar aplicacions d'escriptori.
  • Podríem fins i tot tenir el paper dissenyador-maquetador, arribant a resultat visuals que amb un tècnic no es poden assolir.

El desavantatge principal és que l'arquitectura és una mica més complexa, de manera que en projectes senzills potser no és la solució, a més de necessitar més persones de l'equip implicades.

Comparteix aquest article

Articles Relacionats