====== Vsetko ohladom programovania ====== ==== Organizacne pravidla pri SW vyvoji ==== * [[coding:rules_projects|Riadenie vyvoja SW projektov]] * [[coding:rules_phoenixx|Praca so phoenixom]] * [[howto:addlibtophoenix|Nahravanie libiek na phoenix]] ==== Pravidla pisania kodu ==== C++ je jeden z najdolezitejsich programovacich jazykov ktore sa vo firme vyuzivaju. Kazdy poriadny C++ programator si uvedomuje, ze hoci tento jazyk dokaze byt velmi silny a vykonny, casto prinasa so sebou zlozitost, co vedie k nachylnosti na chybovost, tazsie chapanie kodu a jeho udrziavanie. Cielom tejto kapitoly je ciastocne zredukovanie tejto zlozitosti popisom toho co by sa malo dodrziavat a co by sa pri pisani C++ kodu nemalo robit. Tieto pravidla sa snazia dosiahnut spravovatelnost a zrozumitelnost kodu ale stale dovolit vyuzivat C++ produktivne. Zakladom tychto pravidiel su 3 zdroje: - zauzivany standard vo firme - knizka cisty kod - pravidla pisania google C++ projektov: [[https://google.github.io/styleguide/cppguide.html|Prirucka C++ google projektov]] - pravidla pisania nasa C standard - [[http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf|Prirucka C nasa projektov]] Styl pisania tiez nazyvany citatelnost (readability) sa ma chapat viac ako len pravidla zarovnania zdrojovych kodov. Jeden sposob ako udrzat zdrojove kody spravovatelne je dosahovanie ich konzistencie. Je naozaj dolezite aby bol kazdy programator chopny pozriet sa na zdrojove kody ineho programatora a rychlo ho pochopit a porozumiet mu. Udrziavanie jednotneho stylu a dodrziavanie konvencii znamena, ze mozeme jednoduhsie porozumiet navrhovym vzorom a co rozne symboly znamenaju. Samozrejme v niektorych pripadoch moze byt s podporou logickych argumentov lepsie zmenit (porusit) niektore pravidla, ale iba ako snahu udrzat kod konzistentny (napr. zasah do niektorej cudzej kniznice). Dalsim dovodom tejto prirucky je rozsiahlost C++ vychytavok. V niektorych pripadoch sa tieto vychytavky obmedzuju alebo uplne zakazuju. Dovodom je snaha o udrzanie jednoduchosti zdrojovych kodov, ale aj zamedzenie castych chyb, ktore tieto vychytavky zvycajne pouzivanim prinasaju. Je tu snaha vzdy dovody ich nepouzivania ci obmedzenia vysvetlit. * [[coding:rules_k1|Cisty kod]] * [[coding:rules_k2|Nazvoslovia]] * [[coding:rules_k3|Funkcie]] * [[coding:rules_k4|Komentare a dokumentacia]] * [[coding:rules_k5|Formatovanie]] * [[coding:rules_k6|Datove typy]] * [[coding:rules_k10|Triedy a struktury]] * [[coding:rules_k7|Spracovavanie chybovych stavov]] * [[coding:rules_k8|Rozhrania]] * [[coding:rules_k9|Testy]] * [[coding:rules_k11|Systemy]] * [[coding:rules_k12|Pouzivanie sablon]] * [[coding:rules_k13|Subeh]] * [[coding:rules_k14|Refaktoring]] * [[coding:rules_k15|Praca s pamatou]] ==== Ako riesit niektore chyby pri kompilacii / linkovani ==== * [[coding:compiling|kompilacia / ladenie]] ==== Prechod na Qt 4 ==== * [[coding:portingqt4|portovanie na qt4]] * [[coding:submodules_pro_pri|Pridanie libiek do projektu ako submoduly]] ==== Zbierku nasich komentarov ==== * [[:zaujimave_komentare_z_kodu|Zaujimave komentare z kodu]] ==== Zbierku zakernych chyb najdete tu ==== * [[coding:errors|chyby]] * [[coding:threads|vlakna]] ==== Ako by naozaj nemal vyzerat kod ==== * [[coding:style|ukazky kodu]] ==== Kvalita sw - pekne nastroje na zvysenie stability sw ==== * [[coding:tools| vyvojarske ladiace nastroje]] * [[dev_doc:frontoffice-unite-testing| unit testing - vsetko ohladom testov]] ==== prostredie ==== * [[howto:phoenixdown| ked spadne phoenix]] * [[coding:libweb| zavislosti kniznic - softverova architektura]] ==== Virtualne funkcie ==== * http://www.codesourcery.com/public/cxx-abi/cxx-vtable-ex.html ==== Kompatibilita ==== * [[howto:binary_compatibility| co je a co nie je binarne kompatibilna zmena]] ==== Virtualne kompilacne prostredie - VirtualBox ==== * [[Virtualne_kompilacne_prostredie_mikroelektronika | Virtualne kompilacne prostredie - Mikroelektronika]] * [[Virtualne_kompilacne_prostredie_transdata_cortexa9 | Virtualne kompilacne prostredie - Platforma transdata_cortexa9]] * [[Virtualne_vyvojove_prostredie_ubian | Virtualne kompilacne/vyvojove prostredie - Projekt UBIAN]]