abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:55 | IT novinky

    Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | IT novinky

    Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.

    Ladislav Hagara | Komentářů: 15
    včera 05:44 | Komunita

    Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Komunita

    Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co

    … více »
    SUSEMAS | Komentářů: 1
    včera 04:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Zajímavý článek

    Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.

    Ladislav Hagara | Komentářů: 10
    3.11. 22:55 | IT novinky

    Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno

    … více »
    Ladislav Hagara | Komentářů: 8
    3.11. 16:22 | Pozvánky

    Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.

    TomasVondra | Komentářů: 0
    3.11. 13:22 | Nová verze

    Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.

    Ladislav Hagara | Komentářů: 4
    3.11. 10:44 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (18%)
     (18%)
     (22%)
     (15%)
     (21%)
     (16%)
     (16%)
    Celkem 310 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    4.2.2017 09:43 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Můžu vložit return do podmínky když není v žádném cyklu?
    Z vaší odpovědi jsem se dozvěděl, že je dobré dodržovat štábní kulturu, s čímž souhlasím. Nicméně nemám pocit, že by vysvětlovala, jak může pravidlo jediného výstupního bodu zpřehledňovat kód.

    Abychom se bavili o něčem konkrétním – primitivní funkce pro kopírování souborů bude s několika výstupními body vypadat nějak takhle:
    void copy(source, target) {
      if (!file_exists(source)) {
        throw "Zdrojový soubor neexistuje.";
      }
      if (!is_dir(source)) {
        throw "Zdroj nemůže být adresář.";
      }
      if (!is_readable(source)) {
        throw "Zdrojový soubor nelze číst.";
      }
      if (!is_dir(target)) {
        throw "Cíl nemůže být adresář.";
      }
    
      parent = parent_dir(target);
      if (!file_exists(parent)) {
        throw "Neexistuje adresář pro cílový soubor.";
      }
      if (exists(target)) {
        throw "Cílový soubor již existuje.";
      }
      if (!is_writable(parent)) {
        throw "Do cílového adresáře nelze zapisovat.";
      }
      if (get_free_space(parent) < get_file_size(source)) {
        throw "V cílovém adresáři není dost volného místa.";
      }
    
      buffer, offset;
      do {
        buffer = read(source, offset, size(buffer));
        write(target, offset, buffer);
        offset += size(buffer);
      } while(size(buffer) > 0);
    }
    
    Když to přepíšu na jediný výstupní bod, dostanu:
    void copy(source, target) {
      error = null;
      if (file_exists(source)) {
        if (is_dir(source)) {
          if (is_readable(source)) {
            parent = parent_dir(target);
            if (file_exists(parent)) {
              if (is_dir(target)) {
                if (is_writable(parent)) {
                  if (!exists(target)) {
                    if (get_free_space(parent) >= get_file_size(source)) {
                      buffer, offset;
                      do {
                        buffer = read(source, offset, size(buffer));
                        write(target, offset, buffer);
                        offset += size(buffer);
                      } while(size(buffer) > 0);
                    } else {
                      error = "V cílovém adresáři není dost volného místa.";
                    }
                  } else {
                    error = "Cílový soubor již existuje.";
                  }
                } else {
                  error = "Do cílového adresáře nelze zapisovat.";
                }
              } else {
                error = "Cíl nemůže být adresář.";
              }
          } else {
              error = "Neexistuje adresář pro cílový soubor.";
            }
          } else {
            error = "Zdrojový soubor nelze číst.";
          }
        } else {
          error = "Zdroj nemůže být adresář.";
        }
      } else {
        error = "Zdrojový soubor neexistuje.";
      }
      throw error;
    }
    
    Pro mne je tedy ten druhý kód daleko nepřehlednější, a porušuje například jednu velmi dobrou zásadu omezující počet vnoření bloků. Nebo jak byste ten kód přepsal na jediný výstupní bod bez těch vnořených ifů? Počet vnoření by se samozřejmě dal zredukovat sloučením několika testů do jednoho a vytknutím do samostatné funkce, ale to neřeší princip problému.

    Možná je rozdíl v programování triviálních funkcí přímo nad procesorem, kde máte jasně definované podmínky běhu, a pokud se náhodou dostanete mimo ně, zastavíte procesor a nějaký watchdog rozsvítí červenou kontrolku, že je všechno špatně (a mimochodem reset procesoru podle mne je výstupní bod, je to obdoba vyhození výjimky ve vyšších programovacích jazycích a způsob, jakým se ukončí provádění dané funkce). A v programování pro počítače, tablety, mobily, televize apod., kde uživatel pracuje přímo s programem, podmínky jsou velmi různorodé a každý očekává, že se z nečekaných situací dokáže program zotavit.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.