BLOG

Kdy už WordPress nestačí a dává smysl vývoj aplikace na míru?

WordPress dnes zvládne výrazně víc než jen jednoduchý firemní web nebo blog. Lze na něm postavit e-shop, členskou sekci, rezervační systém, katalog produktů nebo web propojený s řadou externích služeb.

To ale neznamená, že je správnou volbou pro každý projekt.

Jak poznat, že se váš projekt právě k této hranici blíží?

WordPress není jen pro jednoduché weby

Nejdříve je potřeba vyvrátit jeden častý omyl.

WordPress sám o sobě není špatné nebo „méně profesionální“ řešení. Pro velké množství projektů je naopak velmi efektivní.

Typicky například pro:

  • magazíny a obsahové portály,
  • produktové katalogy,
  • e-shopy,
  • členské sekce,
  • rezervační weby,
  • jednoduché zákaznické zóny.

Výhodou je především rychlost vývoje a velké množství již existujících řešení.

Pokud klient potřebuje například e-shop, není důvod programovat správu produktů, objednávek, slevových kuponů nebo platebních metod úplně od začátku. WooCommerce již velkou část této infrastruktury obsahuje.

Dobře zvolená platforma tak může výrazně snížit cenu i čas potřebný k vytvoření projektu.

Problém začíná ve chvíli, kdy systém začnete nutit dělat něco, pro co nebyl navržen

Každý hotový systém má určitou architekturu a způsob fungování.

Dokud požadavky projektu přibližně odpovídají tomu, pro co byl systém vytvořen, je vše v pořádku.

Situace se ale může postupně změnit.

Nejdříve potřebujete jednu drobnou úpravu.

Potom vlastní workflow.

Následně několik uživatelských rolí s rozdílnými oprávněními.

Pak propojení s externím systémem.

Potom složitější schvalování, automatické procesy, generování dokumentů nebo rozsáhlou práci s daty.

A najednou zjistíte, že místo používání systému začínáte většinu jeho původního chování obcházet.

Právě tehdy stojí za to položit si otázku:

Nebyla by vlastní aplikace ve výsledku jednodušší?

1. Projekt má velmi specifickou logiku

Jedním z nejčastějších důvodů pro vývoj aplikace na míru je specifický způsob fungování firmy.

Představme si například interní systém, ve kterém:

  1. zákazník odešle požadavek,
  2. pracovník jej zkontroluje,
  3. vedoucí jej musí schválit,
  4. systém vygeneruje dokument,
  5. zákazník jej elektronicky potvrdí,
  6. následně se automaticky vytvoří faktura,
  7. data se odešlou do externího účetního systému.

Technicky lze řadu podobných procesů vytvořit i pomocí hotových systémů.

Otázkou ale není pouze:

„Jde to?“

Mnohem důležitější otázka zní:

„Je to stále rozumné řešení?“

Pokud většinu funkcionality tvoří vlastní procesy a vlastní programování, může být vhodnější navrhnout aplikaci přímo podle potřeb konkrétního projektu.

2. Potřebujete pokročilý systém uživatelů a oprávnění

U jednoduchého webu většinou stačí několik základních rolí.

U komplexnější aplikace už ale může existovat například:

  • administrátor,
  • zaměstnanec,
  • vedoucí oddělení,
  • účetní,
  • externí spolupracovník,
  • zákazník,
  • správce konkrétní organizace.

Každý přitom může mít přístup pouze k určým datům nebo funkcím.

U SaaS aplikací může být situace ještě složitější.

Jedna aplikace může obsluhovat stovky firem, přičemž každá z nich má vlastní uživatele a vlastní data. Systém musí striktně zajistit, aby uživatel jedné společnosti nikdy nemohl zobrazit informace jiné společnosti.

Taková architektura se označuje jako multitenantní aplikace.

Právě u podobných projektů už obvykle dává mnohem větší smysl framework a architektura navržená přímo pro daný účel.

3. Systém obsahuje velké množství automatizace

Moderní aplikace často nejsou jen obrazovky s formuláři.

Na pozadí mohou probíhat desítky automatických procesů.

Například:

  • generování dokumentů,
  • pravidelné kontroly dat,
  • automatické odesílání e-mailů,
  • synchronizace s externími službami,
  • importy a exporty,
  • zpracování plateb,
  • generování faktur,
  • upozornění uživatelů,
  • výpočty,
  • pravidelné úlohy.

Čím více takových procesů projekt obsahuje, tím důležitější začíná být dobře navržená aplikační architektura.

4. Potřebujete propojení s dalšími systémy

Dalším častým důvodem pro vývoj na míru jsou integrace.

Aplikace dnes málokdy funguje úplně samostatně.

Může komunikovat například s:

  • účetním systémem,
  • CRM,
  • ERP,
  • platební bránou,
  • dopravcem,
  • skladovým systémem,
  • fakturačním systémem,
  • interním firemním softwarem,
  • externím API.

