CAUTĂ

CELE MAI VIZUALIZATE ARTICOLE DIN ACEASTĂ SĂPTĂMÂNĂ

Fully decoupled sau progressively decoupled, aceasta e intrebarea
ionut
08.04.2018

Celor pentru care cuvantul Decoupled nu prea are inseamnatate, o sa le explic in cateva randuri ce inseama. Apoi, bineinteles, o sa fac si referiri la cateva surse complete de documentare.

Ce este un CMS deoupled?

Decoupled sau headless CMS inseama un sistem de management al contintului fara interfata care pune la dispozitie continutul. Acesta din urma este este gestionat printr-un set de servicii REST.

Practic conceptul este numit Headless CMS insa in comunitatea Drupal acesta s-a transformat in Decoupled CMS, Decoupled Drupal.

Fie Decoupled fie Headless, vorbim despre acelasi lucru.

In Drupal conceptul de Decoupled a inceput sa prinda amploare o data cu aparitia Drupal 8.

De ce?

Pentru ca printre cele 200 noi functionalitati si imbunatatiri ale Drupal 8, serviciile REST, incluse in core, au fost extinse si au devenit si mai flexibile decat in Drupal 7.

De aici posibilitatile au devenit din ce in ce mai mari din punct de vedere al experientei utilizatorilor. Folosind o interfata bazata pe javascript se pot crea mai usor site-uri de tip “one page” sau de tip “aplicatie”.

Totul pare simplu si atractiv si ne gandim la ce proiecte interesante vom putea face. Insa cand vine momentul sa lucram efectiv la un proiect Decoupled, realizam ca nu le putem avea chiar pe toate. Ca de fapt pierdem foarte multe functionalitati si optiuni pe care un CMS le are si pe care noi in general le luam de-a gata.

In continuare vreau sa va prezint un alt punct de vedere legat de Decoupled CMS (Drupal) acela al arhitectului de sistem.

Decoupled sau Progressively Decoupled?!

Ca arhitect de sistem trebuie sa gasesc solutia potrivita atat din punct de vedere tehnic dar si financiar astfel incat proiectul sa poata fi implementat.

In general un CMS este cea mai buna solutie ca punct de plecare in proiectarea si implementarea unui proiect deoarece vine cu o serie de functionalitati si optiuni care permit echipei proiectului sa consume cea mai mare parte a bugetului pe functionalitatile particulare si specifice proiectului.

Acestea sunt cele care aduc o valoare adevarata si recunoscuta de client intr-un proiect.

Spuneam despre functionalitati pe care un CMS le are si pe care noi programatorii le luam de-a gata.

Ei bine aceste functionalitati fac de multe ori diferenta si au o greutate foarte mare atunci cand trebuie sa hotarasti ca arhitect de sistem cum va fi implementat proiectul.

Spre exemplu, implementarea unui proiect Fully Decoupled in Drupal nu va avea acces pe deplin la sistemul de caching al Drupal-ului. Se poate implementa caching pentru servicii insa acest lucru necesita timp, deci vom avem un cost suplimentar.

Sunt convins ca majoritatea drupalistilor cunosc modulele emblema din categoria celor folosite pentru gestionarea campurilor cum ar fi “Paragraphs” sau “Field Collection”.

Aceste module extind optiunile de creare a campurilor in formularele Drupal oferind posibilitatea de a grupa campuri de orice timp in colectii si a le manipula ca orice alta entitate.

Cu ajutorul lor se pot defini tipuri de continut dinamice. Acest lucru se traduce in scaderi de costuri de implementare. Renuntand la interfata, (implementand Decoupled) aceste optiuni nu mai exista, iar implementarea lor va creste costurile.

Securizarea informatiilor si decoupled

Acesta este un subiect foarte sensibil chiar si atunci cand vine vorba de un CMS.

