abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 3
    dnes 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (17%)
    Celkem 762 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Jak nadefinovat jedne funkci 2 názvy

    17.2.2012 20:45 Libor Kučera
    Jak nadefinovat jedne funkci 2 názvy
    Přečteno: 1109×
    ahoj, mám funkci obsah(); a potřebuji, aby se mi pustila, i když zavolám funkci uvnitr(); jde to prosím nějak nadefinovat? Předem děkuji
    function obsah(){
    }
    
    obsah();

    Řešení dotazu:


    Odpovědi

    17.2.2012 21:07 camel1cz | skóre: 25
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy

    Není úplně jasné jaký to je jazyk, ale pokud PHP tak class_alias

    17.2.2012 21:28 camel1cz | skóre: 25
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Pardon - trochu sem ujel. Podobný problém sem řešil pro třídy... beru zpět.
    17.2.2012 21:29 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Možná nechápu otázku, ale co vám brání tu druhou funkci napsat tak, že prostě jen zavolá tu první?
    17.2.2012 21:49 Libor Kučera
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Brání mi v tom hlavně složitost celého projektu, ve kterém se skládá název funkce z proměnné v url
    pavlix avatar 20.2.2012 10:20 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Nevím, třeba má někdo křišťálovou kouli. Ale mně osobně v jakékoli rozumné odpovědi brání to, že tvá otázka právě neobsahuje účel celého konání.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    17.2.2012 21:30 voda | skóre: 28
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    function uvnitr() {
        obsah();
    }
    
    ?
    17.2.2012 21:54 Libor Kučera
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    tohle jsem taky zkoušel, ale nefunguje global :-(
    function obsah() {
    global $foo;
    $foo = 'string';
    }
    
    
    function uvnitr() {
    obsah();
    }
    
    zavolam obsah(); // $foo existuje
    zavolam uvnitr(); // $foo je NULL
    Jinak jedná se o PHP ;)

    17.2.2012 22:06 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    K čemu je dobrý global? V PHP jsem ho nepoužil už mnoho let. Mám za to, že je zbytečný.

    Tu proměnnou musíš nejprve definovat mimo funkci. Pak bude global fungovat.

    Vůbec nechápu, čeho chceš vlastně docílit. Statické proměnné v objektu? Tak proč ji tak neuděláš?
    17.2.2012 22:26 Libor Kučera
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Potřebuji dostat mimu tu funkci jednu proměnnou která bude dostupná pro ostatní kód bez nutnosti opětovného volání té funkce..
    18.2.2012 16:50 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Je to velmi špatný příklad, ale lze to takto:
    <?php
    
    $odpoved = NULL;
    $spravna_otazka = NULL;
    
    function HlubinaMysleniAzemeVjednom(){
      global $odpoved,$spravna_otazka;
      //Kód, který spočítá odpověd na otázku: „život vesmír a vůbec“
      $odpoved = 42;
      //Kód, který spočítá správnou otázku
      $spravna_otazka = 'Co dostanete když vynásobíte šest devíti?';
      return "Spočítáno:";
    }
    
    echo "Před voláním fce:<br />\n";
    echo "  Odpověď: $odpoved<br />\n";
    echo "   Otázka: $spravna_otazka<br />\n";
    echo GrosseBigFunkce2000(),"<br />\n";
    echo "  Odpověď: $odpoved<br />\n";
    echo "   Otázka: $spravna_otazka<br />\n";
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 17:01 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    18-tý řádek změň na:
    echo HlubinaMysleniAzemeVjednom(),"
    \n";
    (…snaha být vtipný si vybírá svou daň…)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    xkucf03 avatar 23.2.2012 19:50 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A jedenáctý na:
    $spravna_otazka = 'Co dostanete když vynásobíte šest sedmi?';
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    23.2.2012 23:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Jsem si jist, že ten je správně.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 17:08 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Také mi připadá, jako kdybych pročítal programátorské porno. Řeší to původní dotaz a je to hnusně napsáno přesně tak jak to bylo hnusně požadováno. Nedovedu si představit, že bych se s tím setkal ve funkci, která má 2000 řádek. Takto se programovalo někdy před 40 lety, ale když to Libor tak chtěl...
    17.2.2012 22:16 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Ještě přidám jednu doporučení: Zapomeň, že někdy existovalo v PHP klíčové slovo global. K ničemu ho potřebovat nebudeš.
    18.2.2012 13:47 loki
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Uz samotne klicove slovo global znamena, ze si zadelavate na problemy v budoucim udrzovani kodu. Ale vesele si praste, to je vase vec. Nedalo mi to:

    Soubor x.php:
    <?php
            function x() {
                    global $a;
                    $a = $a + 5;
            }
    
            function y() {
                    x();
            }
    
            $a = "1";
            
            echo $a . "\n";
            x();
            echo $a . "\n";
            y();
            echo $a . "\n";
    ?>
    
    Vystup skriptu v cli:
    loki@moneymaster:/tmp$ php x.php 
    1
    6
    11
    
    Jedine, co tim chci rict, ze dle ocekavani funguje i takoveto obalovaci volani funkce.
    17.2.2012 22:24 Libor Kučera
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Představte si, že mám funkci o 2 000 řádku kódu a někde dole mimo tu funkci potřebuji vypsat obsah proměnné která se už ale jednou pracně spočítala v té obrovské funkci. To mám jako znova volat tak obrovskou funkci která mi vrátí nějakou debilní hodnotu? Nebo mám psát další funkci čistě pro tak stupidní výsledek? To si děláte chlapci doufám prdel, ne?
    17.2.2012 22:33 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Já mám spíš pocit, že si děláš prdel z nás. PHP neumíš a vytahuješ tady na nás nějakých 2000 řádek. Beztak je z nich určitě 1500 zbytečných. Ta funkce ti neumí předat všechny výsledky naráz nebo co? To musíš ten kód takto prasit?

    Tak si tu funkci dej jako metodu do objektu, tu proměnnou si dej jako public a máš to.

    Funkce, která má 2000 řádek, je nesmysl. Nauč se programovat.
    17.2.2012 23:11 Alf | skóre: 18
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy

    Prdel je mít funkci o 2000 řádcích. Refactoring je to magické slovo, které vám pomůže.

    Na rozumnou odpověď je tu dost málo informací, tu debilní hodnotu si tedy musíte někam uložit. Global je dost divoké řešení. Jak ta funkce vrací debilní hodnotu? Přes return? Pokud ano, kde voláte tu funkci? Nebylo by lepší v tomto bodě si hodnotu uložit pro další použití? Funkce je v nějaké třídě? Pokud výsledek potřebujete použít víckrát a je neefektivní funkci volat přímo dokola, musíte s tím počítat v návrhu. Existuje velké množství řešení a bez potřebných informací to tu nikdo nemá chuť řešit.

    18.2.2012 11:41 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Možná, že začínám chápat tvůj požadavek. Tu přerostlou funkci si dej do nějaké třídy jako metodu. Deklaruj si ve třídě (mimo tu funkci) potřebné proměnné, které chceš vidět vně. Uvnitř metod se na ně můžeš odkazovat stylem $this->promenna. Z vnějšku se pak na ně můžeš odkazovat stylem $objekt->promenna.

    Ale jak už tady bylo několikrát napsáno, 2000 řádková funkce je nesmysl a ukazuje to spíš na programátorovu neschopnost dekompozice. Pochopil bych to u továrny, která má vybrat, který z 2000 objektů má vytvořit, ale spíš mám podezření na velmi neefektivní špagetový kód, samé if ... elseif ... elseif ... To je prostě nutné předělat.
    18.2.2012 12:13 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Mám funkce, které počítají věci a nemají mají 2k řádků akorát proto, že jsem z nich kvůli přehlednosti části odfaktoroval do samostatných funkcí, i když se nikde jinde nevolají a kompilátor je zase všechny inlinuje zpět do jedné obří. Některé algoritmy holt nejsou na tři řádky.

    Naopak u továrny taková délka funkce většinou indikuje neschopnost programátora abstrahovat a representovat data jako data namísto kódem.
    18.2.2012 12:38 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Pro vystrčení kusu kódu do funkce obvykle nerozhoduje fakt, jestli tu funkci použiji jednou nebo víckrát, ale spíš aby funkce reprezentovala nějaký logický celek.

    S tou továrnou souhlasím, asi jsem nevybral ten správný příklad. Většinou v ní mám jen pár jednotek až desítek položek, které se do databáze strčit nedají.

    Možná si Libor jen neuvědomil, že funkce v PHP může vracet i více než jednu skalární hodnotu, např. pole nebo objekt.
    18.2.2012 20:48 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Logický celek může být tak funkce procedurálně, tedy je to jasně pojmenovatelný logický krok, překážkou rozdělení ale bývá komplexní stav celé věci. Samozřejmě se z funkce dá udělat třída, stav držet v datových členech, aby se nemusel explicitně předávat, ... Milovníci faktorizací a frameworků budou jistě nadšeni a někdy to takhle je vhodné udělat, ale obecně aby se pak programátor modlil k bohu kompilace, aby mu z toho kompilátor opravdu nakonec poskládal jednu velkou funkci a počítalo to stejně rychle jako předtím...
    18.2.2012 20:49 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    s/být tak funkce/být ta funkce/
    19.2.2012 09:05 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    PHP je interpretr. Sice se před spuštěním kompiluje, ale i tak pro něj platí trochu odlišná pravidla optimalizace.
    19.2.2012 12:12 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    OK, můj příklad nebyl z PHP, v tom by výpočty psal leda tak ... programátor v PHP ;) Ale reagoval jsem primárně na tu 2k-řádkovou funkci.
    19.2.2012 12:52 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Taková 2000řádková funkce se dá napsat celkem snadno. Udělám si sekvenci if ... elseif ... elseif ... řekněme 20x a v každé je nějaká 100řádková šablona na zobrazení HTML. Z pohledu laika normální věc, programátor šílí. I 20 různých matematických výpočtů po 100 řádcích může vypadat OK, ale není.

    Myslím si, že v PHP se dají psát i výkonné programy. Sice nebudou tak svižné, jako kdyby byly napsány třeba v C, ale rychlost vývoje často tento nedostatek vynahradí. Na kritická místa se dá využít PECL.
    18.2.2012 16:31 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Si děláš prdel ty, ne? Jestli je to lokální proměnná té fce, jak ji chceš vytáhnout ven, když už neexistuje?
    Jestli ta big große funkce tu hodnotu vrací, tak si ji ulož do nějaké (globální) proměnné a použij ji tam kde potřebuješ.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 17:29 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    To máš těžké. Jestli se Libor učil prvně programovat v Basicu nebo ve strojáku, tak je docela pochopitelné, že si ty zakořeněné nešvary chce vzít i do PHP. Můžeme být vlastně rádi, že se nás neptá, jak se v PHP používá goto. On to možná ví, já ne. Pomalu už zapomínám i jak se píše cyklus for...
    18.2.2012 17:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Když prdel tak prdel - nedalo se jinak :-)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 17:45 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Stejně mi připadá, jako kdyby Libor a Marek byli jedna osoba.

    http://www.abclinuxu.cz/poradna/programovani/show/354188

    Marek nám ukázal kousek svého špagetového kódu, Libor skoro nic. To se pak těžko radí.

    Skoro bych se vsadil, že těch jeho 2000 řádek bych dokázal přepsat tak, aby výsledný program byl rychlejší, měl pod 500 řádek a velikost souboru čtvrtinovou.
    18.2.2012 17:53 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Jestli se Libor učil prvně programovat v Basicu nebo ve strojáku, tak je docela pochopitelné, že si ty zakořeněné nešvary chce vzít i do PHP

    Chtěl bych tyhle mudrce vidět, v čem by se v 80. letech učili programovat oni…

    18.2.2012 17:57 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    V 80. letech jsem programoval v Basicu, Fortranu a Pascalu. I v tom Pascalu bylo zcela jasné, že globální proměnou musím deklarovat vně funkce.
    18.2.2012 19:05 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Obávám se, že jste nepochopil pointu. Pointa je, že pokud někdo začínal na Basicu a strojáku, pak téměř jistě proto, že neměl jinou možnost. Dělat kvůli tomu ramena a označovat ho za doživotně méněcenného je projev ubohosti a hlouposti.
    18.2.2012 19:40 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Obávám se, že jsi nepochopil moji pointu. I ten, kdo programoval tenkrát v Basicu, se může naučit dnešním metody programování. Přenášet si tehdejší návyky do dnešních programovacích jazyků je hloupost.

    I v tom strojáku se ve funkci hrabalo do globálních proměnných, nikoli naopak. Tato pravidla zůstávají. Pokud se to někdo snaží dělat obráceně, je nutné mu dát jasně najevo, že tudy cesta nevede. Jestli chceš, můžeme ho dál nechat foukat tabákový kouř do vody, ale zlato tím nevyrobí.

    Jestli ti to uniklo, tak se z Libora pokoušíme vydolovat, k čemu tu popsanou hovadinu potřebuje, abychom mu dokázali kvalifikovaně poradit. A protože se už dlouho neozval, tak si tady z toho aspoň děláme srandu.
    18.2.2012 19:47 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Obávám se, že jsi nepochopil moji pointu. I ten, kdo programoval tenkrát v Basicu, se může naučit dnešním metody programování. Přenášet si tehdejší návyky do dnešních programovacích jazyků je hloupost.

    A naopak: to, jak někdo prasí dnes, nemá moc společného s tím, na jakých jazycích začínal. Zvlášť ne v případě, že by ty jazyky nebyly jeho volbou ale spíš jen výsledkem okolností.

    18.2.2012 20:35 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Jenže není tak docela pravda. Naneštěstí.

    1. Jen málo programátorů dokáže psát ve vetším počtu jazyků způsobem odpovídajícím tomu jazyku. Vetšinou píší ve svém navyklém jazyce, protože podle něj mají vytvořen mentální model, jak věci fungují, jen přitom používají syntaxi toho jiného jazyka, ve kterém kód fyzicky je (extrémní, ale i tak celkem častý je syndrom jednoho jazyka, kdy nedokáží do jiných jazyků ani efektivně transformovat tu syntaxi).

    2. Programátoři tento svůj navyklý jazyk zřídka mění, vyžaduje to většinou, aby byli vystaveni nebo se oni sami cíleně vystavili jazyku, ve kterém se píše úplně jinak, a to intensivně a nekompromisně.

    Je-li přeučení podle bodu 2 úspěšné a zahrnou nové techniky -- objektové, funkcionální, cokoli -- do mentálních modelů, tak je začnou používat i v jazycích, kterými psali předtím, a které je třeba ani ,tabulkově` neumějí. Jsou na to studie...
    18.2.2012 20:58 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Možná si to jen namlouvám, ale prostě nesouhlasím s představou, že kdo začínal v Basicu, musí už "basicově" myslet do smrti. Naopak, řekl bych, že trocha zkušenosti se strojákem je něco, co by spousta dnešních namachrovanců odkojených Javou potřebovala jako prase drbání.
    18.2.2012 21:15 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    trocha zkušenosti se strojákem je něco, co by spousta dnešních namachrovanců odkojených Javou potřebovala jako prase drbání
    Mohu se zeptat, proč si to myslíte?
    18.2.2012 21:58 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Protože člověk, který nikdy nic jiného než jazyk typu Javy nepoznal, má nezřídka tendenci pohlížet na něj jako na nějakou abstrakci s tím, že o vykonání programu a jeho optimalizaci se jakýmsi magickým způsobem postará překladač, přičemž ten to udělá nejlépe, jak to jen jde, a nemá smysl se mu snažit pomáhat. Jenže tak to pořád ještě není a ještě dlouho to tak nebude (pokud vůbec kdy).
    18.2.2012 23:42 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Na druhou stranu je zdrojový kód v některých jazycích tak vzdálený odpovídajícímu strojovému kódu, že Vám znalost strojového kódu ke zrychlení programu nijak nepomůže.
    19.2.2012 01:30 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    I tak je dobré nezapomínat na to, že program se nakonec transformuje na nějakou posloupnost instrukcí pracujících s daty uloženými určitým způsobem v paměti.
    19.2.2012 13:12 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    I je-li tak vzdálený (např. u shellu, SQL, XSLT, TeXu, ..., funkcionálních jazyků, ...), je zapotřebí vidět o úroveň níž, tedy mít představu, jak zhruba budou různé konstrukce realizovány.
    18.2.2012 22:05 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    ... kdo začínal v Basicu, musí už "basicově" myslet do smrti...
    To tady přece nikdo netvrdí. Jen je obtížné přejít na jiné paradigma a mnoho programátorů to jednoduše nezvládne. Sám o sobě vím, že funkcionální prvky se snažím nacpat do všech programů, které píšu. Proč? Protože se mi to tak líbí.

    Libor možná do programů tlačí prvky imperativní. Proč? Protože je na to zvyklý a nechce to měnit. A narazil. A chce vědět, jak to udělat v tom jeho imperativním stylu. My mu to rozmlouváme a snažíme se mu ukázat, že to jde jinak. Také někteří z nás ukázali, že to jde i tak, jak to chce.

    Jenže Libor tu teď není nebo to jen čte a chechtá se našim sporům.

    Každý programátor inklinuje ať vědomě či nevědomě k nějakému programovacímu stylu, který jen velmi neochotně mění při přechodu na jiný jazyk. Některé jazyky zavrhne rovnou, jiné používá jinak, než bylo původně zamýšleno. Někdy je to dobře, jindy špatně. Mnozí se s novým paradigmatem sžijí velmi rychle. K původnímu se vůbec nechtějí vracet a naopak do původního jazyka se snaží zavést nově poznané techniky.
    19.2.2012 12:07 l4m4
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Nikdo tu myslím netvrdí, že musí (to bych taky psal dodnes v BASICu). Ale změna myšlení není tak snadná ani častá, jak presentuješ.
    19.2.2012 19:19 Radovan
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Tak třeba já dodnes píšu v BASICu, ale jen když potřebuji něco velmi jednoduchého velmi rychle :-D

    A fakt je že některé basicové věci mám natolik v krvi, že mě někdy nejdřív automaticky napadne jak bych to udělal na Didaktiku, a pak musím přemýšlet jak to vyřešit jinak. On ten SinclairBASIC byl prostě nejlepší...
    19.2.2012 19:31 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Hm… Chystal jsem se napsat, že ti, kdo byli okolnostmi donuceni začínat v Basicu, buď už dávno neprogramují, nebo od něj rádi utekli kamkoli jinam, jakmile měli tu možnost, takže pro ně změna filosofie žádný velký problém nebyl. No, asi holt ne všichni… :-)
    18.2.2012 19:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    V 80 létech (spíše ke konci) 1. na kalkulačce, pak v C, pak C++, pak v Pascalu a pak mě lízl Fortran (ve Fortranu bych tomu programování ani neříkal.)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 19:06 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Je potřeba mít na paměti, že už třeba mezi roky 1988 a 1990 je v tomhle ohledu propastný rozdíl.
    18.2.2012 19:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Jo je, - už jsem se níže korigoval…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    18.2.2012 19:09 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    To jsem přehnal, začalo to v 89, ale programování to bylo až tak 91-92 :-)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    19.2.2012 22:03 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Díky tvé zmínce o Fortranu jsem si ho znovu vyzkoušel. Dal jsem mu stejnou úlohu, jako C. Fortran byl rychlejší a jeho zápis přehlednější, i když jsem ho přepisoval z C. Asi ho budu zase používat.
    19.2.2012 22:53 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Napsal bych to ještě v Javě, pak bude ve srovnání jedno jestli Fortran nebo C. :-)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    19.2.2012 23:22 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Na Javu se chystám a také si myslím, že časy Fortranu a C mi pak budou připadat skoro stejné :-)

    Zkusil jsem teď i PHP, bylo "jen" 10x pomalejší. Odhaduji, že Java bude někde mezi, ale kdoví?
    20.2.2012 00:01 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Tak jsem to přece jen přepsal i do Javy a kupodivu vyšla z toho docela dobře. Výsledek byl sice ještě o něco pomalejší než ve Fortranu či C, ale na pomluvy to nestačí. To bych těch testů musel napsat víc.
    20.2.2012 17:41 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Škoda :-(
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    20.2.2012 18:03 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Proč škoda? Výsledek mi zcela jasně naznačil, že Java pomalá není. Teď už vím, že pomalost mnohých javovských aplikací je způsobena neefektivně napsanými knihovnami, případně jejich nevhodným použitím.

    Programy se dají prasit v jakémkoli jazyku, Javu nevyjímaje. Skoro mám pocit, že Java k tomu svádí. A naopak i ve Fortranu je možné psát nádherně strukturované programy.
    20.2.2012 19:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Proč škoda?
    …sem si chtěl zatrollovat, bo ji nemám rád a stále musím být ostražitý, když máme něco nového implementovat a je to v Javě.
    Důkazy o tom, že to lze i v Javě rychle a efektivně jsou, bohužel špatných zkušeností mám více…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    20.2.2012 22:26 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Javu také nemám rád. Je hrozně ukecaná a bez té hromady omáčky se neobejde. Napsat v ní "jen tak" kus kódu, který chci později refaktorovat, není jednoduché. Než splním všechny požadavky kompilátoru, myšlenka je v háji. A kryptické hlášení některých chyb tomu dodává korunu. Poslední hlášku, kterou mi zahlásila při spuštění, bych bez Googla asi nerozluštil.

    Těm špatným zkušenostem také věřím. Také mi vadí, že při ladění aplikace ji musím přeložit novou, starou ukončit, novou spustit,... Je to příliš mnoho úkonů kvůli třeba opravě jedné metody. PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.
    pavlix avatar 20.2.2012 23:45 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A při troše smůli zkurvíš živá data a při hovoru se zákazníkem pak budeš držet telefon metr od ucha.

    Ale jo, rozumím ti naprosto. A přesně proto nemám rád PHP. Ne že by se v tom nedalo nic udělat, to ne (stejné platí pro Javu), ale ten jazyk IMO přímo vybízí k tomu, aby s ním člověk pracoval jako „typický PHPkář“. Tedy člověk který produkuje celou hromadu chybného kódu, kterou později koriguje za pomoci koncových zákazníků.

    Vím o co jde, taky jsem takhle kdysi pracoval.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    21.2.2012 07:42 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Na model se zas tak často nesahá, testování mimo produkční data je také dobrý zvyk. To platí snad ve všech jazycích.
    pavlix avatar 21.2.2012 11:37 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Na model se zas tak často nesahá, testování mimo produkční data je také dobrý zvyk. To platí snad ve všech jazycích.
    V podstatě máš pravdu, ale na druhou stranu tvůj příspěvek de facto vůbec nesouvisí s tím mým.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    21.2.2012 17:26 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Reagoval jsem jen na první odstavec.

    Nemyslím si, že bych byl typický PHPkář. Necítím se tak. Stačí, když se podívám na cizí PHP kód a dělá se mi špatně.

    Jestli někdo produkuje hromadu chybného kódu, je jedno, v jakém jazyku ho píše. Kompilátor mu v tom nezabrání. Testy ano, ale ty se dají psát pro každý jazyk.
    pavlix avatar 21.2.2012 18:57 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Reagoval jsem jen na první odstavec.

    Vážně?
    Nemyslím si, že bych byl typický PHPkář. Necítím se tak. Stačí, když se podívám na cizí PHP kód a dělá se mi špatně.
    Já zase reagoval na: PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.

    A úplně živě si to umím představit, to ladění za provozu. Ale fakt je, že u některých časově nekritických věcí se to dá.
    Jestli někdo produkuje hromadu chybného kódu, je jedno, v jakém jazyku ho píše. Kompilátor mu v tom nezabrání. Testy ano, ale ty se dají psát pro každý jazyk.
    Však ono taky nejde ani tak o jazyk, jako o způsob jeho použití. Faktem je, že PHP se tradičně používá jako šablonovací systém. A když se kód píše přímo do šablon, tak podle toho výsledek vypadá.

    Zpět k tomu živému ladění. To je podle mě možné jako v PHP, tak v Javě, tak v C. I když třeba v Pythonu se to bude dělat lépe než v kterémkoli z předchozích (hint: interaktivní interpret).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    21.2.2012 22:29 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A úplně živě si to umím představit, to ladění za provozu.
    Vážně?
    Faktem je, že PHP se tradičně používá jako šablonovací systém. A když se kód píše přímo do šablon, tak podle toho výsledek vypadá.
    Skutečně si myslíš, že to dělám zrovna takhle?
    Zpět k tomu živému ladění. To je podle mě možné jako v PHP, tak v Javě, tak v C. I když třeba v Pythonu se to bude dělat lépe než v kterémkoli z předchozích (hint: interaktivní interpret).
    A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?
    pavlix avatar 21.2.2012 23:52 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Vážně?
    Řekněme z vlastní zkušenosti? :)
    Skutečně si myslíš, že to dělám zrovna takhle?
    Nemám tušení.
    A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?
    To myslíš jako při pohledu na následující?
    PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.
    Ne.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    22.2.2012 00:15 Kit
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?
    To myslíš jako při pohledu na následující?
    PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.
    Ne.
    Fakt si myslíš, že to spolu nesouvisí? Že moduly, které při provozu ladím, ostatní uživatelé vidí a mohou používat? Že při ladění používám produkční databázi?
    pavlix avatar 22.2.2012 00:58 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Jediné, co si myslím, je, že do diskuze píšeš nekonzistentně. Jestli se z toho dá vyvodit přesný způsob, jak nakládáš s integrací a deploymentem, to opravdu nemám zdání.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    21.2.2012 08:06 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Bývá dobré rozlišovat mezi „nejde to“ a „neumím to“. Pak se vám nestane, že odsoudíte jazyk a platformu za něco, co jen neumíte…
    21.2.2012 09:05 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Napsat v ní "jen tak" kus kódu, který chci později refaktorovat, není jednoduché.
    Práve naopak, presne na toto je Java veľmi vhodná. Prípadné nedostatky by som hľadal medzi klávesnicou a stoličkou.
    Také mi vadí, že při ladění aplikace ji musím přeložit novou, starou ukončit, novou spustit,... Je to příliš mnoho úkonů kvůli třeba opravě jedné metody.
    Ale no tak to snáď nie! Hot-swap sme na ladenie a testovanie opravy chýb používali už pred cca piatimi rokmi!
    23.2.2012 13:08 proc jmeno?
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A JRebel to cele jeste posunul o stupinek vys... Jenze to je presne ten problem, kdyz Cckar zacne vrtat do Javy a nema ani paru, ze takove nastroje existuji. Chapu, ze v C nejsou a tak ho ani nenapadne, ze neco takoveho jde ale kde se sakra porad bere ten pocit nadrazenosti a ohrnovani nosu na Javou?

    Pak to cele dorazi tim, ze to datli v prostem VIMu (nic proti nemu ale na plnohodnotne IDE nema) a pak breci ze nez se mu to podari prelozit, tak je myslenka fuc nebo ze "refaktorovat" je slozite (pricemz za vrchol refaktorovani povazuje search&replace nad vice soubory).

    Delam v Jave uz nekolik let a zatim je to to, co mi vyhovuje nejvice a pro stoury, psal jsem i v Ccku (dost dlouho) nebo Z80 assembleru, takze mam predstavu jako to bezi "dole". Z nazoru spousty lidi hardcore C fans mi ale prijde, ze oni vedi o Jave jen ze ma podobnou syntaxi jako C.
    23.2.2012 13:18 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    JRebel, JRebel… chlapi, Erlang, to je ta pravá náhrada kódu za běhu! A vůbec to co v téhle diskusi někteří lidi předvádějí je dost směšné, náhrada kódu za běhu je právě ten důvod, proč spousta zařízení, jejichž software je napsaný v Erlangu, má mnohadevítkovou dostupnost.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 23.2.2012 20:06 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Debugger
    Také mi vadí, že při ladění aplikace ji musím přeložit novou, starou ukončit, novou spustit,...
    Já mám v IDE vedle ikonky pro spouštění ještě takovou jinou ikonku s nápisem „Debug Main Project“ a pak to jde upravovat i za chodu a taky člověk vidí, jaké hodnoty jsou v kterých proměnných :-)
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    xkucf03 avatar 23.2.2012 19:54 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Ta funkce může vracet objekt, který bude zahrnovat nejen původní návratovou hodnotu, ale i tu hodnotu, kterou se snažíš nacpat do globální proměnné.

    Další možnost je předat té funkci jako parametr objekt, do kterého funkce tu (dříve globální) hodnotu zapíše – resp. zavolá nějakou metodu toho objektu.

    Nebo OOP…
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    18.2.2012 21:01 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    Libore a Marku, přečtěte si něco o global, evidentně to chápete jako deklaraci globální proměnné, ale global jen zpřístupní proměnné které jsou v nadřazeném bloku.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    bambas avatar 20.2.2012 09:23 bambas | skóre: 20 | blog: bambasovo
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    A co takhle vytvorit virtualni metodu uvnitr(), nebo pouzit override?
    Řešení 1× (Martin Beránek)
    20.2.2012 15:19 Ivan Nový
    Rozbalit Rozbalit vše Re: Jak nadefinovat jedne funkci 2 názvy
    V PHP snadno. Takto:

    $var = null;

    $prvni = function() use($var) { if ($var === null) $var = 2; };

    $druha = $prvni;

    Volání pak

    $prvni(); $druha();

    volá stejnou funkci a var se počítá jen jednou.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.