Hallo, ich bastle gerade an einem immer größer werdenden Projekt und langsam wird der Code unübersichtlich. Leider bin ich nur ein "Hobby"-C Programmierer, und nun hab ich (nicht erfolgreich) nach einer Seite gesucht, auf der so die Basics eines schönen Quelltexts erklärt sind. Also kein Tutorial "wie lerne ich programmieren", das kann ich schon. Mir fehlt bloß der optische Feinschliff, der ggf auch noch ein Performance verbessert. So was wie: "Was gehört in eine *.h, was in eine *.c" etc... Kennt da wer was oder hat da wer Tipps? MfG
"Style Guide", danke, darauf bin ich nicht gekommen. Hab immer nur "schöner Quelltext" etc versucht :-D Ebenfalls ein schönen Sonntag.
StarkStrom schrieb: > Hallo, > ich bastle gerade an einem immer größer werdenden Projekt und langsam > wird der Code unübersichtlich. > Leider bin ich nur ein "Hobby"-C Programmierer, und nun hab ich (nicht > erfolgreich) nach einer Seite gesucht, auf der so die Basics eines > schönen Quelltexts erklärt sind. Also kein Tutorial "wie lerne ich > programmieren", das kann ich schon. Mir fehlt bloß der _optische_ > Feinschliff Wenn ich fremden, 'unattraktiven' Code übernehme, dann lasse ich die auto format - Funktion von Eclipse darauf los. Vielleicht hilft es dir ja zu schauen, was Eclipse per default aus deinem Code macht? Du kannst dort auch zwischen verschiedenen Coding Styles umschalten. > , der ggf auch noch ein Performance verbessert. Ein guter Coding Style erhöht die Performance des Programmiers :-) > So was wie: "Was gehört in eine *.h, was in eine *.c" etc... Hmmm, vielleicht solltest du doch lieber ein C-Tutorial lesen? :-) Schöne Grüße Jens
Jens Wirth schrieb: >> , der ggf auch noch ein Performance verbessert. > > Ein guter Coding Style erhöht die Performance des Programmiers :-) Dazugehört aber nicht das schön Formatieren, das bewirkt genau 0,nix. Sondern das Durchdenken des Projekts und das Aufteilen in möglichst kleine mehrfach verwendbare Module. Von der CPU-Performance gesehen ist das ein kleiner Rückschritt, die dann nötigen Calls machen das Programm ein bischen langsamer gegenüber Spaghetticode. Aber von der Verstehbarkeit, Wartbarkeit, Erweiterbarkeit und Fehlersicherheit ist es dafür ein gewaltiger Fortschritt. Z.B. sieht man fast immer LDC-Libs, wo die Nibble-Funktion an mindestens 6 Stellen hart reincodiert ist. Will nun ein Anfänger die Pinbelegung ändern, kriegt er graue Haare darüber oder schmeißt den ganzen Krempel in die Ecke. Hätte man aber nur eine Nibble-Funktion, die 6-mal aufgerufen wird, wäre das Pinändern ein Klacks. Peter
Peter Dannegger schrieb: > Jens Wirth schrieb: >>> , der ggf auch noch ein Performance verbessert. >> >> Ein guter Coding Style erhöht die Performance des Programmiers :-) > > Dazugehört aber nicht das schön Formatieren, das bewirkt genau 0,nix. 0,nix würde ich nicht sagen. Das was du (und ich) bei unseren eigenen Programmen als hingeschludert bezeichnen würdest ist immer noch meilenweit davon entfernt, was man hier im Forum so manches mal zu Gesicht bekommt. Wir sind zb daran gewöhnt, automatisch einzurücken. Da denkt keiner mehr darüber nach. Einem Neuling musst du erst aber mal beibringen, dass solche Kleinigkeiten wichtig sind. Und zwar nicht im Nachhinein sondern sofort. Keine Buchstabenwürste vom linken bis zum rechten Rand nur weil das in C prinzipiell möglich ist, sondern den Code auch optisch in Einzelteile aufteilen. Keine Unmengen von Leerzeilen zwischen den Anweisungen, die den Code nur unnötig in die Länge ziehen. Du machst das nicht und ich mach das nicht. Aber Neulinge tun das. > Sondern das Durchdenken des Projekts und das Aufteilen in möglichst > kleine mehrfach verwendbare Module. Das sowieso.
Wichtig ist, seinen Stil konsequent durch zu ziehen. Dann fällt es einem leichter, den Code zu erfassen.
StinkyWinky schrieb: > Wichtig ist, seinen Stil konsequent durch zu ziehen. Dann fällt es > einem leichter, den Code zu erfassen. Das ist korrekt. Wenn man einen Fremden Code liest und sich kurz an dessen Notation gewöhnt hat, ist es einfacher den Rest zu lesen. Beim Code nachvollziehen (sei es fremder, oder alter Code) geht es nicht darum, den Code bloß zu lesen, sondern auch zu interpretieren. Sprich: Zeilen wie
1 | for (i=0; i<ARRAY_MAX; i++) |
2 | {
|
3 | ...
|
4 | }
|
kann man sofort interpretieren als "Ah, er iteriert über das Array" ohne großartig viel lesen zu müssen.
Die Basics eines "schönen Quelltextes" findest Du im Duden. Insbesondere die Hinweise zum Maschine-Schreiben liefern viele Regeln, die die Lesbarkeit von Texten erheblich erhöhen. Mein Vorredner hat praktischerweise ein Beispiel eingebracht, wie man es nicht tun sollte (die mathematischen Zeichen werden "unsichtbar"): Simon K. schrieb: > for (i=0; i<ARRAY_MAX; i++) > { > ... > } Lesbarer sieht das Ganze folgendermaßen aus: for (i = 0; i < ARRAY_MAX; i++) { ... } Ansonsten: Lies fremden Code und achte auf Lesbarkeit und Verständlichkeit. Üernimm, was Du für verständlichkeits-fördernd hältst. Bernhard
Bernhard R. schrieb: > Mein Vorredner hat praktischerweise ein Beispiel eingebracht, wie man es > nicht tun sollte (die mathematischen Zeichen werden "unsichtbar"): Tja, so unterscheiden sich die Geschmäcker ;-) > Simon K. schrieb: >> for (i=0; i<ARRAY_MAX; i++) >> { >> ... >> } > > Lesbarer sieht das Ganze folgendermaßen aus: > > for (i = 0; i < ARRAY_MAX; i++) > { > ... > } Finde ich nicht, man sieht die Gliederung der einzelnen for-Bestandteile nicht mehr so gut. Kann mich aber auf beide Möglichkeiten ohne Gewissensbisse einlassen. Gibt ja noch viel schlimmere Beispiele. Zum Beispiel fette IF-Abfragen, wo kein einziges Leerzeichen drin ist, da hast du natürlich schon Recht dann.
Sonntag schrieb: > http://tinyurl.com/2d8obq2 > > schönen Sonntag Ah, lass mich raten: Du hast selbst keine Ahnung, aber denkst Dir, so könnte man wohl an was kommen. Wow. Intelligent! Google. Wer hätte das gedacht. Welchen der Style-Guides würdest Du denn so empfehlen und warum?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.