NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Diskuze – Lekce 17 - Dekorátory podruhé - Parametrické a třídní dekorátory

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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

 
Odpovědět
+2
27.12.2023 17:20
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá 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.

 
Odpovědět
+2
27.12.2023 23:18
Avatar
Odpovídá 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

 
Odpovědět
+1
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...

 
Odpovědět
+5
28.12.2023 22:45
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá 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.

 
Odpovědět
28.12.2023 23:34
Avatar
Duy Hoang Do
Člen
Avatar
Odpovídá 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

 
Odpovědět
+2
29.12.2023 1:10
Avatar
Dušan Kovářík:23.1.2024 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.

 
Odpovědět
23.1.2024 1:06
Avatar
Lenka Chalupová:27.2.2024 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á.

 
Odpovědět
+6
27.2.2024 21:23
Avatar
Elvíra Krieger:21.3.2024 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...

Odpovědět
21.3.2024 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.5.2024 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? 😀

 
Odpovědět
9.5.2024 23:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 17.