Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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
David Hartinger
Vlastník
Avatar
David Hartinger:21.1.2014 16:34

Ahoj kluci, minulý týden jsme si v soutěži zkusili jednoduchou webovou aplikaci v ASP.NET MVC. Pokud jste soutěž prošvihli nebo se vám nezadařilo, máte nyní jedinečnou příležitost, protože je stejné zadání, pouze pro technologii ASP.NET Web Forms. Ta je starší, v podnicích však stále používanější. Tutoriály jsou zde, stačí si to přečíst: http://www.itnetwork.cz/…net/webforms Znalosti se vám v praxi opravdu hodí.

Připomenu, že hrajeme o placku Machr a samolepky. Zadání úlohy je jednoduché. Vytvořte webovou aplikaci v ASP.NET Web Forms, která vypočítá modus (nejčastěji se vyskytující prvek) z čísel zadaných ve formulářovém poli. Čísla jsou zadaná slovy a jsou vždy do 100, oddělená jsou čárkou.

Pokud je modů více, např. pro vstup:

sto, padesát šest, dvacet, sto, padesát šest

budou vypsány všechny, zde tedy 100, 56.

Mody budou vypsané čísly. Snažte se o co nejhezčí kód a efektivní řešení.

Čas je do pondělí 27.1. do 10:00.

Podrobnější pravidla soutěží jsou zde: http://www.itnetwork.cz/…outezi-machr

Editováno 21.1.2014 16:35
Odpovědět
21.1.2014 16:34
You are the greatest project you will ever work on.
Avatar
Jakub Lásko[Saarix]:21.1.2014 17:10

Tak snad už se teď více zadaří :-)

Nahoru Odpovědět
21.1.2014 17:10
Časem je vše možné.
Avatar
Odpovídá na David Hartinger
Michal Žůrek - misaz:21.1.2014 17:13

čas tedy není nehraje roli?

 
Nahoru Odpovědět
21.1.2014 17:13
Avatar
Jakub Lásko[Saarix]:21.1.2014 18:05

Taky tady je první verze mého řešení: https://skydrive.live.com/redir?…
PS. možná ještě dojde na nějaké úpravy ;)

Jo a také web: http://laskoproject.asp2.cz/MainPage.aspx

Nahoru Odpovědět
21.1.2014 18:05
Časem je vše možné.
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Jakub Lásko[Saarix]
Ondrca:21.1.2014 18:09

Mohl by sis ošetřit blbuvzdornost.
Když nezadám nic nebo čísla hází to na mne error.

Nahoru Odpovědět
21.1.2014 18:09
Zase jsem o něco chytřejší
Avatar
Odpovídá na Ondrca
Jakub Lásko[Saarix]:21.1.2014 18:27

Jo jasně na to jsem teď taky myslel, tak to tam ještě teď budu doplňovat :-)

Nahoru Odpovědět
21.1.2014 18:27
Časem je vše možné.
Avatar
Ondřej Štorc
Tvůrce
Avatar
Ondřej Štorc:21.1.2014 18:51

Zde přidávám svoji verzi: <a href="https:/­/drive.google­.com/file/d/0B8tNhz­LqjXuISEl6RFBkbGht­d3M/edit?usp=sha­ring">Google Disc</a>

Nahoru Odpovědět
21.1.2014 18:51
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Ondřej Štorc
Ondřej Štorc:21.1.2014 19:07

Ještě přidávám online verzi: <a href="http://­arakamus.aspo­ne.cz/">araka­mus.aspone.cz</a>

Nahoru Odpovědět
21.1.2014 19:07
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Ondřej Štorc
Michal Žůrek - misaz:21.1.2014 19:56

proč padesát osm je 1001 ?

 
Nahoru Odpovědět
21.1.2014 19:56
Avatar
Odpovídá na Michal Žůrek - misaz
Zdeněk Pavlátka:21.1.2014 20:12

Místo mezery dej pomlčku. padesát-osm funguje.

Nahoru Odpovědět
21.1.2014 20:12
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Štorc:21.1.2014 20:12

Udělal jsem to tak že, cokoliv co vybočuje z pro zadaní dostane hodnotu 100 + pozice ve větě, ale je pravda že bych to mohl udělat tak že i mezera bude platný separátor.

Nahoru Odpovědět
21.1.2014 20:12
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Michal Žůrek - misaz:21.1.2014 20:33

