Arendus Drupal

Headless Drupal — millal see on mõistlik valik

🎧 Kuula kõiki artikleid järjest

Headless arhitektuur on viimastel aastatel muutunud populaarseks, kuid see ei ole automaatselt parem kui traditsiooniline Drupal. Oluline on mõista, millist probleemi see lahendab.

Mis on headless Drupal?

Traditsioonilises Drupalis haldab sama süsteem nii sisu kui ka selle kuvamist.

Headless Drupal puhul täidab Drupal ainult sisuhaldussüsteemi rolli. Külastajale nähtav kasutajaliides ehitatakse eraldi tehnoloogiaga, mis kasutab Drupali pakutavat API-t.

Levinumad frontend-tehnoloogiad on näiteks:

  • Next.js;
  • React;
  • Vue;
  • Nuxt;
  • Gatsby.

Drupal vastutab sisu, kasutajate, õiguste ja andmete eest, frontend aga kasutajakogemuse eest.

Millal headless Drupal on mõistlik valik?

Üks sisu, mitu kanalit

Headless lähenemine sobib eriti hästi olukorras, kus sama sisu kasutatakse mitmes kohas.

Näiteks:

  • veebileht;
  • mobiilirakendus;
  • iseteenindus;
  • digiekraanid;
  • partnerite süsteemid.

Drupalist saab keskne sisuallikas, mida erinevad kanalid kasutavad vastavalt oma vajadustele.

Väga keerukas kasutajaliides

Mõnikord meenutab veeb rohkem rakendust kui klassikalist veebilehte.

Näiteks:

  • interaktiivsed juhtpaneelid;
  • reaalajas andmevaated;
  • keerukad filtrid;
  • kaardirakendused;
  • visualiseerimislahendused.

Sellistes projektides võib Reacti või Next.js-i põhine frontend olla loomulikum valik kui traditsiooniline Drupal teema.

Eraldi arendusmeeskonnad

Suuremates organisatsioonides töötavad backend- ja frontend-tiimid sageli eraldi.

Headless arhitektuur võimaldab:

  • backendi arendada sõltumatult;
  • frontendi avaldada oma tsüklis;
  • kasutada erinevaid tehnoloogiaid.

See annab suurema paindlikkuse, kuid suurendab ka süsteemi keerukust.

Millal headless ei ole hea valik?

Sisukeskne veeb

Paljud ettevõtte veebid koosnevad peamiselt:

  • sisulehtedest;
  • uudistest;
  • teenustest;
  • kontaktivormidest.

Sellisel juhul pakub traditsiooniline Drupal enamasti sama tulemust väiksema arendus- ja hoolduskuluga.

Väiksemad meeskonnad

Headless tähendab tavaliselt kahte tehnoloogilist kihti:

  • Drupal backend;
  • eraldi frontend.

See nõuab rohkem teadmisi, rohkem juurutusi ja rohkem hooldust.

Kui projekti haldab väike meeskond, võib kogu süsteem muutuda ebaproportsionaalselt keeruliseks.

Lihtne eelvaade toimetajatele

Traditsioonilises Drupalis näeb toimetaja muudatusi kiiresti ja loomulikult.

Headless lahendustes tuleb sageli ehitada:

  • eelvaatesüsteem;
  • sisu sünkroniseerimine;
  • spetsiaalsed töövood.

Need on lahendatavad probleemid, kuid suurendavad projekti mahtu.

Kuidas Drupal headless kasutust toetab?

JSON:API

JSON:API kuulub Drupali tuuma.

See võimaldab:

  • lugeda sisu;
  • luua sisu;
  • uuendada sisu;
  • hallata seoseid.

Paljude projektide jaoks piisab ainult JSON:API kasutamisest.

GraphQL

GraphQL annab suurema kontrolli selle üle, milliseid andmeid frontend pärib.

See sobib hästi:

  • keerukatele andmestruktuuridele;
  • suurematele rakendustele;
  • jõudluskriitilistele kasutusjuhtudele.

Progressive Decoupling

Drupal ei pea olema täielikult headless.

Sageli kasutatakse hübriidset lähenemist, kus:

  • põhisisu renderdab Drupal;
  • keerukamad komponendid kasutavad Reactit või Vue'd.

See võimaldab säilitada Drupali tugevused ning kasutada kaasaegset frontendi ainult seal, kus seda päriselt vaja on.

Millised on headless arhitektuuri puudused?

Lisaks eelistele tuleb arvestada ka kuludega.

Headless projekt tähendab tavaliselt:

  • rohkem infrastruktuuri;
  • rohkem juurutusi;
  • rohkem testimist;
  • rohkem monitooringut;
  • suuremat arenduskulu.

Samuti tuleb lahendada eraldi:

  • SEO;
  • eelvaated;
  • vahemälu;
  • autentimine;
  • vigade käsitlemine.

Need probleemid on lahendatavad, kuid traditsioonilises Drupalis on paljud neist juba olemas.

Hübriidlahendus on sageli kõige praktilisem

Paljud kaasaegsed Drupal projektid ei ole täielikult headless ega täielikult traditsioonilised.

Näiteks:

  • sisu renderdab Drupal;
  • otsing kasutab Reactit;
  • kalkulaator töötab Vue komponendina;
  • kliendiportaal kasutab eraldi rakendust.

Selline lähenemine võimaldab kasutada õiget tööriista õiges kohas ilma kogu süsteemi keerulisemaks muutmata.

Kokkuvõte

Headless Drupal ei ole eesmärk omaette.

See on arhitektuurivalik, mis on põhjendatud siis, kui:

  • sama sisu kasutatakse mitmes kanalis;
  • kasutajaliides on väga keerukas;
  • backend ja frontend arenevad eraldi.

Sisukesksete veebide puhul on traditsiooniline Drupal või hübriidlahendus sageli lihtsam, odavam ja pikaajaliselt hooldatavam.

Õige valik sõltub vähem tehnoloogiast ja rohkem sellest, milliseid ärilisi ja tehnilisi probleeme süsteem peab lahendama.

Kaido Toomingas, WebPro tehniline juhtWebPro Company OÜ Tehniline juht: Kaido Toomingas

Vajad Drupal abi?

Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.