Na jednom malém projektu jsem nedávno potřeboval udělat jednoduchou administraci. Protože je projekt napsaný v Nette, přemýšlel jsem, jakou tabulkovou komponentu pro výpisy použít, abych se ušetřil řešení stránkování a dalších blbostí. V tomto článku shrnu poznatky, které mi nakonec práci usnadnily.

V první řadě jsem hledal takovou komponentu, která by byla schopná fungovat s Doctrine. Najít takovou komponentu není těžké, případně si člověk napíše nějaké vlastní úpravy. Ale tím už se to zase zesložiťuje a na malý projekt mi to přijde zbytečné.

Rozhodl jsem se tedy nepoužívat žádnou komponentu a napsat si to sám. Zatím nemám ani žádný wrapper, nepotřebuju ho. Do budoucna si něco malého možná napíšu. Administrace obsahuje jen 2 tabulky, ve kterých je pouze pár desítek záznamů. A že jsem si práci neušetřil? Že teď musím řešit spoustu věcí, které existující komponenty dávno vyřešily? Ano i ne.

Kdybych měl záznamů opravdu hodně, pak bych musel souhlasit. Jelikož ale vím, že maximální počet záznamů bude v jednotkách stovek, mohu stránkování oželet. Je pravda, výpis bude opravdu dlouhý, ale mě to nevadí. Je to jen administrace. Nebude mi tedy ani vadit delší doba načítání, pokud vůbec k nějakému zpoždění dojde. Nebudu vlastně ani muset řešit nějaké LIMIT a OFFSET a celkově stránkování. Odpadne mi i typický dotaz stránkovačů na celkový počet záznamů.

Teď si možná říkáte, že to je hezké, ale co když budu chtít vyhledávat? To je na tom podle mě to nejlepší. Nemusím to řešit vůbec! A proč? Odpověď je prostá – každý dnešní moderní prohlížeč umí prohledávat obsah stránky. Jedná se sice o relativně hloupé fulltextové hledání, ale pokud mám jen pár záznamů, nedělám žádné exporty a nepotřebuji žádné další pokročilé funkce, stačí mi to. Pokud chci hledání jen kvůli nalezení nějakého záznamu, je to víc než dostačující.

A jak jsem si tedy usnadnil práci?

  1. Zamyslel jsem se, jaké mám na administraci požadavky a jaká jsou omezení (ať už datově nebo jinak).
  2. Prošel jsem existující řešení a odhadl množství práce, které bych měl s jejich začleněním.
  3. Zkusil jsem navrhnout řešení bez použití existujících komponent a odhadl jeho pracnost.
  4. Zvážil jsem celý projekt, jeho omezení a vývoj do budoucna a rozhodl se pro ekonomičtější a jednodušší variantu.

Jednoduše bych tedy řekl, že je nutné se nejprve zamyslet.

Pokud s něčím souhlasíte nebo nesouhlasíte, napište komentář. Budu rád za další názory 🙂

4 thoughts on “Jak si ušetřit práci na administraci webu

    1. Už jsem ho na jednom malém projektu i nasadil bez nutnosti úprav, ale opravdu jen pro výpis jednoduchých tabulek. Tady jsem potřeboval dodatečné agregace a nejen tabulky. A upravovat tedy celý Adminer editor by pro mě znamenalo naučit se jak na to a udělat to.
      Kdybych to uměl, tak asi neřeším a jedná se o zajímavou alternativu.

  1. Oceňuji přístup „postav si to, co opravdu potřebuješ“, místo „ořezávej existujícího giganta“. Takhle dnes bohužel přemýšlí málokdo. Spousta lidí prostě vezme ORM, nějaký framework, kterému chybí jen umět udělat kafe a postaví s tím web s pár statickými stránkámi. :/

    Nicméně nesouhlasím s tímhle:
    „Je to jen administrace. Nebude mi tedy ani vadit delší doba načítání, pokud vůbec k nějakému zpoždění dojde.“
    I administraci používají lidi, je jedno jestli jen ty, nebo někdo jiný… myslím že výkon by se prostě neměl brát na lehkou váhu, obzvlášť, když zrovna stránkování je docela snadné dodělat…

    1. Je pravda, že to je poměrně odvážné tvrzení. Myšlenka byla ta, že je mi jedno, zda se mi v administraci načte stránka od pár ms později nebo ne. Ano, používají ji lidé a i tak je potřeba na výkon koukat, ale podle mě jen tak, aby se dala administrace používat. Pokud je dotaz na všechny záznamy nebo jen na limitovanou část jen o něco málo pomalejší, asi nemá smysl to řešit. Pokud by byl rozdíl větší než pár ms (osobně si myslím, že 0,5s max), tak teprve budu přemýšlet, co je špatně…

Comments are closed.