Implementand o tehnologie de tip decoupled atentia asupra securității informatiei trebuie sa fie sporita. Trebuie totodata implementate masuri suplimentare de control al accesului utilizatorilor la serviciile REST. Desigur serviciile din core-ul Drupalului si cele expuse de modulul “Views” pot fi controlate prin sistemul de permisiuni, insa un serviciu personalizat trebuie si el securizat tot intr-un mod personalizat.

Comunicarea dintre interfata si CMS trebuie securizata prin metode precum protocoale de comunicare de tip OAuth 2.0

In foarte multe proiecte cu Drupal, atunci cand prezentam clientului avantajele platformei mentionam si faptul ca daca la un moment dat se doreste adaugarea unui camp nou intr-un tip de continut, sau daca se doreste schimbarea ordinii campurilor in formular, aceste lucruri se poate face foarte simplu chiar de catre client. Aceasta informatie determina clientul sa fie si mai incantat de Drupal si de proiect in sine.

Acest lucru era un avantaj in etapa de negociere si constituia un atu pentru noi. Implementand Decoupled, suntem uneori nevoiti sa ne abtinem sa mai mentionam aceasta posibilitate pentru ca nu mai este implicit disponibila. Ca sa o avem in proiect inseamna sa investim o particica din buget si in acest sens. Nu mai spun cum e atunci cand clientul intreaba despre aceasta posibilitate…

Decoupled si traducerea platformelor

Alt aspect important al unui site Drupal este posibilitatea de traducere a interfetei. Drupal include un mecanism de traducere a interfetei (si a continutului) foarte avansat si usor de configurat.

O data cu implementarea Decoupled trebuie implementat totul de la 0. Ce inseamna asta? Costuri in plus…

Merita?

As putea continua la nesfarsit si as risca sa fiu intrebat daca mai merita sau nu sa implementezi un proiect Drupal Decoupled.

Raspunsul este totusi DA, merita! Insa atunci cand bugetul are niste limite nu prea generoase sau cand pentru client nu prea conteaza modalitatea de implementare, din pacate trebuie sa alegi variantele mai eficiente si un CMS (cu back-end si front-end, adica Coupled) este varianta optima.

Personal, pentru ca ma incanta foarte mult ideea de Decoupled, dar si pentru ca trebuie sa ma asigur ca un proiect se poate implementa in limitele bugetului, optez pentru o solutie de mijloc.

Progressive decoupled Drupal

Atunci cand totusi e nevoie de dinamism si o experienta mai deosebita ma pozitionez mai mult in zona de Progressive Decoupled. Incerc sa proiectez functionalitatile obisnuite ale proiectului in asa fel incat sa fie folosit atat backend-ul cat si frontend-ul CMS-ului). Pentru sectiunile “sensibile” sa introduc in plan conceptul de Decoupled.

Un exemplu la indemana de proiect in care implementarea Progressive Decoupled este o solutie potrivita, ar fi un site pentru o firma de asigurari auto care pe langa un calculator de preturi pentru o asigurare, ofera si alte sectiuni cu informatii din domeniu. Eventual ofera clientilor sai si posibilitatea de a-si crea conturi.

Calculatorul de preturi se poate implementa folosind o interfata bazata pe un framework ca Angular, iar restul site-ului poate fi foarte usor implementat prin metoda traditionala in CMS-ul Drupal.

In incheiere vreau sa mai atrag atentia asupra unei false presupuneri pe care am observat-o la multi. Anume faptul ca o implementare Decoupled ajuta foarte mult sau e singurul mod de a obtine functionalitatea de “responsive” a unui site.

Acest lucru nu este deloc adevarat. As putea spune ca folosind front-endul unui CMS ar fi mai de ajutor la fel cum e un plus pentru partea de SEO unde in general CMS-urile sunt mai optimizate si ofera mai multe optiuni.

Asadar nu va fie teama sa porniti un proiect Decoupled, dar daca aveti constrangeri de buget, puteti sa incercati Progressive Decoupled, eu asa fac...

Informatii se mai pot gasi si aici:

Relevant pentru ...

Postează un comentariu