NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Java rok 2016

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
David Novák:9.1.2016 16:42

Vůbec získat přesné zadání je samozřejmě první krok.. Když zanedbáš ten, tak si jen přidáš práci..

A je pravda, že beru v potaz pouze tvorbu nových projektů.. Nějaké udržování něčeho cizího a dost možná špatně navrženého fakt dělat nehodlám. Ono je ale často jednodušší udělat něco od nuly, než dělat rozsáhlé změny v něčem existujícím..

Odpovědět
9.1.2016 16:42
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na David Novák
Michal Žůrek - misaz:9.1.2016 16:44

ale to se budeš muset zaměstnat pouze na vývoj nově vznikajících projektů a to ještě tak ve firmě s max 3mi zaměstnanci. Není to trochu omezující?

 
Nahoru Odpovědět
9.1.2016 16:44
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
David Novák:9.1.2016 16:49

*zvyklý

V akademické sféře to tak skutečně je - a je jedno, jestli je to vysoká nebo střední. Ovšem nevidím na tom něco špatného - mělo by to být normální dostat zadání typu: Udělej program, co umí xyz.

Kromě toho mám nějaké zkušenosti i z praxe, kde je zadání často více vágní. Ovšem pak je na tobě, abys byl schopen ze zadavatele vytáhnout upřesnění. Pokud to neumíš/neuděláš, je to tvůj problém.

Když bych dostal nejasné zadání a svobodu to udělat po svém, tak zadavateli řeknu, že udělám návrh, když on vlastně neví, co chce (za příplatek samozřejmě) a potom mu to odprezentuju. Lidi, co své představy nedokáží definovat pak mnohem snadněji můžou posoudit, jestli by jim to vyhovovalo nebo ne. Když se s tím člověkem nedá pořádně vyjít/dohodnout, tak ho jednoduše odmítnu. Možností pracovat mám podstatně více, než bych kdy byl schopen časově zvládnout..

Nahoru Odpovědět
9.1.2016 16:49
Chyba je mezi klávesnicí a židlí.
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
David Novák:9.1.2016 16:56

Proč? Právě naopak - větší firmy dodržují ty zásady, o kterých mluvím.. Když máš malinký tým, tak můžeš být hodně agilní (což se hodí například když děláš něco, co ještě ani neumíš) - v tom mám zkušenost právě teď při implementaci EMACu - děláme to dva a tedy poměrně agilně.. Ale prvně jsme na to se starším kolegou sedli a udělali solidní návrh.. Fakt je ta implementace o hodně jednodušší a bezproblémovější, když se předtím zamyslíš nad celkem..

Každý ať si samozřejmě dělá, co se mu líbí - ale je to podobné, jako když tu jsou občas diskuze o tom, jak korektně něco napsat, aby to byl čistý kód nebo kód podle MVC - když dodržíš určité zásady, ulehčíš si ve výsledku práci..

Nahoru Odpovědět
9.1.2016 16:56
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na David Novák
Luboš Běhounek Satik:9.1.2016 19:41

Já mám na mysli spíš tu "údržbu" projektu po tom, co už máš přesné zadání a třeba ho i dokončíš.

Často je to třeba tak, že zadavatel chce jednoduchý program a po dokončení přijde s tím, jestli by jsi mu tam nepřidělal ještě tohle apod.

Jenže s tím se původně nepočítalo (a když jsi psal první verzi, nemůžeš všechno psát dokonale univerzálně a rozšířitelně, protože by ti to zabralo minimálně dvakrát víc času a stálo dvakrát víc), takže začneš rozšiřovat, předělávat, refaktorovat apod. s tím ti sebelepší návrh nepomůže.

Dělat odznova projekt, který už zabral třeba rok práce několika lidí jen kvůli tomu, že zákazník chce nějakou zásadní změnu, ti nikdo nezaplatí.

Málokdy je to tak, že máš zadání na program, co dělá XYZ a po odevzdání to končí.

Nahoru Odpovědět
9.1.2016 19:41
https://www.facebook.com/peasantsandcastles/
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
David Novák:9.1.2016 20:05

Tak samozřejmě, že udělat si dobrý, rozšiřitelný návrh je náročnější na čas.. Ale myslím, že to je stále efektivnější než pak refaktorovat a překovávat to (a přitom si to rozbít a pak se v tom dlouho vrtat a řešit to) - a tam jde zase o domluvu se zákazníkem - často se dá celkem jasně určit, jestli se to bude rozšiřovat nebo ne.

