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

Diskusia – Mandelbrot v C # WPF, so zoomom a ukladaním obrázkov

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
David Hartinger
Vlastník
Avatar
David Hartinger:26.10.2017 13:14

Díky za nahrané aplikace. Jsou docela rozumně napsané a máme tu hlavně věci na Windows Forms, takže každé WPFko se cení :)

Odpovedať
26.10.2017 13:14
New kid back on the block with a R.I.P
Avatar
Bruno Schwarzbach:26.10.2017 13:25

Díky. Budu rád za jekékoliv připomínky, náměty ke zlepšení.

 
Odpovedať
26.10.2017 13:25
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Bruno Schwarzbach
David Hartinger:26.10.2017 13:40

Mě to přijde vážně dobré. Vždy se najde pár drobností, ale celek je dobrý. Nemám bohužel prostor ke zkoumání návrhu nebo efektivity implementace, ale co se týká kódu, tak:

  • většinou se před privátní atributy stejně píše private, modifikátory není dobré vynechávat, třeba v PHP by to bylo takhle public
  • dodržovat nějaké konvence pro názvosloví, třeba metoda PocatecniLimity() by spíš měla být NastavPocatecniLimity(), metody dělají akce, PocatecniLimity je jak název pro vlastnost. Vykresli() a Ulozit() jsou 2 různé konvence, používal bych vždy rozkazovací způsob pro danou akci, tedy Uloz().
  • spojovat cesty přes Path.Combine, aby to případně fungovalo i na jiných OS, C# má nějaké porty na Linux a ten nepoužívá zpětná lomítka
  • třída Bod by mi dávala smysl spíše jako struktura (struct), ale nevím, jestli na ni nepotřebuješ reference, opravdu to nemohu tak detailně zkoumat
  • kód na nastavování těch limitů je dost duplicitní, asi bych udělal nějakou metodu, co by to brala v parametrech a nastavila
  • přijde mi trochu matoucí používat třídy Point a Bod

Výše uvedené věci jsou poměrně málo významné, i když ve velkých projektech pak mohou zbytečně prudit :)

Odpovedať
26.10.2017 13:40
New kid back on the block with a R.I.P
Avatar
Odpovedá na David Hartinger
Bruno Schwarzbach:26.10.2017 14:44

Díky za užitečné podněty, dávají mi smysl.

 
Odpovedať
26.10.2017 14:44
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na David Hartinger
Jan Vargovský:26.10.2017 14:50

Osobně už private access modifier taky nepíšu, je to redundantní informace a akorát zabírá místo.

 
Odpovedať
26.10.2017 14:50
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Jan Vargovský
David Hartinger:26.10.2017 16:59

Jednu dobu jsem o tom hodně četl, protože mi to připadalo také zbytečné, ale názory na to jsou poměrně jednotné, modifikátory bys měl psát vždy. Hodně juniorů třeba neví jak funguje internal, není vždy jasné jaký modifikátor se tam dá. Zrovna v C#, když před třídu nenapíšeš public, tak to dělá bordel s public vlastnostmi typu struct. Píše to takovou tu divnou hlášku Inconsistent accessibility.

Odpovedať
26.10.2017 16:59
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na David Hartinger
Jan Vargovský:26.10.2017 18:46

Já to přebral jako interní konvenci firmy a ti to zase (nejspíš) přebrali od R#. První jsem byl taky proti tomu, pak jsem si zvykl a začal používat i mimo firemní kód. Dát classu public a nebo nechat internal je trošku něco jiného. Já to pravidlo (s vynecháním implicitního private) aplikuji jen na fieldy.

 
Odpovedať
26.10.2017 18:46
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Jan Vargovský
David Hartinger:26.10.2017 21:59

Mám dojem, že fieldy v Javě jsou bez modifikátoru internal, ne private. Tam bys mohl mít s takovou konvencí dost nepříjemností. V C# to asi dělá to co by člověk očekával, ale nesouhlasím s tebou, že je to redundantní informace. Není to žádná informace, v tom je rozdíl, prostě to na první pohled není poznat. Proto se to tam většinou píše explicitně.

Odpovedať
26.10.2017 21:59
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na David Hartinger
Jan Vargovský:27.10.2017 7:23

Nevím proč do toho pleteš Javu. Java má na classu taky package access modifier a můžeš ho vyjádřit jen tím, že tam žádný nenapíšeš - dost intuitivní. To je úplně stejná diskuze jako "tabs vs spaces", každý by měl radši taby, ale prostě defaultní chování IDE dává v .NETu mezery, tak to lidi používají. Tak jako ti IDE přidává private k nově generovaným věcem. V OS už se dost často definují různé konvence, které jdou právě proti tomuhle základnímu chování a ten kód je o mnoho lepší.

 
Odpovedať
27.10.2017 7:23
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Jan Vargovský
David Hartinger:27.10.2017 11:36

Napsal jsi jen odpověď abys něco napsal, neobsahuje žádné pádné argumenty a otevírá zbytečně další témata, která s tím nesouvisí. Tab nebo mezera ti nezpůsobí, že nevíš na 100% co která část kódu dělá. Diskuzi považuji z mé strany za ukončenou, piš si to jak chceš, to už je tvoje věc.

Odpovedať
27.10.2017 11:36
New kid back on the block with a R.I.P
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ý!