IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskusia – 17. diel - Dekorátory druhýkrát - Parametrické a triedne dekorátory

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Vojtěch Míka:27.12.2023 17:20

Udal bych více příkladů třeba i z praxe, k čemu vlastně dekorátory složí a kdy je dobré je použít. Osobně přibližně asi chápu jak fungují, ale nechápu využití v praxi

 
Odpovedať
27.12.2023 17:20
Avatar
Karel Zaoral
Tvůrce
Avatar
Odpovedá na Vojtěch Míka
Karel Zaoral:27.12.2023 23:18

Ahoj Vojtěchu, tam je problém v délce lekcí. Už tak jsou dekorátory na dvě lekce a je to téma, které by uživilo celý samostatný kurz. V praxi se používají k:

Zaznamenávání (Logging) a monitorování: Dekorátory jsou skvělé pro přidání logovací funkcionality k funkcím. Například, kdy byla funkce volána a jaké argumenty byly předány.

Cacheování: Pro funkce, které mají náročné výpočty nebo získávají data z pomalých zdrojů slouží dekorátory pro cacheování výsledků a zvýšení výkonu aplikace.

Ověřování a autorizace: U webových a serverových aplikací pomocí dekorátorů přidáš kontrolu přístupu k určitým funkcím, aby bylo zajištěno, že je může volat pouze autorizovaný uživatel.

Sledování výkonu (Performance Monitoring): Dekorátory lze použít pro měření doby běhu funkcí, což pomáhá v optimalizaci výkonu.

Správa zdrojů: Například když chceš automaticky otevřít a zavřít soubory nebo síťová spojení, což zjednodušuje správu zdrojů.

Parametrizace: Dekorátory umí měnit chování funkce na základě vnějších parametrů bez změny jejího kódu.

To je hrozně široké spektrum použití a každé by uneslo samostatnou lekci. V těch dvou lekcích základního přehledu jsem se snažil použít příklady, které odpovídají praktickému použití, jak jsem ho uvedl výše. Zkrátka kurzy základů, oop a kolekcí programování teprve začíná a studium a prohlubování schopností ve vybraném jazyku je proces, který je nekončící . Tak to prostě je.

 
Odpovedať
27.12.2023 23:18
Avatar
Odpovedá na Karel Zaoral
Vojtěch Míka:27.12.2023 23:31

Tyjo díky, teď už mi to trochu spíná 😄 Jestli někdy bude článek na dekorátory, určitě se na něj podívám

 
Odpovedať
27.12.2023 23:31
Avatar
Pavel Kopecký:28.12.2023 22:45

Omylem jsem dal 5 hvězdiček, dal bych max. 2.

Chybí příklady k procvičování, na začátku lekce by mělo být srozumitelně popsáno, k čemu se dekorátory používají a kdy a jak je použít. To, že by lekce byla s příklady delší, by vůbec nevadilo. Takhle si musím cvičení hledat jinde a je to pro mě ve finále dlouhé i tak.

Dále nejsou vysvětleny argumenty (*args, **kwargs). Pokud jsou vysvětleny jinde, měl by na ně být přidán odkaz.

Je to vše jen letem světem. Pochopit se to z textu stěží trochu dá. Nedá se to však naučit, aby to člověk byl schopen použít. Škoda...

 
Odpovedať
28.12.2023 22:45
Avatar
Karel Zaoral
Tvůrce
Avatar
Odpovedá na Pavel Kopecký
Karel Zaoral:28.12.2023 23:34

Ahoj Pavle, díky za zpětnou vazbu. Poziční a klíčové argumenty jsou důkladně vysvětlené už v kurzu základů, zde: https://www.itnetwork.cz/…ce-a-vyjimky
Rovněž na začátku dvojlekce dekorátorů je popsané, kdy a k čemu se používají. Jinak platí to, co jsem psal Vojtovi výše. K příkladům - ukázky kódu jsou už poměrně komplexní a nic ti nebrání v tom vzít si třeba Piškvorky ze cvičení a dopsat si k nim třeba funkcionalitu, která měří čas, který hráči spotřebují na své tahy. Beru to ale jako námět k tomu abychom se zamysleli nad tipy na skripty, třeba ke každé lekci.

 
Odpovedať
28.12.2023 23:34
Avatar
Duy Hoang Do
Člen
Avatar
Odpovedá na Karel Zaoral
Duy Hoang Do:29.12.2023 1:10

Takovyto, kdyz se dovis to neuzitecnejsi v diskuzi pod clankem :))) Doporucil bych pridat ty priklady z praxe primo do lekce. Uprimne v tomhle pripade by vubec nebylo od veci dat i priklady realnych kodu, resp jeji cast, aby si to uplny novacek mohl predstavit. Z tech prikladu v obou lekcich jsem nebyl vubec moudry. Ne ze bych je nepochopil, ale vubec mi nedochazelo, k cemu je to vlastne dobry

 
Odpovedať
29.12.2023 1:10
Avatar
Dušan Kovářík:23. januára 1:06

Je to hodně letem světem. Chápu, že dekorátory jsou náročné téma, ale kladu si otázku, zda má smysl zde uvádět ukázky kódu např. vlastních třídních dekorátorů, ze kterých pochopit princip se samo o sobě (bez hledání jinde nebo předchozích zkušeností) dost dobře nedá, a zda by tedy nebylo lepší zůstat u dekorování funkcí a jiné případy pouze zmínit. Nemít knihu od Pecinofského (ano, tu hroznou :-) ), tak bych asi nepobral ani ten closure, který se mmchd používá už v minulé lekci.

 
Odpovedať
23. januára 1:06
Avatar
Lenka Chalupová:27. februára 21:23

Souhlasím s předešlými komentáři, že pokud je něco natolik složité/rozsáhlé, aby se to dalo v lekci polopaticky vysvětlit, nemělo by se to vysvětlovat vůbec. Bohatě by stačila zmínka že existují i třídní dekorátory, ale je to nad rámec kurzu. Daleko lepší, než abychom se to snažili pochopit z textu, ze kterého to pochopit nejde.
Je mi jasné, že do osnov se všechno nevejde, ale už mě nebaví být furt v depresi, že něco nechápu a pak zjistit z diskuse, že se to z textu ani pochopit nedá.

 
Odpovedať
27. februára 21:23
Avatar
Elvíra Krieger:21. marca 20:51

U prvního příkladu není vhodně pojmenovaný argument (zprava). Lokální proměnná pak zastiňuje globální proměnnou. Pokud člověk v názvu argumentu udělá překlep, zanese si do kódu špatně odhalitelný bug...

Odpovedať
21. marca 20:51
Every first draft is perfect because all the first draft has to do is exist. It's perfect in its existence. The ...
Avatar
Anna Drahotová:9. mája 23:34

Nechci si pořád stěžovat, ale vážně není čas to všechno pochopit a zapamatovat si a ještě si to procvičit nějakým vlastním programováním. To že jsem si to přečetla a jednou zkusila, neznamená, že to chápu a že si to budu pamatovat i po souhrnném kvízu z dané lekce. Takže jen jedna otázka. Bude to v závěrečném testu? 😀

 
Odpovedať
9. mája 23:34
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!