Pohovka u okna v malém pokoji: co hrozí a jak to vyřešit
2026.11.01 18:21
Omezení a příklady fungují lépe než zdvořilé prosby Místo „prosím, aby to bylo dobré" dejte konkrétní mantinely. Napište, co v textu být nemá: žádné fráze typu „v dnešní době", žádné odkazy na zdroje, žádné obecné rady. Ukažte jeden vzorový odstavec, který chcete napodobit. Model se mnohem spolehlivěji drží příkladu než abstraktního popisu. Stejně tak pomáhá uvést, co má udělat, když narazí na chybějící informaci — ať se zeptá, nebo ať dané místo označí, místo aby si vymýšlel.
Den před stěhováním připravte krabici s prvky, které budou potřeba okamžitě: klíče, dokumenty k předání, náhradní tonery, prodlužovačky a základní nářadí. Zaměstnancům pošlete jednodenní přehled, kde mají v novém prostoru usednout a kam mají odložit věci, které nepatří na stůl. První den v nové kanceláři neplánujte schůzky s klienty. Vyhraďte ho na zapojení techniky a ověření, že vše funguje. Po týdnu projděte seznam závad a teprve potom uzavřete stěhování jako dokončené.
Po prvním výstupu nezačínejte znovu od nuly. Většina nástrojů umí navázat na předchozí odpověď, takže stačí napsat, co konkrétně změnit: „zkrať druhý odstavec na polovinu", „vyhoď všechny superlativy", „přepiš úvod tak, aby začínal otázkou". Iterativní úpravy jsou rychlejší a přesnější než snaha napsat dokonalý prompt napoprvé. Zároveň si udržujte přehled — po několika úpravách se text může vzdálit původnímu záměru, takže se k zadání občas vracejte.
Než začnete cokoli měnit, změřte to. Zapněte si na serveru logování doby řešení jednotlivých resolverů a sledujte, které pole spotřebovává nejvíc času. Bez měření se optimalizace zvrhne v hádání a často se „zrychlí" část, která nebyla úzkým hrdlem. Užitečné je i zaznamenávat počet volání databáze na jeden GraphQL požadavek. Když jich je přes dvacet u jednoduchého dotazu, je problém jasný a nemá smysl ladit cache na úrovni HTTP.
Největší problém s výkonem GraphQL v praxi nebývá databáze ani síť, ale to, jak klient poskládá dotaz. Vývojář chce na jedné obrazovce seznam objednávek i s položkami, zákazníkem a jeho adresou, a tak napsat jeden velký dotaz se čtyřmi úrovněmi vnoření. Server ho s radostí provede, protože GraphQL nemá žádný vestavěný limit hloubky. Výsledkem je, že jeden požadavek vygeneruje stovky SQL dotazů a odpověď nabobtná na megabajty. První krok optimalizace není technický, ale disciplinární: určit, kolik dat má která obrazovka skutečně potřebovat, a zbytek odložit na samostatný dotaz až ve chvíli, kdy je potřeba.
Před platbou si zkontrolujte, zda web uvádí identifikační údaje provozovatele, adresu a způsob, jakým lze uplatnit reklamaci. Pokud tyto informace chybí nebo jsou schované až na konci stránky, není to samo o sobě podvod, ale je to důvod zpomalit. Zkuste obchod kontaktovat ještě před nákupem – napište dotaz na dostupnost a sledujte, jak rychle a věcně odpoví. Automatická odpověď bez odpovědi na otázku bývá varováním.
Častá chyba je cpát do jednoho promptu pět různých úkolů najednou. Model pak odvede od každého kus a výsledek je neuspokojivý ve všech. Rozdělte práci na kroky: nejdřív osnova, pak teprve text. U delších výstupů se vyplatí nechat si nejprve potvrdit strukturu a teprve potom generovat obsah. Ušetříte tím přepisování celého textu kvůli jednomu špatně postavenému odstavci.
Důležité je i to, kde recenze jsou. Hodnocení umístěné přímo na stránce obchodu si obchod spravuje sám, takže ho berte jako reklamu, ne jako důkaz. Hledejte nezávislé diskuse, kde lidé popisují, co se stalo při vrácení zboží nebo když nedorazilo. Zajímejte se hlavně o to, zda obchod komunikuje a zda vrací peníze. Jeden negativní příspěvek ještě nic neznamená, ale opakující se stížnosti na stejnou věc – neodeslané zboží, nevrácené peníze, mrtvé telefonní číslo – už ano.
Druhá častá chyba je ignorování limitu složitosti dotazu. Pokud server přijme jakýkoli dotaz, stačí jeden škodlivý nebo jen nešikovně napsaný klient a máte výpadek. Zaveďte limit hloubky vnoření a limit počtu polí v dotazu, případně bodové ohodnocení složitosti, které se počítá před spuštěním resolverů. Odmítněte dotaz ještě předtím, než sáhne na databázi. Chybová odpověď musí být srozumitelná, aby klient věděl, že má dotaz rozdělit, ne že server jen „něco pokazil".
N+1 dotazy řešte na úrovni dávkování, ne obcházením GraphQL Klasická past je resolver, který pro každou položku seznamu zavolá databázi zvlášť. Řešením je dávkování a krátkodobá cache v rámci jednoho požadavku: posbírejte všechny identifikátory, které resolver potřebuje, a načtěte je jedním dotazem. Knihovny pro dávkování načítání existují ve většině jazyků, ale princip zvládnete i ručně – stačí mít v kontextu požadavku mapu už načtených entit. Pozor na to, že cache nesmí přežít déle než jeden požadavek, jinak si vypěstujete nekonzistentní data, která se táhnou mezi uživateli.
Den před stěhováním připravte krabici s prvky, které budou potřeba okamžitě: klíče, dokumenty k předání, náhradní tonery, prodlužovačky a základní nářadí. Zaměstnancům pošlete jednodenní přehled, kde mají v novém prostoru usednout a kam mají odložit věci, které nepatří na stůl. První den v nové kanceláři neplánujte schůzky s klienty. Vyhraďte ho na zapojení techniky a ověření, že vše funguje. Po týdnu projděte seznam závad a teprve potom uzavřete stěhování jako dokončené.
Po prvním výstupu nezačínejte znovu od nuly. Většina nástrojů umí navázat na předchozí odpověď, takže stačí napsat, co konkrétně změnit: „zkrať druhý odstavec na polovinu", „vyhoď všechny superlativy", „přepiš úvod tak, aby začínal otázkou". Iterativní úpravy jsou rychlejší a přesnější než snaha napsat dokonalý prompt napoprvé. Zároveň si udržujte přehled — po několika úpravách se text může vzdálit původnímu záměru, takže se k zadání občas vracejte.
Než začnete cokoli měnit, změřte to. Zapněte si na serveru logování doby řešení jednotlivých resolverů a sledujte, které pole spotřebovává nejvíc času. Bez měření se optimalizace zvrhne v hádání a často se „zrychlí" část, která nebyla úzkým hrdlem. Užitečné je i zaznamenávat počet volání databáze na jeden GraphQL požadavek. Když jich je přes dvacet u jednoduchého dotazu, je problém jasný a nemá smysl ladit cache na úrovni HTTP.
Největší problém s výkonem GraphQL v praxi nebývá databáze ani síť, ale to, jak klient poskládá dotaz. Vývojář chce na jedné obrazovce seznam objednávek i s položkami, zákazníkem a jeho adresou, a tak napsat jeden velký dotaz se čtyřmi úrovněmi vnoření. Server ho s radostí provede, protože GraphQL nemá žádný vestavěný limit hloubky. Výsledkem je, že jeden požadavek vygeneruje stovky SQL dotazů a odpověď nabobtná na megabajty. První krok optimalizace není technický, ale disciplinární: určit, kolik dat má která obrazovka skutečně potřebovat, a zbytek odložit na samostatný dotaz až ve chvíli, kdy je potřeba.
Před platbou si zkontrolujte, zda web uvádí identifikační údaje provozovatele, adresu a způsob, jakým lze uplatnit reklamaci. Pokud tyto informace chybí nebo jsou schované až na konci stránky, není to samo o sobě podvod, ale je to důvod zpomalit. Zkuste obchod kontaktovat ještě před nákupem – napište dotaz na dostupnost a sledujte, jak rychle a věcně odpoví. Automatická odpověď bez odpovědi na otázku bývá varováním.
Častá chyba je cpát do jednoho promptu pět různých úkolů najednou. Model pak odvede od každého kus a výsledek je neuspokojivý ve všech. Rozdělte práci na kroky: nejdřív osnova, pak teprve text. U delších výstupů se vyplatí nechat si nejprve potvrdit strukturu a teprve potom generovat obsah. Ušetříte tím přepisování celého textu kvůli jednomu špatně postavenému odstavci.
Důležité je i to, kde recenze jsou. Hodnocení umístěné přímo na stránce obchodu si obchod spravuje sám, takže ho berte jako reklamu, ne jako důkaz. Hledejte nezávislé diskuse, kde lidé popisují, co se stalo při vrácení zboží nebo když nedorazilo. Zajímejte se hlavně o to, zda obchod komunikuje a zda vrací peníze. Jeden negativní příspěvek ještě nic neznamená, ale opakující se stížnosti na stejnou věc – neodeslané zboží, nevrácené peníze, mrtvé telefonní číslo – už ano.
Druhá častá chyba je ignorování limitu složitosti dotazu. Pokud server přijme jakýkoli dotaz, stačí jeden škodlivý nebo jen nešikovně napsaný klient a máte výpadek. Zaveďte limit hloubky vnoření a limit počtu polí v dotazu, případně bodové ohodnocení složitosti, které se počítá před spuštěním resolverů. Odmítněte dotaz ještě předtím, než sáhne na databázi. Chybová odpověď musí být srozumitelná, aby klient věděl, že má dotaz rozdělit, ne že server jen „něco pokazil".
N+1 dotazy řešte na úrovni dávkování, ne obcházením GraphQL Klasická past je resolver, který pro každou položku seznamu zavolá databázi zvlášť. Řešením je dávkování a krátkodobá cache v rámci jednoho požadavku: posbírejte všechny identifikátory, které resolver potřebuje, a načtěte je jedním dotazem. Knihovny pro dávkování načítání existují ve většině jazyků, ale princip zvládnete i ručně – stačí mít v kontextu požadavku mapu už načtených entit. Pozor na to, že cache nesmí přežít déle než jeden požadavek, jinak si vypěstujete nekonzistentní data, která se táhnou mezi uživateli.