Kolegové programátoři, tohle je pro vás. KISS style.
Error Handler známe? Koncept dědičnosti od superclassy? Tak jsme doma. Když vaše děťátko pláče, zavolejte svou rodičovskou implementaci Error Handleru a ukažte mu, jaké metody pro zvládání těžkých situací od vás může podědit.
Takhle by to byl nejkratší KISS článek v mém portfoliu.
Ale co když váš Error Handler zeje prázdnotou? Případně v něm něco je, ale o efektivitě kódu máte své pochybnosti a komentáře jsou v klingonštině? Inspirujte se v mé implementaci.
Jestli vás zajímá rovnou můj pseudokód, mám pro vás návěstí:
GOTO CommenceCare;
A my ostatní pokračujeme tady 🙂
Malá instance si vesele skotačí za běhu programu. Náhle narazí na nemilou situaci, pro kterou nemá definovaný postup. Dobře ale ví, kde hledat pomoc: U rodiče.
Říct si o ni taky umí: nahlásí výjimku, pláče. A ke slovu přichází rodičovský Error Handler.
Pláč je volání o pomoc a záchranu. Není to stížnost ani trest. Nejste neschopný, protože neumíte ani uklidnit dítě. Pláče, protože na to nechce být samo.
Chce vás.
Svou jistotu. Svého ochránce v obou světech – vnějším, ve kterém se setkává s mnoha lidmi, i ve světě vnitřním, kde se potýká s neznámými emocemi. Svůj bezpečný přístav, ve kterém se může na chvíli schoulit a jen být. Je to projev víry v to, že ustojíte jeho pláč. Neochvějné přesvědčení, že i když třeba teď nevíte, jak pomoci, budete po jeho boku.
Možná vám teď hlavou běží: „Oukej, možná nejsem looser, když jsem s dítětem a ono pláče. Ale jakmile přijde ta chvíle, tak…„
Slíbila jsem vám svou cestu. Tak koukněte do kódu, a až příště bude v globálu lítat nějaká výjimka, můžete ji zkusit opečovat (pun intended) se mnou:
{==============================================================
Code purpose: Caress a baby in need by tending to them kindly
Version: 87.9.1 KTBREI
Published on: www.mazlime.cz
===============================================================}
Program ErrorHandlerByKT;
Uses MazliMeByKT;
//Navesti pro netrpelive ze zacatku clanku :)
label CommenceCare;
var
baby : human; {Detatko jakehokoliv veku}
caretaker : human; {Rodina, pratele, hlidani…}
Begin
CommenceCare:
// Inicializace - Nastavuji si v hlave pristup:
// Pocity moje i detatka jsou v poradku.
caretaker.Init(Mindset, 'Crying is ok. We will find our way. Together.');
// 1. Jsem tu pro tebe. Nejsi na to sam.
caretaker.HandleErrors(1, 'I am here for you');
// 2. Copak se stalo?
caretaker.HandleErrors(2, 'Whats up ?');
// 3. Jak ti muzu pomoci? Pomohlo by tohle?
caretaker.HandleErrors(3, 'How can I help');
if ( crying = TRUE )
then
// Skok na navesti Commence care, reiterace
goto CommenceCare
else
// Dali jsme to!
Mindset := ‘Nailed it!’
End.
Z komentářů něco chytáte, jména proměnných a procedur pomáhají, ale uvedení do praxe vám není jasné? Pojďme si to spolu rozebrat.
Je v pořádku, že děťátko pláče. Znamená to, že s něčím potřebuje pomoci.
Je taky v pohodě, že jsem z toho nervní. Tenhle mechanismus mi pomáhá a nemusím se kopat ke zvednutí. Tolik. No dobře, když jsme u final bosse v raidu nebo jsem si zrovna sednul na záchod, tak jo. Takže je vlastně asi dobře, že má volume hodně doprava.
Ale co se to děje za magii v proceduře HandleErrors, že může skončit úsměvem?
Prostá nicméně fundamentální inicializace spojení. Tvoříte bezpečný prostor pro komunikaci vyjádřením porozumění. Chápete, proč pláče: potřebuje s něčím pomoci a komunikuje to nejlépe, jak v tu chvíli umí. Vy to přijímáte tak, jak to je, a otevíráte tím cestu k dalším možnostem komunikace.
Děťátko totiž nemusí věnovat energii zpracovávání frustrace z nepochopení, a může ji věnovat rozvoji nových komunikačních vzorců. Třeba i těm více verbálním 🙂 Stačí přijít, vzít své děťátko do náruče (pokud chce) a říct:
Jsem tu s tebou. Nejsi na to sám. Je v pořádku, že pláčeš.
Jakmile největší pláč povolí, můžeme se podívat na hodnoty v debuggeru malé instance. Vy se ptáte a děťátko dle svých možností verbálně či nonverbálně odpovídá. Využití konfirmačního paketu záhodno. Třeba takhle:
Copak se stalo? (hapal, bolí) Aha, ty jsi upadl a teď tě to bolí? (Jo!)
Tohle už je brnkačka.
Chcete, aby si vaše dítě umělo v těžkých chvílích pomoci samo? Tak mu předejte kompetence hned teď. Nechte ho, aby si samo vybralo, co mu pomůže. Pokud neví, můžete navrhnout svůj nápad, ale nenuťte mu ho.
Co by ti teď pomohlo? Co potřebuješ?
Chceš třeba obejmout? (Ne.) Aha, tak jenom spolu sedět? (Jo.) Tak jo, mně to taky někdy pomáhá.
A třeba až zase dohraje Plzeň-Barcelona a vy budete zamačkávat slzu, že ani letos to nebude druhá Sparta, tak se namísto „Ty naděláš! Vždyť jsou to jenom čutálisti!“ od vaší rodiny ozvou věty výše řečené. 😉
I ten nejdrsnější táta při pláči svého děťátka někdy chytá slabost do kolen. Od ní už není daleko k „Já to neumím. Já to nedokážu. Ve mně to není.“
Když jste psal první Hello world, tak jste tušil, že teď budete ovládat to, co umíte?
Netušil. A stejně to ovládáte.
Tak co tu neztrácet čas jalovým tlacháním, že to určitě dáte, když oba víme, že je to jen o tréninku? V ušetřeném čase, který nebudete věnovat sebemrskačství, si můžete dát bounty run v diablu navíc nebo večer něčím potěšit partnerku. Věřím, že ona pak ráda potěší vás. Nemáte zač.
Aby posbíral všechno nepřikurtované, dáme si recap: Pláč je pro vás indikace a pro děťátko úleva. Je to volání o pomoc, které má alokovat všechny zdroje k vyřešení dané situace. A to se mu daří, ne?
Ani u toho final bosse v raidu ve vašem oblíbeném MMORPG prostě nevydržíte jen tak sedět, když váš drobek tak usedavě pláče. A to je dobře. Protože jestli chcete za deset patnáct let schopného healera do party nebo řádné DPSko k vašemu tankovi, tak si ho nejdřív musíte opečovat. A on pak jednou opečuje vás.
Tak, jak se to teď od vás naučí z vaší implementace Error Handleru 🙂
Mimochodem, pro zápis algoritmu jsem použila syntaxi jazyka, který originálně OOP neznal a byl procedurální. Objektové koncepty byly představeny až ve verzi 5.5. Už dlouho jsem neměla příležitost ho použít, a tak jsem neodolala. Poznáte ho? Jestli jo, můžete si mi napsat o virtuální poplácání po rameni 😉
Tak už si přestaňte stát na krku a bičovat se za to, že jste to do teď nezvládal. Nejste neschopa, co to při minulém pláči ZASE podělal. Prostě jste neměl zkompilovatelnou implementaci. Nebo taky možná žádnou.
Teď už nástřel máte a můžete ladit do aleluja. Jen si to vždycky konfirmujte u malé instance, jo? Ať neoptimalizujeme pro uživatele ale stylem o nás bez nás.
Až bude příště vaše děťátko plakat, tak přeju, ať slyšíte to, co to je:
Potřebuju tě. Potřebuju tvoji pomoc.
A dokážete odpovědět chlapským obejmutím, ve kterém je všechno bezpečí světa, a slovy:
Jsem tu pro tebe. Ochráním tě a zvládneme to spolu.
Vaše KT z Mazli mě
P. S. Dejte vědět, jak se vám líbila moje implementace a jestli sdílíte mou obsesi pěkně uspořádaným zdrojovým kódem 😉
P. P. S. Pokud po přečtení článku hloubáte nad dotazy jako „No fajn, ale co mám dělat, když mu nejsou dva roky ale dva týdny nebo dva dny?“ nebo „A jak to mám zvládat venku na ulici, když na mě furt někdo divně kouká nebo má řeči?!“, možná vám pomohou podrobnější tipy a triky ve vanilla verzi Maminkám: Pláč nemusíte jenom přežít.
Tady jsme přeci jen v KISS verzi – Keep It Short and Sweet 🙂 Z jakého důvodu ji pro vás tvořím a proč zrovna já? To se dočtete na stránce Proč dvě verze článků?
1. je to dobrý, bavil jsem se
2. je to dlouhý
3. myslím, že non IT to neuchvátí tak jako mě
4. mám z tebe radost …
Děkuju 🙂 taky tě mám ráda ❤️