Der Stack ist dein Freund
Wie uns der Stack helfen kann, schöneren Code zu schreiben. Moderne Trends in der Software-Entwicklung versuchen, uns dazu zu nötigen, den Kontrollfluss in kleine Häppchen zu zerstückeln. Konkret postuliert Robert C. Martin in seinem Buch Clean Code, dass Funktionen möglichst klein sein sollten und nur in Einzelfällen 20 Zeilen erreichen dürfen:
> “The first rule of functions is that they should be small. […] Functions should hardly ever be 20 lines long.
Polymorphismus in C
Polymorphismus endlich auch in C Neidisch und voller Bewunderung schauen C-Programmierer auf ihre objektorientierungsvirtuosen Kollegen, die sich in der Firma wie Götter gebärden. Warum nur hat der Chef C angeordnet? C-Programmierer wollen auch diese tollen Sachen machen und bewundert werden. Aber was ist das überhaupt, was die da machen?
Was ist diese Objektorientierung überhaupt? Bei der Objektorientierung geht es darum, die Trennung zwischen statischer Struktur und Verhalten aufzubrechen. Wo in C noch Structs von Funktionen beackert wurden, kommen in C++ jetzt die Structs als „Klassen“ daher und bringen ihren Code gleich noch mit – ein mittlerer Alptraum für jeden Architekten, der Struktur und Verhalten lieber getrennt sehen möchte.
Leicht lesbarer Code? C++ war schon immer bereit dafür!
In unserem letzten Blog-Beitrag haben wir gesehen, wie hilfreich unions im Alltag jedes Programmierers sein können und dass unions vollkommen zu Unrecht einen schlechten Ruf in Applikationscode haben.
Code-Bloat durch Spracheigenschaften So mancher C++-Programmierer blickt neidisch auf seine IT-Kollegen, die sich nicht mit Type-Safety und anderen nutzlosen Einschränkungen herumschlagen müssen, die ihnen durch die Sprache C++ auferlegt wird. Vermeintlich, wie wir sehen werden. Die Kollegen ohne diese Einschränkungen nutzen Perl, PHP, Python, JavaScript und werden bei ihrer Arbeit im Lösungsraum weit weniger behindert als jeder C++-Programmierer.
Unions sind gut!
Im Internet verbreitet sich mehr und mehr das Gerücht, dass unions vermieden werden sollen. Diese Aussage ist absolut falsch. unions sind eines der besten Sprachfeatures von C/C++ und sollten in jedem Programm verwendet werden.
Unions haben einige sehr eindeutige Vorteile:
Unions sparen Unmengen an Speicherplatz Ein großer Gegenspieler der union in C ist das struct. Beide verhalten sich sehr ähnlich, aber ein struct braucht unverhältnismäßig mehr Speicher!
Schauen wir uns zwei kleine Codebeispiele an: