Nastavení „Nikdy nepřekompilovat soubory šablony“ působí neustálé problémy

Nastavení „Nikdy nepřekompilovat soubory šablon“ (Kompilace šablony) už bylo z naší strany komunikováno mnohokrát a neustále se tento problém opakuje. Toto nastavení se nastavuje v administraci PS v sekci „Nástroje“ -> „Výkon„.

Jen v listopadu 2022 u čtyř zákazníků došlo k výpadku webu vlivem tohoto nastavení a poté jsme „museli“ zákazníkům složitě vysvětlovat, proč se tak stalo.
I přesto, že toto nastavení všude komunikujeme už více jak 5 let, že je špatné a problémové, neustále lidé toto nastavení mají uvedeno špatně, aby tím obcházeli problém zejména s pomalým webhostingem.

Pojďme na to…

Shrneme si tedy znovu, k čemu toto nastavení je, proč byste ho neměli mít nastavené, proč ho vlastně lidé nastavují, jak to ubližuje nám (vývojářům) a jaké je správné řešení problémů s rychlostí.

 

K čemu je nastavení „Nikdy nepřekompilovat soubory šablon“

Toto nastavení slouží k tomu, když víte, že na Vašem e-shopu se nebudou již provádět další úpravy, aby zbytečně nedocházelo ke kontrole úprav v TPL Vašich šablon, ale aby se načítala data rovnou z cache.
A teď si položme otázku, opravdu víte, že již na e-shopu nebudete provádět žádné úpravy? Nemyslíme si.

Jak to má být nastaveno správně?

Jsou dvě možnosti, jak správně s tímto nastavením pracovat.
A) [DOPORUČUJEME] nastavít „Kompilace šablony“ na hodnotu „Překompilovat šablony, pokud byly soubory zaktualizovány„, viz obrázek.
Blíže jsme se na toto téma (jak správně nastavit cache v PS) vyjadřovali zde „Optimální nastavení PrestaShopu

B) ponechat nastavení „Kompilace šablony“ na „Nikdy nepřekompilovat soubory šablon„, ale poté to vyžaduje, abyste PŘED každou úpravou toto nastavení buďto přepnuli na volbu „Překompilovat šablony, pokud byly soubory zaktualizovány“ a nebo PO každé úpravě kliknuli na tlačítko „Vyčistit mezipaměť“.
Opravdu jste schopni toto zajistit a instruovat o tomto postupu všechny vývojáře, co na Vašem e-shopu budou pracovat? Váš programátor, správce, vývojář modulů, vývojář šablony, apod… Nemyslíme si, praxe ukazuje, že to nefunguje a jsou s tím neustále problémy. Doporučujeme jít bodem „A“.

Pokud řešíte problémy s rychlostí pokračujte úplně dolu do sekce „Jaké je správné řešení problému s rychlostí Vašeho PrestaShopu?“.

Proč to lidé nastavují takto?

Je to očividné, lidé mají problémy s rychlostí PrestaShopu dlouhodobě a proto se snaží nastavit cache a vše možné i nemožné tak, aby si co nejvíce e-shop urychlili, jenže pak už nevidí potencionální důsledky těchto nastavení, když nejsou přesně srozuměni s tím, co to znamená. Toto není to správné řešení, jak bojovat s rychlostí (pomalostí) PrestaShopu!

Jak to ubližuje vývojářům v praxi?

Toto nastavení je pro vývojáře peklo.
Ukážeme Vám příklad z praxe (takovéto případy jsou přímo exemplární a neustále se opakují roky pořád dokola!).
Představte si, že máte e-shop na platformě PrestaShop a hodnotu cache nastavenou na „Nikdy nepřekompilovat soubory šablon„.

A) programátor „Pepa“, který PrestaShopu moc nerozumí, i když tvrdí že ano (jak jinak), tak  provede úpravy na e-shopu v šabloně. Teď může nastat více situací, ale všechny mají stejný výsledek.
1) Uvedené úpravy se v šabloně neprojeví, Pepa začne tedy upravovat jiné soubory šablon a opět se neprojeví, Pepa pokrčí rameny a tímto končí.
2) Pepa provede úpravy a neprovede jejich správnost, jen zkontroluje, že web funguje a tím to bere za vyřešené.
a dalších X případů by nás napadlo…
(Pepa provedl tuto úpravu např. 5. 5. 2022.)

B) 8. 7. 2022 přijde na e-shop programátor „Dominik“, který dostane zadání na úpravu, první co udělá, že provede úpravu a zkontroluje, jestli je v pořádku. Zjistí, že se neprojevuje a jelikož už PS viděl víckrát než jednou, tak se tedy podívat do sekce „Nástroje“ -> „Výkon“, kde zjistí, že je nastavení cache na volbě „Nikdy nepřekompilovat soubory šablon“. Teď jsou dvě základní možnosti, co můžou nastat, ale obě mají opět stejný výsledek.
1) Dominik neví co toto nastavení může způsobit a klikne na „Vyčistit mezipaměť“ a je překvapen výsledkem.
2) Dominik ví, co toto nastavení může způsobit, celý se orosí, napije se kafe, klikne na „Vyčistit mezipaměť“ a modlí se.
Výsledek je tak či tak stejný, Dominik musí smazat cache, protože nemá na výběr… Jelikož Pepa udělal v kódu z května chybu, projevila se až smazáním mezipaměti a celý e-shop přestal fungovat…

Vina jde samozřejmě na hlavu Dominika, i když za to nemůže! Dominik teď „musí“ řešit, kde nastal problém, opravit to a přemýšlet, jak to správně vykomunikovat s majitelem e-shopu. Měl s tím práci navíc, nemohl za to a majiteli e-shopu se to velmi těžko vysvětluje. Není se čemu divit, když to přece „celou dobu šlo v pořádku“, že? 🙂

Toto je případ z praxe, který řešíme Xkrát za rok. Ano, „Dominik“ je programátor openservis.cz. Prosím, netrapte už Dominika… Je z toho unavený a nechce pořád dokola řešit problémy, co udělal Pepa!
Pokud máte nějaké nápady, jak toto více lidem komunikovat, abychom si ušetřili nervy, dejte nám vědět do komentářů prosím 🙂

A poučení z tohoto případu? Nevěřit Pepovi a správně nastavit cache.
Kdyby byla cache nastavena „správně“, chyba by se Pepovi projevila hned v květnu po jeho úpravě a Dominik by se vůbec do tohoto problému nedostal…
Jméno Pepa bylo zvoleno náhodně. Jedná se pouze o příklad, nepoukazuje na žádného reálného Pepu. Sorry všem Pepům 🙂

 

Jaké je správné řešení problému s rychlostí Vašeho PrestaShopu?

Více jak 70% načítacího času PrestaShopu způsobuje hosting, nastavování cache není tímto způsobem není ta správná cesta.
Na toto téma jsme napsali velmi obsáhlý článek: „Zrychlení PrestaShopu, aneb jak zrychlit PrestaShop? Velký článek od A do Z!“ – nemá smysl to tedy psát znovu, mrkněte na již uvedené z minulosti, tam se dočtete vše podstatné, co Vám pomůže vyřešit Váš problém s rychlostí načítání PrestaShopu.

BONUS: Praktická ukázka Dominik vs Pepa ve videu, aneb reprodukce problému, co byl popisován v praxi

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Prosím, vyplňte toto pole.
Prosím, vyplňte toto pole.
Zadejte prosím platnou e-mailovou adresu.
Chcete-li pokračovat, musíte souhlasit s podmínkami