IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 10. diel - Serializácia a deserializácia v C# .NET

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
Kit
Tvůrce
Avatar
Kit:31.7.2013 13:25

Metoda File.Exists() je v uvedeném příkladu zbytečná. Obvykle je výhodnější přidat další catch.

Odpovedať
31.7.2013 13:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:31.7.2013 13:30

Ona je tam vlastně úplně zbytečná, jelikož se chytá Exception.

Odpovedať
31.7.2013 13:30
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:31.7.2013 13:46

Testování přístupu k souboru může být i v některých případech nebezpečné. Speciální nebo sdílené soubory se totiž mohou chovat jinak: Například se při pokusu o přístup mohou zamknout, mohou se automaticky smazat, změnit se jejich obsah, přečíst nějaké byty, která nám později budou chybět apod.

Další catch by samozřejmě byl potřebný jen pokud bychom potřebovali jemnější granularitu ošetření výjimky, což v uvedeném případě skutečně potřebné není.

Odpovedať
31.7.2013 13:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
paanoik
Člen
Avatar
paanoik:2.8.2013 14:29

Já ten přístup naopak chválím, protože cpaní try/catch pro ošetřování výjimečných stavů v příkladech vede k tomu, že je pak mladí používají tam, kde by měly být právě tyhle podmínky. Vede to pak hlavně k výraznému zpomalení aplikace, pokud jsou tyhle ošetření někde v cyklu. Jde nicméně o jednoduchý příklad, jak serializer používat, který jsem chtěl sám sepsat a linkovat (tedy díky autorovi za ušetření práce), protože spousta lidí se v tom motá.

Každopádně mě mrzí, že v článku chybí vysvětlení, proč jsou (musí být) vlastnosti public, jak serializovat statické vlastnosti, použití aliasů, a jak řešit problém s nutností serializace několika tříd do jednoho souboru. To jsou tak nejčastější problémy, se kterými se (navíc oproti tomu, co je v článku) stýkám v praxi a vysvětlování.

 
Odpovedať
2.8.2013 14:29
Avatar
Kit
Tvůrce
Avatar
Odpovedá na paanoik
Kit:2.8.2013 14:49

Někdy stačí pochopit význam slova "výjimka". Je to něco, co se při řádném běhu programu zpravidla nestane.

K výjimce může dojít i když soubor bude existovat. Takže testovat jeho existenci je nejen zbytečné, ale dokonce škodlivé a často i nebezpečné.

Odpovedať
2.8.2013 14:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na paanoik
Jan Vargovský:2.8.2013 15:16

Jo vidíš, ten "problém" se serializaci do jednoho souboru jsem přemýšlel, ale pak jsem to tam už nedodělal(čti jako zapoměl, přišlo mi už tak toho hodně). Udělám ještě pokračování.

 
Odpovedať
2.8.2013 15:16
Avatar
paanoik
Člen
Avatar
Odpovedá na Kit
paanoik:2.8.2013 16:03

Jenže to je právě to, co si většina mladých kodérů neuvědomuje a nechápu, kde to nabrali .. naprosto běžně se setkávám například s ošetřování dělení nulou v nějakým krutě používaným cyklu, a pak dotazama, proč je to tak kurevsky pomalý.

Anžto u toho file to chápu, ale je to příklad, imo tam to ošetření nemuselo být vůbec.

 
Odpovedať
2.8.2013 16:03
Avatar
Kit
Tvůrce
Avatar
Odpovedá na paanoik
Kit:2.8.2013 16:16

Ošetření výjimek běžně dělám o pár úrovní výš. Program se tím významně zkrátí. Samozřejmě je nutné určitou granularitu zachovat, ale testy mě k tomu samy navedou.

Odpovedať
2.8.2013 16:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
paanoik
Člen
Avatar
Odpovedá na Kit
paanoik:2.8.2013 16:48

global handler ftw ;) se slušným testováním ho pak lze jen slušně ohandlovat, udělat reportovací nástroj a používat napříč projektama :)

 
Odpovedať
2.8.2013 16:48
Avatar
Kit
Tvůrce
Avatar
Odpovedá na paanoik
Kit:2.8.2013 17:09

S ftw zacházím opatrně, protože v adresářích mívám stovky tisíc souborů. Nechci si zabít výkon kvůli nesmyslům. Kromě toho na to raději používám specializované systémové nástroje, které jsou v takových případech obvykle rychlejší.

Slovo "global" mi nahání husí kůži. Podle mých zkušeností příliš velká globalizace vede do pekel. Užitečné návrhové vzory si ukládám přímo do svého editoru, abych je měl vždy k ruce.

Odpovedať
2.8.2013 17:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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ý!