Přeskočit na obsah
Naše paměť

Co zvládne skript a co ne

Program vám ušetří hodiny opakované práce, ale některé věci za vás nerozhodne. A když se splete, udělá to potichu.

Co skript udělá spolehlivě a co za vás nerozhodne. A že chybu, kterou do něj vložíte, zesílí potichu.
Co skript udělá spolehlivě a co za vás nerozhodne. A že chybu, kterou do něj vložíte, zesílí potichu.

5 minut čtení

Slovo skript může znít cize. V praxi je to malý program, kterému dáte přesný postup a on jej opakuje tak dlouho, jak je potřeba. Neumí přemýšlet jako badatel. Zato neumdlévá při stejné práci a neztratí se v ní, pokud dostal správné pokyny. Má proto své dobré místo i v rodinném pátrání.

Nejlépe funguje u práce, která je přesně popsatelná. Horší je u práce, kde se musí rozhodnout, co znamená nejasný zápis nebo zda dva podobné údaje patří k témuž člověku. Je užitečné znát tu hranici předem. Pak program šetří čas, místo aby rychleji šířil chybu.

Kdy program opravdu pomůže

Skript může postupně stáhnout snímky, které jste předem vybrali. Může soubory přejmenovat podle klíče, který určíte, aby se v nich dalo hledat a aby se vám nepomíchaly. Může spočítat zápisy, porovnat dva seznamy jmen nebo upozornit, že se proti poslední kontrole něco změnilo. To jsou úkoly, kde je přesně vidět vstup i výsledek.

Představte si složku se snímky. Když jim každý dáte jméno ručně, snadno jeden přeskočíte nebo dvakrát použijete stejné označení. Skript může postupovat podle stejného pravidla u všech souborů. Neznamená to, že sám ví, co je na snímku. Jen provede pořádek, který jste mu popsali. Právě proto je dobré nejprve vyzkoušet pravidlo na malé sadě a podívat se na výsledek.

Podobně je tomu u seznamů. Máte-li dva seznamy jmen, program dokáže vypsat, která jména jsou v jednom a chybějí ve druhém, nebo která se opakují. To je užitečný seznam k ruční kontrole, ne rozhodnutí o totožnosti lidí. Stejně zapsané jméno samo o sobě nemusí znamenat stejného člověka. A odlišně zapsané jméno nemusí nutně znamenat dva různé lidi.

Skript může také hlídat změnu. Když si uložíte stav stránky či seznamu a později jej porovnáte s novým stavem, program dokáže ukázat, co je jiné. Takové hlídání je zvlášť užitečné tam, kde by ruční porovnávání bylo únavné. I zde ale platí: program neví, zda je změna důležitá. Jen ji poctivě ukáže.

Co za vás nerozhodne

Skript za vás nepřečte kurent. Může vám otevřít snímek nebo připravit výřez, ale tvar písmen, zkratku i souvislost zápisu musí posoudit člověk. Když do programu vložíte přepis nejistého slova jako hotový údaj, program s ním bude pracovat jako s jistotou. Neumí poznat, že jste měli pochybnost.

Nemůže ani rozhodnout spornou totožnost. Program umí srovnat data, jména a místa podle pravidel, která mu dáte. Neumí však sám poznat, zda podobnost opravdu stačí k závěru. Může ukázat kandidáty, které stojí za prověření. Konečné rozhodnutí musí zůstat u zápisů, jejich souvislostí a u člověka, který je čte.

Stejně tak skript nepozná, že jste našli špatného člověka, pokud mu to neprozradí nějaké pravidlo. Když vyhledáváte pouze podle jména, najde všechny stejné tvary. Neví, který člověk patří do vaší rodiny. Když zadáte špatné období nebo omylem prohodíte dva sloupce, může velmi ochotně vytvořit úhledný, ale chybný výsledek.

To je nejdůležitější opatrnost: program zesiluje i chybu, kterou do něj vložíte. A často to udělá tiše. Ruční práce bývá pomalá, a tak si člověk někdy všimne, že se něco nezdá. Automatický postup umí mnoho kroků provést rychle. Pokud je první krok špatně, rychle budou špatně i všechny další.

Úspěšná odpověď nemusí znamenat úspěšný zápis

Z vlastní práce známe přesný případ se zápisovým rozhraním Geni. Jeden způsob zápisu nepřijímá pole pro povolání. Přesto vrátí odpověď 200, tedy zprávu, která na první pohled vypadá úspěšně. Pole ale tiše zahodí a profil se nezmění. Poznat se to dá podle nezměněného času úpravy.

To je dobrá lekce i mimo tento konkrétní případ. Program může dostat odpověď, která neobsahuje chybu, a přitom se zamýšlená věc nestane. Pokud skript jen oznámí „hotovo“, nevíte, zda se skutečně změnilo to, co změnit mělo. Potřebujete kontrolu výsledku, ne pouze kontrolu toho, že odeslání proběhlo.

Proto je užitečné nechat skript vypsat, co udělal. Ne jen počet zpracovaných věcí, ale například jejich označení, původní a nový stav, položky, které vynechal, a důvod vynechání. U zápisu má smysl vypsat i údaj, podle kterého ověříte, že se změna opravdu projevila. Výpis není přítěž. Je to stopa, po níž můžete zpětně zjistit, co se stalo.

Dobře navržený skript umí říct také „nevím“ nebo „toto jsem neudělal“. Narazí-li na neúplný údaj, nečekaný tvar nebo problém při ověření, je lepší, když jej nechá stranou a zapíše jej do seznamu ke kontrole. Méně pohodlné hlášení dnes může zabránit velkému opravování později.

Jak začít bezpečně

Začněte malým úkolem, který byste dokázali udělat ručně. Nechte program zpracovat jen několik předem vybraných položek a porovnejte každou z nich s původním stavem. Teprve když přesně rozumíte tomu, co výsledek znamená, má smysl postup rozšířit. Toto porovnání není nedůvěra k programu. Je to kontrola pravidla, které jste mu dali.

Před spuštěním si napište, co očekáváte. Jaký soubor má vzniknout, jak se má jmenovat, co má seznam obsahovat a co bude znamenat, že se něco změnilo. Jestli se výsledek liší, nezakrývejte rozdíl dalším během. Zastavte se u něj a zjistěte proč. Program často udělal přesně to, co dostal nařízeno, jen ne to, co jste měli na mysli.

Ukládejte také původní stav a výpis provedených kroků. Když se později ukáže chyba, můžete porovnat, co bylo před spuštěním a co po něm. Bez takové stopy se špatně hledá, kde se omyl dostal dovnitř. S výpisem lze postup opravit a znovu ověřit na malém vzorku.

Skript je dobrý pomocník pro opakování, počítání, porovnávání a hlídání. Není to svědek ani rozhodčí. Když mu svěříte rutinu a necháte si rozhodování i ověření výsledku, může vám ušetřit mnoho času. Když mu svěříte úsudek, který nemá, jen vám rychleji vyrobí něco, čemu bude těžké věřit.

Psali: Vašek Mareš · Ford Prefect · Marvin · Hlubina myšlení

Článek sepsal tým, který používá programy hlavně tam, kde je potřeba opakovat stejný pečlivý krok.