Forum » Programiranje » C++ kakšna koda je dobra koda?
C++ kakšna koda je dobra koda?
twom ::
Microsoft Visual C++ 6.0
1. Kako lahko vidim kako požrešna je moja koda do resorceov?
Morda za začetek, kaj je sploh pomembno pri bolj obsežni kodi?
Ram?
Npr, da imam vektorje in stringstream-e, ki jih polnim. Do kje gre?
Kako lahko vidim memory leaks?
2. Globalna ali lokalna spremenljivka?
Če mi globalna spremenljivka poenostavi kodo je kakšna druga omejitev zakaj je nebi kot take definiral?
Druga možnost je da v nekaj funkcij to spremenljivko vpeljem kot parameter.
Ali obstaja kakšen dober tutorial na temo dobre programerske prakse?
Lep pozdrav,
Peter
1. Kako lahko vidim kako požrešna je moja koda do resorceov?
Morda za začetek, kaj je sploh pomembno pri bolj obsežni kodi?
Ram?
Npr, da imam vektorje in stringstream-e, ki jih polnim. Do kje gre?
Kako lahko vidim memory leaks?
2. Globalna ali lokalna spremenljivka?
Če mi globalna spremenljivka poenostavi kodo je kakšna druga omejitev zakaj je nebi kot take definiral?
Druga možnost je da v nekaj funkcij to spremenljivko vpeljem kot parameter.
Ali obstaja kakšen dober tutorial na temo dobre programerske prakse?
Lep pozdrav,
Peter
- spremenil: twom ()
Tutankhamun ::
1. Tko da zalaufaš tvoj program, potem pa performance monitorjem opazuješ, procesor, memorijo...
Kaj je bolj pomembno. Zažen program, če ti ne dela dobr, šteka, preveč disk uporablja, neki čaka ... Če ti neki ni ušeč, pogledaš kaj dela problem in to odpravš.
Gre kolikor imaš memorije :). Drgač pa sprobaš tko da daš not mal več kot pa boš v resnici rabu... Sam tok da preverš kako se vse skupaj obnaša.
2.Js sm za lokalno spremenljivko.
Odvisno od kode, lahko narediš funkcije v razredu, znotraj razreda pa vstavš to svojo spremenljivko in vse te funkcije dostopajo do nje (samo funkcije v razredu). Lahko pa kot parameter podaš spremenljivko.
Za tutorial nevem (bol težko). Pejt na net, pa kšn odprtokodni progrmaček dol potegn pa poglej kako drugi delajo. Tko dobiš mal občutka, pa še naučiš se za drugim gledat kodo. Ne da znaš gledat samo svojo kodo, pol pa dobiš kodo od kolega pa si mrzu...
Drgač pa dobiš na straneh, če bi se rad prdiružu skupini, ki bi odpravljala napake, dodajala nove funkcionalnosti... v odprtokodnih projektih, so napisana pravila kako piši kodo. Pa se probaš teh pravil nekak držat :)
Kaj je bolj pomembno. Zažen program, če ti ne dela dobr, šteka, preveč disk uporablja, neki čaka ... Če ti neki ni ušeč, pogledaš kaj dela problem in to odpravš.
Gre kolikor imaš memorije :). Drgač pa sprobaš tko da daš not mal več kot pa boš v resnici rabu... Sam tok da preverš kako se vse skupaj obnaša.
2.Js sm za lokalno spremenljivko.
Odvisno od kode, lahko narediš funkcije v razredu, znotraj razreda pa vstavš to svojo spremenljivko in vse te funkcije dostopajo do nje (samo funkcije v razredu). Lahko pa kot parameter podaš spremenljivko.
Za tutorial nevem (bol težko). Pejt na net, pa kšn odprtokodni progrmaček dol potegn pa poglej kako drugi delajo. Tko dobiš mal občutka, pa še naučiš se za drugim gledat kodo. Ne da znaš gledat samo svojo kodo, pol pa dobiš kodo od kolega pa si mrzu...
Drgač pa dobiš na straneh, če bi se rad prdiružu skupini, ki bi odpravljala napake, dodajala nove funkcionalnosti... v odprtokodnih projektih, so napisana pravila kako piši kodo. Pa se probaš teh pravil nekak držat :)
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
Senitel ::
Microsoft Visual C++ 6.0? For the love of God, kaj novejšega nisi našel?
1. Kaj hočeš? Zmanjšat porabo pomnilnika? Pohitrit program? Ali te samo firbec muči koliko rama lahko skuriš?
2. Z globalnimi spremenljivkami v splošnem ni nič narobe... Dokler seveda ne nabašeš na probleme, kjer ne veš od kje se ti je ta globalna spremenljivka spremenila.
1. Kaj hočeš? Zmanjšat porabo pomnilnika? Pohitrit program? Ali te samo firbec muči koliko rama lahko skuriš?
2. Z globalnimi spremenljivkami v splošnem ni nič narobe... Dokler seveda ne nabašeš na probleme, kjer ne veš od kje se ti je ta globalna spremenljivka spremenila.
*ziga* ::
Najlazje je opazit memory leak, ce gres v task manager in gledas ce uporaba memorije pri tvojem procesu stalno raste.Resis pa lahko z free().
Tutankhamun ::
uuuuu, memory leak je pa daleč od tega da se ga tko enostavn najde. Sej ni treba da sploh raste, da je to memory leak!
AMD Phenom QUAD 9950 Black Edition, 8GB
BigWhale ::
Najlazje je opazit memory leak, ce gres v task manager in gledas ce uporaba memorije pri tvojem procesu stalno raste.Resis pa lahko z free().
Jej, nehej no!
Lahko mi pa poves kako opazis memory leak enega byta na pol ure k ti vsake tri ure crashne program? Ja najboljs free() uporabit! Kr tko not nametat mau na rezervo!
Tutankhamun ::
Kaj tri ure, 1x na mesec. Pa še to ni nujno. Zdej pa najd kje je problem . Kokrat sm gledu kodo za drugimi, pa odpravlu napake. Pol ti pa še rečejo popravt morš v 1 tednu . Iskat napake je največji drek. Daleč od tega da je enostavn.
AMD Phenom QUAD 9950 Black Edition, 8GB
MrBrdo ::
On a side note, v managed okolju (.NET), lahko komu zgleda kot da prihaja do memory leakov, ko npr. bi se moral sprostit nek resource ampak poraba spomina ostaja še enaka. Če bo kdo naletel na to je to samo tako narejeno, da ni preveč alociranja in sproščanja pomnilnika. Če pa recimo sistemu začne zmanjkovat pomnilnika se tisti zavzet spomin še precej skrči. To samo tako btw, se mi je zdelo zanimivo ko sem enkrat prebral.
MrBrdo
Tutankhamun ::
Sej to ni samo pri netu, to ponavad use aplikacije tko delajo. Probajo rezervirat čim več pomnilnika, pa sploh ni nujn da ga bojo porabl :P
AMD Phenom QUAD 9950 Black Edition, 8GB
WarpedGone ::
Ali obstaja kakšen dober tutorial na temo dobre programerske prakse?
Pragmatic programmer
Code Complete
Špehovje brez katerega ni dobrega programerja.
Zbogom in hvala za vse ribe
win64 ::
Obstajajo orodja, ki zaznajo kodo, ki bi potencijalno lahko vodila k memoryleakom. Eno tako orodje je v VS Team edition(2005,2008), sem prepričan da bojo odprtokodniki vedeli še za kako tako aplikacijo.
Sicer pa ti močno priporočam menjavo prevajalnika, ker vc++ 6.0 uporablja prevajalnik 'c++', ki je bil narejen preden so standarizirali jezik.
Sicer pa ti močno priporočam menjavo prevajalnika, ker vc++ 6.0 uporablja prevajalnik 'c++', ki je bil narejen preden so standarizirali jezik.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Mozilla Firefox 2 RC2 je tuOddelek: Novice / Brskalniki | 6313 (4062) | OmegaBlue |
» | [C#] int to byte[]Oddelek: Programiranje | 1236 (1074) | CCfly |
» | C++0x (strani: 1 2 )Oddelek: Novice / --Nerazporejeno-- | 7257 (6324) | Matevžk |
» | [ C ] Kazalci v strukturahOddelek: Programiranje | 1461 (1354) | 64202 |
» | [c++] Pomoč pri izdelavi std::vector "wrapperja"Oddelek: Programiranje | 1587 (1488) | zhigatsey |