Nejžádanější programátorské znalosti na českém pracovním trhu

andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #225 kdy: 24. 11. 2016, 01:11:19 »
Kód: [Vybrat]
public class NonNullString {
Ale proměnná typu NonNullString může být null, ne? :) Trošku mi to připadá jako posunutí problému o level výš.


andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #226 kdy: 24. 11. 2016, 01:16:41 »
Kód: [Vybrat]
public class NonNullString {
private final String val;
public NonNullString(String val){
if(val==null) throw new RuntimeException("Null not allowed - go away.");
Uff, teda mě už to večer myslí pomalu.... RuntimeException nevypadá jako chyba při překladu, že?

Youda

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #227 kdy: 24. 11. 2016, 01:20:00 »
Když ono tohle vypadá, jako snaha udělat to, o čem mluvím, v jazyce, který to nepodporuje. Ten výše uvedený wrapper vypadá v jazycích podporující algebraická datové typy... zhruba takhle:
Kód: [Vybrat]
Maybe String

Mno, pokud budu mit nutkani neco takoveho pouzivat, tak pouziju java.util.Optional, nebo guava optional.
Cely priklad, na ktery reaguju je ale absolutne zcestny, vracet null jako indikator chyby je reseni idiota. V jave uz primo s metody zjistiVysku() vypadne excepsna.

Strkat kdejakou kravinu do syntaxe jazyka je spolehliva cesta do zadeke. Java si vystaci s classes, generiky, lambdami a anotacemi, reflection API + frameworky typu Spring. A samotna java ma par klicovych slov, ktere se dlouha leta nemeni. Co se meni, jsou standardni knihovny.
Tento pristup obcas generuje boilerplate, coz vubec neni na skodu, o to se stara IDE. Muj priklad s wrapperem je v Eclipse par hotkeys, new class - atribut - generate constructor using fields, generated toString a v pripade slozitejsich objektu generate getters/setters. Vysledek je krasne citelny kod, ne shluk paznaku, co pripomina poruchu na lince.

Osobne mi cele FP hype pripada jako vzboureni lidi, co nepochopili OOP. Pak se museji vymyslet kraviny typu "maybe string", aby se vyresily problemy, ktere FP prinasi. Jedina viditelna vyhoda je snadna paralelizace immutable funkci, jinak to vidim jenom ciste jako hype.

Youda

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #228 kdy: 24. 11. 2016, 01:23:20 »
Kód: [Vybrat]
public class NonNullString {
private final String val;
public NonNullString(String val){
if(val==null) throw new RuntimeException("Null not allowed - go away.");
Uff, teda mě už to večer myslí pomalu.... RuntimeException nevypadá jako chyba při překladu, že?

No to opravdu nevypada. jestli ovsem pri prekladu dovedes urcit, ze za 3 roky, 2 mesice a 4 dny dojde k poruse vyskomeru, bude to sakra dobrej prekladac.

Youda

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #229 kdy: 24. 11. 2016, 01:31:33 »
Kód: [Vybrat]
public class NonNullString {
Ale proměnná typu NonNullString může být null, ne? :) Trošku mi to připadá jako posunutí problému o level výš.

Tak urcite.
Pri reseni blbeho zadani dochazi k blbemu reseni, to uz je dusledek modus ponens.
V jave se problem toho typu resi tak, ze metoda bud vraci korektni non null hodnotu alternativne exception.
Nebo vrati nonnull bean, ktery obsahuje vlastni data a diagnosticky atribut - to pokud je potreba objekt posilat nekam dal do sveta.  A nebo Optional<T>.
Hrabat do syntaxe jazyka opravdu netreba.



andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #230 kdy: 24. 11. 2016, 02:11:53 »
Citace
Mno, pokud budu mit nutkani neco takoveho pouzivat, tak pouziju java.util.Optional, nebo guava optional.
Ale to pořád nějak neřeší ten problém říct "tento typ neobsahuje null". To jakž tak nějak řeší ty anotace, ale je to trochu přes ruku...
Citace
Cely priklad, na ktery reaguju je ale absolutne zcestny, vracet null jako indikator chyby je reseni idiota. V jave uz primo s metody zjistiVysku() vypadne excepsna.
Tak to závisí na návrhu programu. Pokud je chyba čidla něco, co je běžným výsledkem, se kterým se má pracovat (např. tak, že se zkusí jiné čidlo), tak je návratová hodnota docela hezké řešení. Ono třeba v FP je poměrně jednoduché to změnit třeba na:
Kód: [Vybrat]
Either Chyba Double
Aneb - proměnná obsahuje číslo NEBO nějakou specifikaci chyby. Žádný null. Java tohle neumí, takže se to pak řeší výjimkama. Ale když je to jako hodnota, dá se s tím pracovat mnohem líp. Co třeba - když nevyjde čidlo alfa, použij čidlo beta?
Kód: [Vybrat]
cidloAlfa <|> cidloBetaA to <|> není žádná syntaxe. To je jméno funkce.

Citace
Strkat kdejakou kravinu do syntaxe jazyka je spolehliva cesta do zadeke. Java si vystaci s classes, generiky, lambdami a anotacemi, reflection API + frameworky typu Spring. A samotna java ma par klicovych slov, ktere se dlouha leta nemeni. Co se meni, jsou standardni knihovny.
Nějak jsem nepochopil, co je na "Maybe String" za "strkání kdejaké kraviny do syntaxe jazyka"... java na to potřebuje generika, anotace... v FP je to rovnou součástí typů...
Citace
Tento pristup obcas generuje boilerplate, coz vubec neni na skodu, o to se stara IDE. Muj priklad s wrapperem je v Eclipse par hotkeys, new class - atribut - generate constructor using fields, generated toString a v pripade slozitejsich objektu generate getters/setters. Vysledek je krasne citelny kod, ne shluk paznaku, co pripomina poruchu na lince.
Smím se zeptat, co je nečitelného na následujícím kódu?
Kód: [Vybrat]
Maybe StringIDE nepotřebuju, protože nepotřebuju generovat boilerplate...
Citace
Osobne mi cele FP hype pripada jako vzboureni lidi, co nepochopili OOP. Pak se museji vymyslet kraviny typu "maybe string", aby se vyresily problemy, ktere FP prinasi. Jedina viditelna vyhoda je snadna paralelizace immutable funkci, jinak to vidim jenom ciste jako hype.
Jasně, je to takový hype, že Java po mnoha letech má generika (= Rank1Types), iterátory (= vlastně normální listy), optional (=Maybe), lambda funkce(základ FP), final (immutabilita z FP)...
Citace
No to opravdu nevypada. jestli ovsem pri prekladu dovedes urcit, ze za 3 roky, 2 mesice a 4 dny dojde k poruse vyskomeru, bude to sakra dobrej prekladac.
No ten překladač mi ale fakt nepřeloží, když z té funkce padá "Maybe Double" a jiný funkce chce na vstupu "Double". A když už je těch Double trochu moc, tak abych se z toho nezbláznil, tak to najedné straně bude "Altitude" a funkce "ZkontrolujTeplotu" fakt Altitude na vstupu neakceptuje...

Spousta těchhle řešení je v Javě možná - obzvlášť, co se v Java8 inspirovali z FP a spoustu věcí dodělali - ale bez těch algebraických typů je to pořád strašně přes ruku.

andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #231 kdy: 24. 11. 2016, 02:54:30 »
V jave se problem toho typu resi tak, ze metoda bud vraci korektni non null hodnotu alternativne exception.
Tak jo - máš 20 čidel, a zajímají tě hodnoty z těch čidel, která nevrátí chybu.
Kód: [Vybrat]
mapMaybeM ctiCidlo seznamCidel
A tohle není žádný problém vytažený z paty - to je v "business logice" naprosto běžné procházet struktury, kde je polovina věcí "optional". A Java se streamama už to vcelku má a v dalších verzích Javy se to bude určitě zlepšovat. A když budeš mít kolem toho rozumnou infrastrukturu, tak najednou budeš moct třeba napsat:
Kód: [Vybrat]
mojeMereni.stream().flatMap(Option::stream).collect(toList());
Což už je skoro totéž, co v FP. Říkám si, proč Java z FP přebírá tuhle spoustu věcí, když jediná výhoda FP je immutabilita...

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #232 kdy: 24. 11. 2016, 08:06:11 »
V jave se problem toho typu resi tak, ze metoda bud vraci korektni non null hodnotu alternativne exception.
Tak jo - máš 20 čidel, a zajímají tě hodnoty z těch čidel, která nevrátí chybu.
Kód: [Vybrat]
mapMaybeM ctiCidlo seznamCidel
A tohle není žádný problém vytažený z paty - to je v "business logice" naprosto běžné procházet struktury, kde je polovina věcí "optional". A Java se streamama už to vcelku má a v dalších verzích Javy se to bude určitě zlepšovat. A když budeš mít kolem toho rozumnou infrastrukturu, tak najednou budeš moct třeba napsat:
Kód: [Vybrat]
mojeMereni.stream().flatMap(Option::stream).collect(toList());
Což už je skoro totéž, co v FP. Říkám si, proč Java z FP přebírá tuhle spoustu věcí, když jediná výhoda FP je immutabilita...
Když ono tohle vypadá, jako snaha udělat to, o čem mluvím, v jazyce, který to nepodporuje. Ten výše uvedený wrapper vypadá v jazycích podporující algebraická datové typy... zhruba takhle:
Kód: [Vybrat]
Maybe String

Mno, pokud budu mit nutkani neco takoveho pouzivat, tak pouziju java.util.Optional, nebo guava optional.
Cely priklad, na ktery reaguju je ale absolutne zcestny, vracet null jako indikator chyby je reseni idiota. V jave uz primo s metody zjistiVysku() vypadne excepsna.

Strkat kdejakou kravinu do syntaxe jazyka je spolehliva cesta do zadeke. Java si vystaci s classes, generiky, lambdami a anotacemi, reflection API + frameworky typu Spring. A samotna java ma par klicovych slov, ktere se dlouha leta nemeni. Co se meni, jsou standardni knihovny.
Tento pristup obcas generuje boilerplate, coz vubec neni na skodu, o to se stara IDE. Muj priklad s wrapperem je v Eclipse par hotkeys, new class - atribut - generate constructor using fields, generated toString a v pripade slozitejsich objektu generate getters/setters. Vysledek je krasne citelny kod, ne shluk paznaku, co pripomina poruchu na lince.

Osobne mi cele FP hype pripada jako vzboureni lidi, co nepochopili OOP. Pak se museji vymyslet kraviny typu "maybe string", aby se vyresily problemy, ktere FP prinasi. Jedina viditelna vyhoda je snadna paralelizace immutable funkci, jinak to vidim jenom ciste jako hype.

Mně tahle kritika spíš přijde jako remcání lidí, co nepochopili ani OOP ani FP.

v

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #233 kdy: 24. 11. 2016, 08:12:01 »
tak ještě pochopit vztah mezi FP/OOP a typovým systémem (nápověda: python/java, clojure/haskell)

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #234 kdy: 24. 11. 2016, 08:41:01 »
To je hlavne benchmark, tj. test vykonu (hruby vykon, propustnost, atd.), ne test podporovanych ficur z JS. Takovy JS se muze valet na jakekoliv strance. (Ostatne v JS se uz zacinaji i psat hry, takze i 3D vypocty nejsou nejak nerealne.)

A k cemu je mi, jako userovi, nejaky benchmark, ktery s realnym zivotem ma starou belu spolecneho a subjektivne vychazi PM nejrychleji? Ferrari ma dle benchamarku vetsi zrychleni z 0 na 100, nez Honda Civic. Dosahuje take vyssi rychlosti. Dostanu se s Ferrari rychleji do samosky nez s Hondou Civic? Ne, protoze budu porad davat pozor, abych ten kram neposkrabal, na silnici mam omezeni maximalni rychlosti, i s Ferrai musi cekat na cervenou a jeste se budu modlit, aby ten kram cestou nezhebnul.

Problem je, ze ta Honda Civic se ani nerozjede - JS engine Pale Moonu havaroval, ne ze by byl jen pomaly a to je problem i pro normalniho uzivatele, protoze podobne konstrukce jako v tom benchmarku se mohou pouzivat i v JS knihovnach pro optimalizace rychlosti. Navic proc bych si mel volit tu pomalou Hondu, kdyz mam zadarmo lepsi alternativu? V krakenu dava Chromium s addony (bez by mohlo byt jeste rychlejsi) 899ms a PM 1337, tzn. skoro o polovinu pomalejsi.

Citace
Jinak vy jste debugoval ten JS, abyste overil, ze chyba je v JS engine a ne v JS dane stranky, ktera se neprojevuje v jinych browserech?

No, v FF a Chromiu to neprekvapive funguje, takze chybu v minoritnim prohlizeci nikdo resit nebude.

Aha. A to ma jako byt dukaz, ze chyba je v JS engine PM a ne v JS dane stranky? Kdysi se lidi rozcilovali, ze pulka webu nechodi ve Mozille, protoze tam maji IE only prasarny a web koderi jim odpovidali, ze je to nezajima, ze v IE to chodi. Meli teda 5 ruznych verzi, kazdou jinak zkurvenou pro jiny IE, ale chodilo to.

To neni dukaz, ze PM ma spatny JS engine, ikdyz je to pravdepodobne pravda, protoze je to jen prehistoricky FF. Hlavni problem je, ze pro PM ale nikdo nebude psat spesl verzi, kdyz PM nema zadny meritelny podil na trhu.

Citace
Jen demonstrujete to, co jsem mel na mysli - nikdo nebude testovat pro 7 (nebo kolik) let stary Firefox, ktery pouziva par tisic (nebo dokonce desitek tisic?) lidi.

To, ze nekdo netestuje pro minoritni prohlizec, opravdu neznamena, ze jeho JS je v poradku. Mozna je, mozna neni. Treba proto, ze JS je jedna z veci, kde muze byt spousta prasaren, ktere projdou jen proto, ze majoritni prohlizece casto obsahuji hacky, ktere obchazeji chybu v jinem majoritnim prohlizeci, typicky IE, dnes asi i Chrome. Je tedy sklidem mozne, ze PM podobne hacky nema nebo chybi prave ten jeden, ktery je potreba. Stejne tak je mozne, ze PM bsahuje bug. Dokud to nedebugujete, nedelejte zavery.

Myslim, ze tyto casy jsou uz pryc. FF pokud vim tak zadne hacky kvuli Chromu nepridava, akorat by se to rozbilo, az by to v Chromu opravili. Casy IE jsou dikybohu nenavratne pryc. Navic proc by stranka s benchmarky mela mit vice verzi? To jako ze chteji ty benchamarky smelit? :D

Ok, podival jsem se na to a "necekane" jsem zjistil, ze PM nepodporuje performance counters. Takze je to chyba Pale Moonu.

Citace
Ano, 2 ze 3 webu, co jsem zkousel a v jinych prohlizecich funguji, se me nenacetly spravne. U te html5 testovaci stranky zkolaboval JS pro porovnavani, ne nejaky test. V PM nefunguje bezny JS pro rozbaleni tabulky (po kliknuti na compare).

Jiste. Vybral jste si 2 weby, na ktere 999,999 promile populace nikdy nevleze.

Za nejake rozsahlejsi testovani mi to nestoji, kdyz PM selhal na prvnich par webech (na prvnich pozicich v googlu - zadne nezname tedy asi nebudou), kde majoritni prohlizece funguji v poradku.

Citace
Pak ale nebrecte po forech, ze vam stranky nefunguji, kdyz mate browser s polamanym JavaScriptem (nepsal jste i sem na roota?). A az se vam (nebo mozna se to jiz deje) budou rozsypavat stranky kvuli spatne podpore HTML5 a noveho CSS, tak si taky budete rikat, jak je to krasne rychly, ten Pale Moon, protoze v sobe nema harampadi, kvuli kteremu by se stranka vubec zobrazila? Zrovna to WebRTC, jestli se nepletu, resi audio i video komunikaci, sdileni plochy atp. V Chromu to funguje hezky. Neni pak potreba pro obcasne uzivatele instalace dalsi aplikace, ale vsechno funguje ciste v prohlizeci - staci poslat link a potvrdit.

Ja  nebrecim. Vsimnete si, ze ja naopak rikam, ze mi chodi to, co potrebuji. Vy se mne snazite presvedcit, ze mi vlastne nechodi nic. A jestli se casem bude sypat html5 a CSS nebo ne, se teprv uvidi a az se uvidi, tak se to bude resit. On i PM ma jakysi vyvoj, ale na to, abych rekl jak si poradi, bych musel do supliku pro kristalovou kouli.

Ono se to uz nejak sype, akorat to neni asi moc viditelne - na tom jednom JS benchmarku uz PM vyhazoval chyby v konzoli, ze nezna nejake atributy - asi html5. IMO ted vam to funguje jen proto, protoze jeste hodne stranek ma kvuli starym IE fallbacky a detekce kompatibility. Az si reknou, ze nebudou podporovat 5 nebo 10 let stare IE, coz si myslim je blizko, tak se zacnou sypat i velke stranky typu youtube.

Citace
Jo, tak to neporadim. Jste budto v mensine, nebo moc vybiravy. Ale kdyz je vykonejsi i kdejaky usmudlany mobil, tak se nemuzete divit, ze mate problem rozjet spoustu veci primarne urcenych pro desktopy, ktere byvaji podstatne vykonejsi nez ty mobily.

Nemam. Ja jednoduse nepouzivam aplikace v Jave. Problem maji ty aplikace, ne ja. A k nicemu je nepotrebuju, existuji vyhovujici alternativy.

Tak laskave nenadavajte na aplikace v Jave nebo jejich vyvojare, kdyz spadate do minoritni kategorie "hw horsi nez mobil" - chyba je u vas.

Jinak mi muzete poradit, kde sezenu vykonejsi 64 bitovou nahrazku za Eee PC. Tedy maly, idealne 10" display, klavesnice nikoliv chicletova, ale klasicka, se slusnym potiskem, ne totalne aususovym sitotiskem. Barva bila nebo jina svetla, display *matny*.

V hw se moc nevyznam a v noteboocich uz vubec ne. Ale mozna by stalo za to zkusit zalozit vlakno, jestli nekdo neco nedoporuci (tady to urcite zapadne, kdyz jsme stale v off-topicu).

Citace
Tablet s klavesnici je maly notebook, ne? :) Ale vazne, k tabletum snad lze prikoupit bezdratova klavesnice. A rootly Android by nestacil? Pripadne nekteri vyrobci nabizi Android bez predinstalovanych Google veci. Ciste Linuxove tablety, abych pravdu rekl, ani nevim, ze se vyrabeji. Jen tak ze zvedavosti, k cemu je vlastne Linuxovy tablet? Vzdyt tam ani nepojedou vsechny ty aplikace pro Android, nebo to lze nejak zprovoznit? Nevim, prijde me, ze tam musi byt hrozny nedostatek softu.

Ne, tablet ani s klavesnici, at dratovou nebo bezdratovou, opravdy neni nahrazkou notebooku. Tablet je dobry na sledovani Youtube na hajzlu pro lidi se zacpou. Android nechci, at s Googlem nebo bez, jako nahrazka Linuxu je to dost bida. Aplikace Androidu me nezajimaji.

Aha, ja myslel, ze chcete neco jako ten M$ tablet s klavesnici, notebook jsem za tim nevidel. Jiste, Android neni zadna vyhra, pokud ho zamyslite pouzivat jako Linux. Ale tam, na co je cileny - mobily a tabla, si myslim, ze pro bezne uzivatele v pohode dostacuje. Je hezke, ze diky tomu muzeme BFUckam, co ohrnuji nos nad Linuxem pripomenout, ze ho (nebo jeho blizkeho pribuzneho) asi uz davno pouzivaji :) .

balki

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #235 kdy: 24. 11. 2016, 17:44:48 »
tak ještě pochopit vztah mezi FP/OOP a typovým systémem (nápověda: python/java, clojure/haskell)

Python Java a haskell su multiparadigmove. Clojure je funkcionalny jazyk.

Python a clojure su dynamical typing a strong typing. Haskell neviem (podla "hintu" bude static typing). Java je static  a strong typing. Vztah je tam ziadny.

Taktiez FP a OOP su dve doplnajuce sa paradigmy. OOP vznikalo v Lispe a Smalltalk je lispom inspirovany. Ono to je cele zamotane.

j

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #236 kdy: 24. 11. 2016, 19:04:24 »
Jenom? Ja mel dojem, ze chteji jen asi 10 programovacich jazyku, SAP a aspon 5 databazovych systemu + k tomu oprasovat HW a delat suport na telefonu. Ve vsem tak 15 let zkusenosti a maximalne 30 let veku.
A nabizej za to velmi dobry plat 15k hrubyho.

...A když ji pak třeba pošlu do nějaké funkce "mámVysunoutPodvozek",...
...a to tak, že hodně věcí není potřeba testovat, protože se nemůžou stát....
Takovym letadlem bych teda letet vazne nechtel. Kolik ja uz videl takovych veci co se prece nemuzou stat ...0xAe3F ... je prece taky cislo zejo.


...
Mozilla pracuje velice uspesne na reimplantaci hromajzla do firefoxu a tim pohrbeni ff. Od pristiho roku pohrbej addony. A to bude nejspis taky posledni hrebik do ty rakve. Palemoon naprosto vpohode funguje, na naprosto kazdym aspon trochu normalnim webu. Funguje i daleko lip nez FF ... a mozna prave proto, ze spoustu cipovin neumi vubec, coz je jedine dobre.

andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #237 kdy: 24. 11. 2016, 23:00:25 »
...A když ji pak třeba pošlu do nějaké funkce "mámVysunoutPodvozek",...
...a to tak, že hodně věcí není potřeba testovat, protože se nemůžou stát....
Takovym letadlem bych teda letet vazne nechtel. Kolik ja uz videl takovych veci co se prece nemuzou stat ...0xAe3F ... je prece taky cislo zejo.
Tak to vezmi jinak: ověřování modelů je jedna z věcí, které se běžně provádějí. A v některých těchhle jazycích v tom typovém systému v podstatě vytváříš model a překladač ti ho ověřuje.

V Javě třeba do proměnné "int" nepřiřadíš nějaký "string". Má smysl něco takového testovat? Ani nevím, jak bys to dělal - on se takový program prostě nepřeloží.

Existuje způsob, jak některým typovým systémům vysvětlit, co to je validní červeno-černý strom. Podobně, jako proměnná "int" nemůže obsahovat string, tak proměnná "RedBlackTree" pak nemůže obsahovat nic jiného, než validní strom. Má smysl testovat, zda po operacích "insert/delete" je výsledkem validní červeno-černý strom, když ten nevalidní prostě nejde v tom typu vůbec zkonstruovat? Má smysl testovat, zda po insertu je výsledkem strom, který obsahuje všechny prvky jako ten před insertem + ten nový, má smysl testovat obdobně delete - ale přestalo mít smysl testovat validitu toho stromu.

Tohle je přesně způsob, jak ten software do letadel psát.

j

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #238 kdy: 25. 11. 2016, 01:02:30 »
A co nechapes na tom ze 0xAe3F je int a do intu to vpohode das, a muze a taky nejspis bude to znamenat, ze to tvoje letadlo prave leti stremhlav k zemi?

Kdyz to zada skladnik jako pocet, je to totiz porad jeste sranda ... teda pobavim se spolecne s tim skladnikem na tema, ze programator je kreten.

andy

Re:Nejžádanější programátorské znalosti na českém pracovním trhu
« Odpověď #239 kdy: 25. 11. 2016, 08:24:57 »
A co nechapes na tom ze 0xAe3F je int a do intu to vpohode das, a muze a taky nejspis bude to znamenat, ze to tvoje letadlo prave leti stremhlav k zemi?

Kdyz to zada skladnik jako pocet, je to totiz porad jeste sranda ... teda pobavim se spolecne s tim skladnikem na tema, ze programator je kreten.
Nevím, jakou to má souvislost s tím, co jsem napsal. Když funkce bere "neprázdný seznam", a prostě to nejde s prázdným seznamem zavolat, tak asi nemusím testovat, co se stane, když to zavolám s prázdným seznamem, když se to ani nepřeloží....
Psal jsem o tom, že to vede k tomu, že mnoho testů nemusíš dělat - nikoliv k tomu, že nemusíš dělat žádné.