Ahoj,
jen tak mimo přidávám svůj výtvor, nemusíte to ani hodnotit.
Online: http://misaz.asp2.cz/
Download: http://misaz.moxo.cz/…ms-modus.zip
Algoritmus je převzatý z minulého machra, takže je ve VB.

 
Nahoru Odpovědět
21.1.2014 20:33
Avatar
Jakub Lásko[Saarix]:22.1.2014 16:48

Tak už je to i blbu vzdorné :-)
Projekt: https://skydrive.live.com/redir?…
Web je stejný ale: http://laskoproject.asp2.cz/MainPage.aspx

Editováno 22.1.2014 16:48
Nahoru Odpovědět
22.1.2014 16:48
Časem je vše možné.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Jakub Lásko[Saarix]
Jan Vargovský:22.1.2014 16:57

Interaktivita s uživatelem vypadá opravdu vtipně :D Alá nemíchej angličtinu a češtinu.

 
Nahoru Odpovědět
22.1.2014 16:57
Avatar
Odpovídá na Michal Žůrek - misaz
Zdeněk Pavlátka:22.1.2014 17:05

Co to používáš za font? Strašně se mi líbí.

Nahoru Odpovědět
22.1.2014 17:05
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Ondřej Štorc:22.1.2014 17:09

Podle zdrojáku <a href="http://­www.fontpalace­.com/font-download/Quar­tz+Regular/">Qu­artz MS</a>

Nahoru Odpovědět
22.1.2014 17:09
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Petr Gürth
Tvůrce
Avatar
Petr Gürth:22.1.2014 18:24

Ahoj .. tak snad jsem vytvořil lepší verzi než minulý týden :)
https://dl.dropboxusercontent.com/…as_Modus.rar

 
Nahoru Odpovědět
22.1.2014 18:24
Avatar
Odpovídá na Jan Vargovský
Jakub Lásko[Saarix]:22.1.2014 18:56

Ajo vidíš toho jsem si vůbec nevšiml, že jsem to namýchal :-) Je to trochu komické ;)

Nahoru Odpovědět
22.1.2014 18:56
Časem je vše možné.
Avatar
Odpovídá na Zdeněk Pavlátka
Michal Žůrek - misaz:22.1.2014 19:01

Ano Quartz MS našel jsem ho na google font galery. Asi bych to neměl sdílet, tak ti nedám odkaz. Můžeš si ho vyšťourat sám.

 
Nahoru Odpovědět
22.1.2014 19:01
Avatar
Ondřej Štorc
Tvůrce
Avatar
Ondřej Štorc:23.1.2014 10:35

Přidávám další verzi ve která je nápověda pro uživatele a bylo také upraveno zobrazování chyb
Download: https://drive.google.com/…Njd3blk/edit?…
Online: http://arakamus.aspone.cz/

Editováno 23.1.2014 10:40
Nahoru Odpovědět
23.1.2014 10:35
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jakub Lásko[Saarix]:23.1.2014 14:01

Tak jdem nakonec ještě malinko opravil vyjímky. ;)
Projekt: https://skydrive.live.com/redir?…
Web je stejný

Nahoru Odpovědět
23.1.2014 14:01
Časem je vše možné.
Avatar
Nikola Sterziková (PaNika):25.1.2014 0:10

Tak já bych se taky připojila se svým skromným výtvorem...
http://leteckaposta.cz/263389892

 
Nahoru Odpovědět
25.1.2014 0:10
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:27.1.2014 11:24