Jedna nebo dvě integrace většinou nepředstavují problém ani u běžného webu.

Pokud je ale projekt postaven především na vzájemné komunikaci několika systémů a nad daty probíhá vlastní aplikační logika, dostáváme se již spíše do oblasti klasického softwarového vývoje.

5. Potřebujete přesnou kontrolu nad architekturou

U aplikace na míru rozhoduje vývojář o tom, jak bude celý systém navržen.

Může přesně určit:

  • strukturu databáze,
  • způsob ukládání dat,
  • oprávnění uživatelů,
  • bezpečnostní mechanismy,
  • validační pravidla,
  • aplikační logiku,
  • API,
  • způsob logování událostí,
  • práci s frontami a automatickými úlohami.

Nevzniká tedy systém složený z mnoha různých pluginů vytvořených různými vývojáři.

Celá aplikace může být od začátku postavena jako jeden konzistentní celek.

Proč používám Nette a Laravel

Pro vývoj webových aplikací lze využít různé technologie. Mezi frameworky, se kterými pracuji, patří Nette a Laravel.

Framework si lze zjednodušeně představit jako základní stavební konstrukci aplikace.

Vývojář nezačíná úplně od nuly. Framework již řeší nebo výrazně usnadňuje řadu základních oblastí aplikace, například práci s HTTP požadavky, databází, routováním, šablonami, validací nebo zabezpečením.

Díky tomu lze věnovat většinu vývoje tomu nejdůležitějšímu:

logice konkrétní aplikace.

Nette

Nette je český PHP framework, který je dlouhodobě oblíbený zejména u aplikací, kde je důležitá přehledná architektura, bezpečnost a dlouhodobá udržovatelnost.

Hodí se například pro:

  • interní firemní systémy,
  • administrační aplikace,
  • informační systémy,
  • zákaznické portály,
  • fakturační systémy,
  • SaaS aplikace.

Laravel

Laravel patří mezi nejrozšířenější PHP frameworky na světě a nabízí rozsáhlý ekosystém pro vývoj moderních webových aplikací.

Velmi dobře se hodí například pro:

  • API,
  • SaaS aplikace,
  • rozsáhlejší webové systémy,
  • zákaznické portály,
  • aplikace s velkým množstvím automatizace,
  • projekty propojené s dalšími službami.

Výběr technologie ale není cílem sám o sobě.

Klienta většinou nemusí zajímat, zda aplikace používá Nette, Laravel nebo jinou technologii.

Podstatné je, aby zvolená technologie odpovídala požadavkům projektu a umožnila jeho další rozvoj.

Vývoj na míru automaticky neznamená lepší řešení

Mohlo by se zdát, že pokud lze něco naprogramovat od začátku, musí být vlastní aplikace vždy lepší.

Není.

Vývoj na míru bývá náročnější na:

  • čas,
  • rozpočet,
  • návrh,
  • testování,
  • následnou údržbu.

Pokud potřebujete klasický firemní web, nedává smysl vytvářet vlastní redakční systém.

Stejně tak není nutné programovat vlastní e-shopovou platformu, pokud požadavky projektu bez problémů pokryje existující řešení.

Dobrá technologie není ta nejsložitější.

Je to ta, která nejlépe odpovídá konkrétnímu projektu.

Někdy je nejlepší obě technologie kombinovat

Zajímavou možností je také kombinace klasického webu a vlastní aplikace.

Například:

WordPress

může obsluhovat:

  • homepage,
  • služby,
  • blog,
  • reference,
  • landing pages,
  • SEO obsah.

A vedle něj může fungovat vlastní aplikace vytvořená například v Nette nebo Laravelu, která řeší:

  • přihlášení zákazníků,
  • fakturaci,
  • správu objednávek,
  • interní procesy,
  • dokumenty,
  • reporting,
  • další aplikační logiku.

Každá technologie tak řeší přesně to, na co se hodí nejlépe.

Jak tedy vybrat správné řešení?

Při rozhodování by neměla být první otázka:

„Na čem ten systém postavíme?“

Správné pořadí je opačné.

Nejdříve je potřeba zjistit:

  • Co má systém dělat?
  • Kdo jej bude používat?
  • Kolik uživatelů očekáváme?
  • Jaké procesy má automatizovat?
  • S jakými službami bude komunikovat?
  • Jak citlivá data bude zpracovávat?
  • Jakým způsobem se může projekt v budoucnu rozvíjet?

Nejdůležitější je nevybírat technologii před problémem

WordPress, Nette ani Laravel nejsou univerzálně nejlepší technologie.

Každá řeší trochu jiný typ problému.

Pro prezentační web může být WordPress ideální řešení.

Pro e-shop může být vhodný WordPress s WooCommerce.

Pro specifický firemní systém nebo SaaS aplikaci může dávat větší smysl Nette či Laravel.

A u některých projektů je ideální obě oblasti kombinovat.

Vývoj by proto neměl začínat výběrem technologie, ale pochopením toho, co má výsledný systém skutečně řešit.