Například teď dodělávám 1GbE a od začátku vím, že bude požadavek na 2.5GbE a potom i 10GbE, takže jsme to tomu uzpůsobili a rozšíření by neměl být takový problém..

Když bych se ale vrátil k původnímu tématu, tak já neříkal, že by IDE bylo nanic - sám sice žádné momentálně nepoužívám, protože to nepotřebuji.. Jen jsem vyjádřil svůj názor, že by si měl každý programovat nějakou dobu bez jakýchkoliv pomůcek, že to pomůže a aspoň pak ten člověk bude chápat, jak to IDE vlastně funguje..

Nahoru Odpovědět
9.1.2016 20:05
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na David Novák
Michal Žůrek - misaz:9.1.2016 20:15

když používáš ide, tak refactoring zabere 3 sekundy + 5 sekund, když to IDE všude nahrazuje. připadá mi, jako bys nikdy nedělal na projektu, kde je třeba 100 tříd.

 
Nahoru Odpovědět
9.1.2016 20:15
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
David Novák:9.1.2016 20:37

Tak já hlavně vůbec nepoužívám OOP ;) I když teď vlastně musím.. Ale nijak mě to neláká a většinou se s OOP u věcí na nižší úrovni vůbec nesetkáš. Ale jinak jsem na takto rozsáhlých projektech dělal (akorát místo tříd byly moduly)..

Můžeš mi dát nějaký pěkný příklad refaktoringu?

Nahoru Odpovědět
9.1.2016 20:37
Chyba je mezi klávesnicí a židlí.
Avatar
Jaro
Člen
Avatar
Odpovídá na David Novák
Jaro:9.1.2016 21:07

Rename, Extract(class, method, interface, field, variable....), Move(method, class, ...) - najpoužívanejšie refaktoringy

Nahoru Odpovědět
9.1.2016 21:07
“What would you do if you were 100% sure you couldn’t fail?”
Avatar
Jaro
Člen
Avatar
Odpovídá na David Novák
Jaro:9.1.2016 21:09

No to je blbé že nepoužívaš OOP, pretože princípy OOP sa využívajú hojne aj v čistom C-čku, myslíš, že taký linux je nakódený "len tak" špagetovým kódom? To ťažko.

Nahoru Odpovědět
9.1.2016 21:09
“What would you do if you were 100% sure you couldn’t fail?”
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Jaro
David Novák:9.1.2016 21:24

Říkáš "principy OOP" - ovšem ve skutečnosti jsou ty principy starší než OOP samo - například oddělování funkčních celků do modulů/knihoven.. A věci jako toto samozřejmě používám.. Jen nepoužívám jazyky jako Java nebo C# a tedy tu nemám žádné třídy.

OOP mě jednoduše nijak nenadchlo, což možná souvisí s tím, že nemám nejmenší zájem psát věci, na které se OOP primárně hodí - tedy například nějaké informační systémy nebo běžné GUI aplikace. Mnohem více mě přitahuje například datově orientované programování a poslední dobou i funkcionální programování..

Jo a stále nevidím nejmenší důvod, proč dělat takový refaktoring.. Přejmenování nebo přesun funkcí nebo proměnných..? K čemu? Nejspíš to souvisí s tím, jak jste zvyklí programovat.. Ale když bych se vrátil ještě k hádce o syntax C# vs. Java, tak je fakt nechutné mít na hloupé přiřazení fci :D Docela by mě zajímalo, jaké instrukce to pak generuje.. Ale obávám se, že moc efektivní to nebude..

Nahoru Odpovědět
9.1.2016 21:24
Chyba je mezi klávesnicí a židlí.
Avatar
Jaro
Člen
Avatar
Odpovídá na David Novák
Jaro:9.1.2016 22:01
void copy() {
char c;
while((c = getchar()) != EOF)
        putchar(c);
}

Krásny príklad polymorfizmu v C (unix copy program, veľmi zjednodušený) :)

Nahoru Odpovědět
9.1.2016 22:01
“What would you do if you were 100% sure you couldn’t fail?”
Avatar
David Klouček:9.1.2016 23:07

Zajímavý, kam až se taková diskuze dostane :-) Máte někdo zkušenosti s ASP.NET MVC a zároveň Springem, nebo EF a (N)Hibernate? Zajímalo by mě porovnání.

 
Nahoru Odpovědět
9.1.2016 23:07
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 13 zpráv z 163.