Krásné dopoledne, tak jsem na to kouknul a:

  • Arakamus - Jakmile třídu nazveš zpracovávač, tak je v návrhu něco špatně. To samé, když se proměnná jmenuje Chyba a nad ní je komentář "Počet chyb v zadání". Snad tedy PocetChyb nebo alespoň Chyby. "xnáct" - diakritika v identifikátorech? Zase, metoda RozdelPole(), očekával bych, že rozděluje nějaké pole, ale ona bere string a separátor. Možná ti to přijde jako hlouposti, jenže až budeš dělat větší projekt, tak tě tyhle chyby odrovnají. Výpočet modu je také nějaký divný, proč něco přidáváš do kolekce a potom to mažeš když zjistíš, že to byl špatný výsledek? Můžeš si jednoduše zjistit maximum metodou Max(). Hodil by se nějaký validátor.
  • Jakub[Saarix] - Třída value mi přijde k ničemu, místo ní bys mohl použít obyčejný slovník. Do Collection bych to přidával jinak než těmi 100 řádky, to jsem již psal minule. Třída Number mi také přijde zbytečná, většinou když děláš jen takovéhle struktury o pár proměnných, tak je v návrhu něco špatně. Přijde mi lepší používat validátory z ASP.NET než si psát nějakou vlastní logiku. Minimálně na RequiredValidator, formulář se takhle zbytečně odesílá nevyplněný na server. Chválím výpočet modu. Za toto řešení dávám placku.
  • Girtas - Výpočet modu vypadá cool, aplikace však buguje když je více modů, zadej si tohle: "jedna, pět, osmdesát tři, osmdesát tři, sto, jedenáct, jedenáct, padesát, padesát"
  • misaz - Na maximum je v LINQ extension metoda, Helper je zbytečný. Řešení je OK jako minule, placku už máš :P
  • PaNika - Logický kód je napsaný v prezentační části, měla by sis vytvořit oddělené třídy, např. PrevadecCisel a PocitacModu. Metoda ZjistitModus() by tak vůbec nevěděla o labelu, což je správně. Jakmile ji budeš chtít teď použít znovu pro jiný účel (třeba udělat druhý formulář, který modus uloží do souboru místo do labelu), tak budeš mít problém. Proto by ty metody měly být ve třídách a být úplně univerzální. K chybovým stavům se používají výjimky. Místo foreache a odstraňování čárky na konci lze použít metodu Join na Stringu, pak je to na 1 řádek. Logicky to řešení není vůbec špatné, příjemně jsi mě překvapila, je to asi nejlepší holčičí kód co jsem kdy viděl :D Musíš si ale načíst něco o tom, jak se navrhují aplikace a jak se odděluje logika a prezentace. Na devbooku je o tom napsáno poměrně dost.

Placku získává Jakub Lásko[Saarix], prosím o publikaci a napiš x :) Všem ostatním děkuji za účast a těším se příště.

Editováno 27.1.2014 11:24
Nahoru Odpovědět
27.1.2014 11:24
You are the greatest project you will ever work on.
Avatar
Odpovídá na David Hartinger
Jakub Lásko[Saarix]:27.1.2014 12:38

Děkuji monohokrát a je pravda že místo té jedné třídy jsem spíše mohl použít slovník :( Ale jak se říká nic není dokonalé ;)

Nahoru Odpovědět
27.1.2014 12:38
Časem je vše možné.
Avatar
Odpovídá na David Hartinger
Nikola Sterziková (PaNika):27.1.2014 14:38

Díky za zpětnou vazbu, je fakt, že při jednoúčlových malých aplikacích strukturu tříd neřeším kvůli času, ale chtělo by to...
Články si přečtu. Tady na Devbooku se mi články moc líbí, jsou hezky logicky psané. :-)

Nevím, jestli jsem správně pochopila vyjádření k vyjímkám, ale vyjímky se snažím raději nepoužívat, jednak kvůli vlivu na výkon (např.:http://msdn.microsoft.com/….110%29.aspx) a pak, protože si myslím, že by se vyjímky měly používat spíše na neočekávané stavy.
Ale třeba jsem to jen nepochopila, a třeba je to taky jen věc názoru ;-).

Díky za String.Join, to jsem neznala..

Každopádně díky.
PaNika

 
Nahoru Odpovědět
27.1.2014 14:38
Avatar
Petr Gürth
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Gürth:27.1.2014 18:04

Díky za hodnocení .. Už jsem to opravil :) Tam testuji, jestli se číslo již ve slovníku nachází a pokud ano tak mu přičtu hodnotu a vrátim true. No a tam byl ten problém, že když vrátim true, tak pak se mi nevynulovali proměnné a proto to bugovalo :(

 
Nahoru Odpovědět
27.1.2014 18:04
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Nikola Sterziková (PaNika)
David Hartinger:28.1.2014 21:49

Výjimek se určitě neboj, hodí se pro všechny chybové stavy a všechny robustní aplikace je hojně využívají. Údržba kódu je bez nich nepříjemná a celý .NET je postavený na výjimkách. Ten link co jsi poslala jen říká, že bys neměla vyhazovat výjimky v situacích, kde dochází více k chybám než k úspěchu, potom by to bylo opravdu pomalé.

Nahoru Odpovědět
28.1.2014 21:49
You are the greatest project you will ever work on.
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 27 zpráv z 27.