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:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

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

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 2
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 24
    včera 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ářů: 13
    včera 14:22 | Komunita

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

    Ladislav Hagara | Komentářů: 2
    včera 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
    včera 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
    včera 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
    včera 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
    včera 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
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 794 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Ako formátuejte zdrojáky v C/C++?

    15.10.2020 01:37 | Přečteno: 1167× | Hardware | poslední úprava: 15.10.2020 01:44

    Vo voľnom čase robím na jednom projekte v C++. Vymyslel som si preň vlastné konvencie (pre formátovanie kódu), sú trošku zložitejšie, ale majú svoju logiku:
    1. Triedy a komplexné typy začínajú veľkým písmenom
    2. malé písmená pre základné a primitívne typy
    3. verejné a chránenné membery tried, nečlenské funkcie a všetko k čomu má prístup vonkajší svet začína veľkým písmenom
    4. malé písmená pre private atribúry / membery
    5. malé písmená pre niektoré templates a type traity.
    6. zložené zátvorky sú vždy na novom riadku, s výnimkou prípadu kedy sú obe zátvorky na rovnakom riadku.
    7. ternárny operátor zanorujem podobne ako v pythone.
    8. konštanty a enumerácie - všetko veľkým písmenom.
    vyzerá to nejako takto:
    class SomeClass : public SomeParent
    {
    private:
        const float PI = 3.14;
        int someValue = -1;
    public:
        SomeClass(int someValue) :
            someValue(someValue)
        {
        }
        int SomeValue() { return someValue; } // getter bez prefixu ako v Qt
        int SetSomeValue(int value) { someValue = value; } // setter s prefixom
        std::optional<int> PositiveNumber()
        {
             return (
                 someValue >= 0
                     ? std::optional(someValue)
                     : std::nullopt
             );
        }
    };
    ternárny operátor je buď tak ako vidíte vyššie, alebo vetvy zalamujem ešte do nového riadku, v prípade že je tam toho viac (zvyk z React-u)
    return (
        someValue >= 0
            ?
                std::optional(someValue)
            :
                std::nullopt
    );
    Metódu PositiveNumber by som za normálnych okolností oddelil a presunul do implementačného súboru, lenže inokedy to za mňa robí VisualAssist, ktorý v textare-e na abclinuxu nemáme a ručne sa mi to deliť nechce.

    Vymyslel som to asi zaujímavo, ale ako vždy nie som so svojim nápadom spokojný... Lebo čím ďalej, tým viac mi vadí nekonzistencia medzi STL / boostom a mojimi projektami. Preto som sa rozdol, že formátovanie a odsadzovanie kódu a tiež konvencie pre gettery a settery zachovám, ale názvy všetkých identifikátorov prekopem do snake_case: všetko vrátane typov a tried bude malými písmenami (presne ako to má STL). Dôvodov mám viac.
    1. kompatibilita s ostatnými vývojármi - a tým pádom lepšia schopnosť porozumieť cudziemu kódu
    2. V C++ si musím neustále niečo vyberať, alebo robiť nejakú voľbu, tak aspoň nad veľkosťou písmen už premýšľať nemusím.
    3. V práci používam (pri frontend vývoji) camelCase (a PascalCase pre typy), ale C++ je jazyk z iného sveta a preto v ňom chcem používať úplne iný spôsob formátovania.
    Viete mi prosím poradiť nejaký šikovný tool na hromadné premenovanie identifikátorov? Viem si na to napísať aj skript, ale priznám sa, že sa mi do toho vôbec nechce rád by som našiel nejaký konverzvý tool ktorý vačšinu práce urobí za mňa.

    Aké konvencie pre formátovanie kódu používate vo svojom obľúbenom jazyku? Snažíte sa byť kompatibilní s mainstreamom?, alebo ste si vymysleli vlastné lepšie konvencie?        

    Hodnocení: 100 %

            špatnédobré        

    Anketa

    Akým štýlom formátuješ zdrojáky vo svojom najobľúbenejšom jazyku?
     (18 %)
     (39 %)
     (0 %)
     (11 %)
     (7 %)
     (11 %)
     (11 %)
     (4 %)
    Celkem 28 hlasů

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

    Komentáře

    Vložit další komentář

    15.10.2020 06:34 DoubleSpace
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    To nejdulezitejsi si nenapsal: taby nebo mezery ?
    xkucf03 avatar 15.10.2020 11:36 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?

    O tom se snad nemusí diskutovat, ne? :-) Jasně, že tabulátory.

    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
    15.10.2020 11:44 Petr
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Proboha, tabulatory pouzivaji jen duchodci.
    15.10.2020 13:26 Proc je vlastne nick pro anonyma povinny ?
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Konzervo vickarska! A jeste mas tab snad definovany na 8 znaku co? Nastesti na vsech projektech uz mame commit hook na formatovani zdrojaku a tak sme s tabulatorovymi zpatecniky pekne zametli a je vsude natvrdo 2x space :-P
    Gréta avatar 15.10.2020 16:04 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?

    misto tabu čtyry mezery!!!!!! :O :O :D :D ;D ;D

    btw tišnovskej pro tebe asi jako nabýtku která se nevodmítá sem si všimla hele :O :O :D ;D

    16.10.2020 10:46 m.
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Je rok 2020. Proste v editoru nastavim, co se ma stat, kdyz zmacknu tabulator/backspace a je mi to uplne jedno, jakou vypln to tam nakonec vklada. Pracuje se s tim stejne.

    Ale mel jsem kolegu, kterej programoval v editoru z Midnight Commanderu ("protoze zdrojak je prece jen textovej soubor prece") a ten razil tvrde taby, protoze jinak mackal celej den mezernik jak idiot.
    16.10.2020 11:13 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Je rok 2020. Proste v editoru nastavim, co se ma stat, kdyz zmacknu tabulator/backspace a je mi to uplne jedno, jakou vypln to tam nakonec vklada.
    To bych řek, že je spíš taknějak circa 2010.

    2020 řešení je psát do editoru úplně cokoli a pak akorát zmáčknout klávesovou zkratku nebo příkaz, co vyvolá formatter.

    Občas když rychle dělám nějakej menší refaktor, to naprasim do editoru nějak hlava nehlava jen do tý míry, aby byla korektní syntaxe a pak jen nechám zformátovat do pěkného vzhledu automaticky...
    xkucf03 avatar 16.10.2020 13:24 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    2020 řešení je psát do editoru úplně cokoli a pak akorát zmáčknout klávesovou zkratku nebo příkaz, co vyvolá formatter.

    Tohle používám u vlastních nebo nových projektů.

    Pokud ale upravuješ nějakou starou věc a máš tam udělat třeba jen nějakou drobnou změnu, tak tohle opravdu není cesta. Za přeformátování celého kódu by ti ten, kdo ti bude dělat revizi kódu nebo později hledat něco v historii či dělat merge, nepoděkoval.

    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
    16.10.2020 13:58 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    2020 řešení je psát do editoru úplně cokoli a pak akorát zmáčknout klávesovou zkratku nebo příkaz, co vyvolá formatter.
    Takze preformatujes cely soubor... To teda dekuju. Kdybys tohle udelal na projektu kde pracuju tak bych te hnal svinskym krokem ;-)
    16.10.2020 14:27 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Tak to se snad rozumí samo sebou, že nebudu vytvářet diffy formátující kód někoho jinýho.
    19.10.2020 20:01 m.
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Nooo, pokud ten cizi kod v tom souboru je spravne naformatovan, tak ten formater v nem nic nezmeni. A pokud ano, tak to bylo potreba zmenit, prece nechces mit v tom projektu kod, ktery nesplnuje standardy pro ten projekt. Samozrejme, ze tato oprava toho formatovani by mela byt samostantny commit.
    19.10.2020 19:52 m.
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Souhlas.
    xkucf03 avatar 16.10.2020 13:19 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Tabulátory vs. mezery; odsazování a zarovnávání
    Je rok 2020. Proste v editoru nastavim, co se ma stat, kdyz zmacknu tabulator/backspace a je mi to uplne jedno, jakou vypln to tam nakonec vklada. Pracuje se s tim stejne.

    A jak řešíš zarovnávání? Pokud máš tvrdý limit na délku řádku a metodu s více parametry, tak se tomu nedá vyhnout.

    • pouze mezery (pro odsazení i zarovnání)
    • tabulátory odsadíš na patřičnou úroveň + zarovnáš mezerami
    • už první parametry dáš na nový řádek a odsadíš tabulátorem, takže není potřeba nic zarovnávat
    • tabulátory použiješ k odsazení i zarovnání, co to jen jde a zbytek (méně než definovaná šířka tabulátoru) dorovnáš mezerami
    • nebudeš zarovnávat, i když konvence daného projektu říkají, že zarovnávat máš

    ?

    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
    16.10.2020 13:29 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    pouze mezery (pro odsazení i zarovnání)
    Tohle je IMO lepší jednak protože to je jednoduchý a jednak protože v terminálu a na webu se tab typicky zobrazuje se šířkou 8, což je IMO moc.

    (Ano, teoreticky a někdy i prakticky se to dá přenastavit, ale to lidi typicky nedělaj.)
    xkucf03 avatar 16.10.2020 13:56 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání

    Výhoda tabulátorů je právě v tom, že si lidi můžou nastavit jeho šířku. Obecně mají lidé různé preference a jedna velikost nevyhovuje všem. Někomu se čte líp text odsazený na šířku dvou mezer, někomu čtyř, někomu osm… Potkal jsem i exoty, kterým vyhovovala šířka odsazení 3 nebo 6. Když ale používáš tabulátory (+ případně mezery pro zarovnání), tak tě tyto odlišnosti nemusí trápit a není potřeba se hádat, jestli je lepší 3, 4, 6, 8 nebo jiné číslo.

    Zrovna ta šířka 8, která se ti zdá moc, pochází od skupiny lidí, kteří argumentují tím, že když koukáš dvacet hodin do kódu, tak máš unavené oči a takto široké odsazení ti pomůže se v tom ḱódu neztratit. Já nemám potřebu to nikomu rozmlouvat, osobně mi vyhovuje šířka 4, ale když chce někdo 8, tak ať má 8, nemám s tím problém. Případně někteří tvrdí, že větší odsazení tě podvědomě nutí se krotit co se týče zanoření metod/podmínek/cyklů/…

    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
    16.10.2020 15:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    Příloha:
    Přiznám se, že mě tohle vůbec netankuje. Já potřebuju, aby se můj kód většině lidí (ie. při výchozím nastavení) slušně zobrazoval na webu a v terminálu, a způsob, jak toho dosáhnout, je nepoužívat taby. 8 mezer někomu vyhovuje, ale většině ne. Tj. řešim to jen ze svého pohledu.

    Už jsem moc starej na to, abych řešil, jestli jsou všeobecně globálně lepší taby nebo mezery. To opravdu nemá smysl ;-)

    Pokud jsou na nějakém projektu taby (nebo pokud je to standard v daném jazyce, jako třeba Go nebo Makefiles), tak budu prostě používat taby, je mi to jedno, hlavně když to bude konzistentní. Dtto i takové podivnosti jako 3 mezery.

    V editoru mam samozřejmě vyznačené odsazení, takže vidět je dobře tak jako tak. Důležitější než nějaká konkrétní šířka odsazení jsou pro mě různé delimitery, jako třeba různé závorky a operátory, takže ty mám teď nastavené na výraznou barvu (viz příloha). To je nápad, který jsem víceméně adaptoval z tohohle talku o succint strukturách, kde řeší rychlou navigaci ve strukturovaném dokumentu. Samozřejmě z pohledu stroje (parseru), ale rozhodl jsem se to zkusit i z pohledu člověka a zatim mi přijde, že to je dobrá věc...
    16.10.2020 18:49 Profyk
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    A v tom je samozrejme i nevyhoda, ze si to kazdy nastavi jak chce. U nas panuje svoboda nastroju, aplikaci ci operacnich systemu. At si kazdy kodi v cem chce a jak chce.

    Ale svoboda formatovani neexistuje, mame nastaveny formater po commitu. Zakladni vec je nastaveni pevnych mezer misto tabu. Teamy muzou hlasovat jestli chteji v projektu 4x nebo 2x space odsazeni. Vetsinou pouzivivaji 2x. Pak jeste muzou hlasovat jestli chteji zalomeni 100zn nebo 120zn. Vetsinou pouzivaji 120zn. Proc 120? Protoze az mas monitor na vysku tak pri rozumnem fontu ti vyjde zhruba tolik kodu na radek + nejaky levy okraj pro IDE :-D

    Tim ze jsou mezery misto tabu se zajisti, ze pak kod vypada vsude stejne a nezajima mne kdo jak ma nastaveny editor.

    No a samozrejme nekdy nastane chvile, ze je team prevelen na starsi kody, kde formater nebyl. Pak neni co resit, na pocatku jde jeden commit co vsechny kody preformatuje. Az testing da zelenou, ze se nevloudila regrese tak az pak zacina normalni projektova prace.

    No a az by nejake prase preskocilo commit hooky a dostalo ven nenaformatovane kody s taby tak je tu jeste code review (bez nej je merge zakazany), kde se ridime pravidlem "bordel ani nekoukam, rejected".
    18.10.2020 16:12 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    Preference jsou ještě v pohodě, vždycky se dá zvyknout. Argument který mě nedávno začal obracet k tabulátorům je accessibility. Programátor s vážnější vadou zraku může mít nastavené klidně půlcentimetrové písmo a odsazení si zvolí podle toho.
    Gréta avatar 18.10.2020 16:58 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání

    nóó ale mezery a taby sou proporcionálně stejně zvěčený jako celej font takže to je jakoby jedno ne?????? :O :O

    19.10.2020 13:16 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    Jenže při velké velikosti fontu může být třeba poměrně běžná šířka odsazení 4 mezery až moc a jednoznakové odsazení se čte líp.

    Našla jsem článek který se toho týkal.
    xkucf03 avatar 19.10.2020 13:30 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání

    Já myslím, že není tak úplně pravda, že:

    Nobody talks about the real reason to use Tabs over Spaces

    podle mého to spadá pod ty osobní preference. To, že někdo třeba hůř vidí, může mít vliv na to, že preferuje takové a takové osazení.

    Ale asi neškodí tenhle důvod/případ zmínit explicitně.

    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
    20.10.2020 09:11 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: Tabulátory vs. mezery; odsazování a zarovnávání
    On je trochu rozdíl mezi „Osobně preferuji rampy místo schodů rampy“ a „Bez rampy se na vozíku nikam nedostanu“. Dokud šlo o osobní preference, tak mi nedělalo problém říct „Tak si zvykneš“, ostatně já si taky zvykám na styl jiných projektů.
    15.10.2020 08:54 _
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Ne podle nálady, ale podle projektu. S Qt5 camelCase, s boost či bez frameworku snake_case. A je mi to fuk, hlavně aby to bylo konzistentní a čitelné (nejen mnou).
    xkucf03 avatar 15.10.2020 11:34 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?

    Ta nejednotnost může mít i výhody: na první pohled vidíš, jestli je to tvůj kód nebo kód knihovny/frameworku – např. mojeMetoda() vs. jejich_metoda(). Jasně, že člověk nebude svůj kód formátovat schválně jinak, ale je to pozitivní vedlejší efekt, pokud taková konstelace nastane.

    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
    15.10.2020 09:39 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    K závorkám: V C a C++ preferuji psaní {} u funkcí na nový řádek, jinde na stejný řádek. Funkci jde pak překopírovat do hlavičkového souboru a jen připsat středník. Navíc nejsou { tolik rušivé po vypsání grepem.
    void foo(void)
    {
        if (něco) {
            /* … */
        }
    }
    
    void bar(void)
        { /* … */ }
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    15.10.2020 09:59 kubav
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Je to v zásadě jedno, za měsíc si zvyknu na cokoliv. Hlavně na to musí být styl pro clang-format a všichni nastavený editor, aby formátoval automaticky. pokud to tak není, tak se vždycky najde někdo, kdo má neustálou snahu něco změnit a pořád otravuje nekonečnými diskuzemi.
    15.10.2020 10:33 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    +1, resp. nejlépe, aby CI odmítalo kód nenaformátovaný daným clang-format nastavením.
    Josef Kufner avatar 15.10.2020 15:21 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    K automaticky vynucenému formátování je ještě potřeba možnost to lokálně vypnout. Občas se vyskytne situace, kdy standardní formátování se vůbec nehodí.
    Hello world ! Segmentation fault (core dumped)
    15.10.2020 17:54 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Celkem často zarovnávám kód do sloupečků – např. makra v C, konstanty (sloupce jsou: typ, název, rovnítko, hodnota).
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    16.10.2020 09:55 kubav
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Většina nástroju podporuje anotace v komentářích.
    15.10.2020 11:37 plostenka | blog: plstnk
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Takove problemy bych chtel mit. Spravny lidsky citelny alias ma maximalne 8 znaku [A-Z0-9#$@] :) Prvni tri znaky shodne pro modul, zbytek rozlisuje jednotlive promenne/konstanty.
    xkucf03 avatar 15.10.2020 11:39 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Proto ve vyspělejších jazycích máš jmenné prostory…
    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
    15.10.2020 13:35 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Hmm. Jak je to vlastně v Javě s aliasy/re-exporty? Umí něco takového? Mám tim na mysli to, že vnitřní a vnější namespace struktura nějaké knihovny je jiná.

    V některých jazycích co používám např. můžu mít foo.bar.baz.UsefulApi , kde ale tohle je pouze vnitřní (privátní) organizace a navenek je to exportováno zjednodušeně* jako foo.UsefulApi.

    *) Bez implementačních detailů, bez nutnosti exponovat vnitřní strukturu, která se může měnit...

    Je taky případně možné přejmenovat / vytvořit alias pro externí dependenci?
    xkucf03 avatar 15.10.2020 13:57 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Java, jmenné prostory, rozhraní, Maven, OSGi
    Hmm. Jak je to vlastně v Javě s aliasy/re-exporty? Umí něco takového? Mám tim na mysli to, že vnitřní a vnější namespace struktura nějaké knihovny je jiná.

    V Javě je to úplně jednoduché – struktura „vnějších“ a „vnitřních“ jmenných prostorů je stejná. Občas by se hodilo to, co můžeš dělat např. v C++ pomocí using, ale zase je to takové nezáludné a přímočaré.

    Bez implementačních detailů, bez nutnosti exponovat vnitřní strukturu, která se může měnit...

    Tohle je běžná věc, ale používají se k tomu rozhraní. Exportuješ např. com.example.kralyk.Abc a implementace (vracená třeba z nějaké továrny) bude v jedné verzi com.example.kralyk.impl.bla.bla.HyperAbc a v jiné com.example.kralyk.impl.foo.bar.TurboAbc a uživatel ty interní názvy a interní jmenné prostory vůbec nemusí řešit resp. ani je nevidí, pokud vyloženě nechce (přes reflexi). Ve zdrojovém kódu by se na ty implementace ani neměl dostat, protože by měl záviset jen na balíčku s rozhraním. Případně třeba v OSGi bys mohl mít rozhraní i implementaci v jednom balíčku, ale exportované by bylo jen rozhraní, nikoli implementace.

    Je taky případně možné přejmenovat / vytvořit alias pro externí dependenci?

    Pomocí Mavenu si můžeš „přebalit“ knihovnu a mj. přejmenovat jmenné prostory. Viz Relocating Classes. Ale to jsem snad reálně ani nikde nepoužil.

    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
    15.10.2020 16:28 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Java, jmenné prostory, rozhraní, Maven, OSGi
    Tohle je běžná věc, ale používají se k tomu rozhraní.
    Ok, jenom pro úplnost dodám (asi to už víš), že tohle by nešlo použít pro POD/hodnotové typy, staticky dispatchované typy apod., ale tyhle věci v Javě nejsou, takže tam to není problém...
    xkucf03 avatar 15.10.2020 17:33 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Java, jmenné prostory, rozhraní, Maven, OSGi

    Třeba v C/C++ bys tyhle struktury nebo definice funkcí dal do hlavičkového souboru a ten bys sdílel mezi klientem a jednotlivými implementacemi, ne?

    Tohle mají IMHO hezky udělané v SQLite. Tedy hezky v rámci možností céčka :-) Modul implementující rozhraní pak ani nezávisí na dynamické knihovně jádra – jen v době kompilace závisí na tom hlavičkovém souboru.

    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
    15.10.2020 18:52 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Java, jmenné prostory, rozhraní, Maven, OSGi
    Třeba v C/C++ bys tyhle struktury nebo definice funkcí dal do hlavičkového souboru a ten bys sdílel mezi klientem a jednotlivými implementacemi, ne?
    Záleží, je to škála. Ten příklad s těmi SQLite pluginy je jeden konec té škály, kde je maximální oddělení. Počítám, že ty pluginy se dokonce načítají nejspíš nějakým dlopen(). Na druhém konci té škály je kód, kde je potřeba těsná vazba např. kvůli výkonu a/nebo používá hodně templates.
    15.10.2020 23:49 Ahoj
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Začínám výstižným názvem.
    Bedňa avatar 16.10.2020 12:04 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Hlavne píš konzistentne.
    Tvoj kód:
    public:
        SomeClass(int someValue) :
    
    return (
                 someValue >= 0
                     ? std::optional(someValue)
    
    Niekde máš medzeru, niekde nie, ja by som napísal:
    public:
        SomeClass (int someValue):
    
    return (
                 someValue >= 0
                     ? std::optional (someValue)
    
    KERNEL ULTRAS video channel >>>
    16.10.2020 13:54 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    no fuj, pred volani funkce davat mezeru... jdu blejt

    ta predchozi verze je mnohem lepsi ;-)
    Bedňa avatar 16.10.2020 14:41 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Kľudne si píš ako chceš, ale nech je to konzistentné všade ;-)
    KERNEL ULTRAS video channel >>>
    16.10.2020 14:50 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Ty se ale snazis udelat konzistentni veci ktere jsou ve skutecnosti jine...

    if (...)

    return (...)

    funkce(...)

    sice vypada syntakticky podobne ale semanticky je to neco jineho... Neni duvod to psat vse stejne a spis je duvod to odlisit :-)
    Bedňa avatar 16.10.2020 17:38 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Ja s tým nič nenarobím, ja som Autista :-) Keď vidím dvojbodku raz z medzerou, raz bezmedzery, rovnako zátvorky, tak to musím opraviť :-)
    KERNEL ULTRAS video channel >>>
    17.10.2020 20:51 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    :-)
    David Heidelberg avatar 18.10.2020 21:19 David Heidelberg | skóre: 46 | blog: blog_
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Normálně, už od doby DOSu:

    FORMAT C:
    Bedňa avatar 18.10.2020 21:48 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Ako formátuejte zdrojáky v C/C++?
    Heh, mal by si písať komixi :-D
    KERNEL ULTRAS video channel >>>

    Založit nové vláknoNahoru

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