Forum: Compiler & IDEs Schöner Quelltext (aber wie?)


von StarkStrom (Gast)


Lesenswert?

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

von Sonntag (Gast)


Lesenswert?

http://tinyurl.com/2d8obq2

schönen Sonntag

von StarkStrom (Gast)


Lesenswert?

"Style Guide", danke, darauf bin ich nicht gekommen.
Hab immer nur "schöner Quelltext" etc versucht :-D

Ebenfalls ein schönen Sonntag.

von Jens W. (jewirth) Benutzerseite


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von StinkyWinky (Gast)


Lesenswert?

Wichtig ist, seinen Stil konsequent durch zu ziehen. Dann fällt es 
einem leichter, den Code zu erfassen.

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Bernhard R. (barnyhh)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?


von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Michael (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.