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í.
Avatar
gcx11
Tvůrce
Avatar
gcx11:21.7.2016 15:33

Ahoj,
četl jsem, že by měly být konstruktory v C# převážně líné. Má to nějaké reálné výhody a jak často by se to mělo používat? Přijde mi, že to vyžaduje kód navíc, pokud nepoužiji cukr ze C# 4 a může to urychlit start aplikace, ale víc mě nenapadá.

 
Odpovědět
21.7.2016 15:33
Avatar
Marian Benčat:21.7.2016 15:35

co je líný constructor? Myslíš Side effect? :-)

Nahoru Odpovědět
21.7.2016 15:35
Totalitní admini..
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Marian Benčat
gcx11:21.7.2016 15:43

Že se atributy objektu dopočítají, až když je potřebuješ.

 
Nahoru Odpovědět
21.7.2016 15:43
Avatar
Marian Benčat:21.7.2016 16:00

aha.. lazy init / lazy loading (treba Lazy<>):-) To se používá poměrně často.. obzvláště pokud tvorba objektu trvá třeba dlouho, nebo je náročné na zdroje.. obzvlaste, kdyz to třeba většinou nepotřebuješ...

typickým příkladem je DBContext u ASP. Často nepotřebuješ přístup do DB, ale je součástí (ať už přímo, nebo nepřímo přes repozitáře) controlleru.. takže se ti vytvoří pokaždé.. přesto, že databázi potřebuješ třeba jen u 1 akce z těch 30ti co u controlleru máš.

Editováno 21.7.2016 16:00
Nahoru Odpovědět
21.7.2016 16:00
Totalitní admini..
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Marian Benčat
gcx11:21.7.2016 16:41

To chápu, ale přemýšlím, jestli je rozumné to tak dělat pro každou třídu.
BTW můžeš někdy zkusit tlačítko odpovědět, uživatelům se to pak i zobrazí, že jsi jim odpověděl ;)

 
Nahoru Odpovědět
21.7.2016 16:41
Avatar
Odpovídá na gcx11
Marian Benčat:21.7.2016 17:15

většinou to dělám, jen bych čekal, že se to uživateli zobrazí při jakékoliv reakci, ostatně,.. jako to dělá facebook.. Tedy jsem si to myslel.. proto mi to odpovědět přišlo k ničemu, protože to tu stejně na hovno hajlajtuje ;-)

Každopádně.. u většiny použití Lazy<> porušuje Law of Demeter a když to chceš nějak fixnout, tak to vede většinou k větší práci navíc..

Obecně, takovéto optimalizace nejsou úplně "first run".. když implementuješ, takovéto věci prostě neřešíš.. celkově neimplementuješ prostě tak, aby bylo vše co nejefektivnější.. spíše jedeš, aby to bylo "normálně výkonné" a pak detekuješ určité hotspoty a bottlenecky a tam opravuješ.

Je tedy zcela jistě hloupost přesypat kód lazy inicializací.. má to taky svoji režii a má smysl to řešit dodatečně. Ne prvoplánově.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
21.7.2016 17:15
Totalitní admini..
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Marian Benčat
gcx11:21.7.2016 17:24

Ano, zobrazí se mi to, ale to je proto, že je to moje vlákno, pokud bych to vlákno nevlastnil, tak se o odpovědi nedozvím. Díky za reakci :)

 
Nahoru Odpovědět
21.7.2016 17:24
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 7 zpráv z 7.