List aller definierten/benannten C++ Idiome



  • Hallo Communitonen!

    Ich suche eine Liste aller deklarierten und definierten C++ Idomen wie
    Z.B. Counted-Pointer-Idiom.

    Kennt jemand einen guten Link oder Google-Buzzwords?

    Vielen Dank im voraus. 🙂

    P84





  • Prof84 schrieb:

    Ich suche eine Liste aller deklarierten und definierten C++ Idomen wie
    Z.B. Counted-Pointer-Idiom.

    Kennt jemand einen guten Link oder Google-Buzzwords?

    Die von dir geposteten Links sind zwar ein gute Anfang aber bei weitem nicht vollständig (mir fallen da spontan noch zig weitere Idiome ein). Ich bezweifle allerdings auch, dass es eine vollständige Liste geben kann bzw. das eine solche Liste sinnvoll wäre, denn erstens ändern sich die Idiome mit der Zeit und zweitens sind auch C++ Idiome kontextabhängig. Für nahezu jedes nicht triviale Themengebiet gibt es eine Reihe nützlicher Idiome.

    Es gibt ja auch nicht die Liste von Patterns. Nicht mal die Liste von Design-Patterns. Das sind alles dynamische Themengebiete.

    Imo sollte man eher versuchen die Idee der Sprache zu verstehen und dann ständig am Ball bleiben was aktuelle Entwicklungen angeht.

    Ein guter Start ist auf jeden Fall Sutters und Alexandrescus Buch "C++ Coding Standards". Das enthält wichtige Basisidiome sowie eine Unmenge an Referenzen auf weitereführende Literatur.



  • Hi Hume!

    HumeSikkins schrieb:

    Die von dir geposteten Links sind zwar ein gute Anfang aber bei weitem nicht vollständig (mir fallen da spontan noch zig weitere Idiome ein).

    Habe ich später auch gemerkt. Ich gebe Dir recht - Vollständigkeit scheint eine Utopie zu sein.

    HumeSikkins schrieb:

    Ich bezweifle allerdings auch, dass es eine vollständige Liste geben kann bzw. das eine solche Liste sinnvoll wäre, denn erstens ändern sich die Idiome mit der Zeit und zweitens sind auch C++ Idiome kontextabhängig. Für nahezu jedes nicht triviale Themengebiet gibt es eine Reihe nützlicher Idiome.

    Verstehe ich nicht ganz. Wieso ändern sich die Idiome in Laufe der Zeit. Ein Idiom das vor 10 Jahren entwickelt wurde, hat auch heute seinen Nutzen. Kann sein, dass eine neuere Variante entwickelt wurde, die leistungsfähiger und leichter zu pflegen ist, aber das negiert doch nicht den Nutzen des alten Idioms. Was verstehst Du unter kontextabhängig?

    HumeSikkins schrieb:

    Das sind alles dynamische Themengebiete.

    Was verstehst Du unter dynamische Themengebiete?

    HumeSikkins schrieb:

    Imo sollte man eher versuchen die Idee der Sprache zu verstehen und dann ständig am Ball bleiben was aktuelle Entwicklungen angeht.

    IMHO ist die Grundsemantik von C++ nicht so stark einen Wandel unterzogen, wie Java oder C#. Ich muss aber auch zugegeben, dass ich wahrscheinlich nicht Deinen rudimentären Tiefgang in C++ habe und in Newsgroups hänge. Dafür bin ich kompetenztechnisch einfach zu breit gestreut. 😞

    Meine Zielsetzung ist eine bedingte Autogenese in C++ (Code-Generator), die zumindestens einen ausführbaren Code generieren kann (embedded, RT). Unser flame:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-80802-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html
    <ot>was ist das denn für eine GET query?!? 😮 </ot>

    HumeSikkins schrieb:

    Ein guter Start ist auf jeden Fall Sutters und Alexandrescus Buch "C++ Coding Standards". Das enthält wichtige Basisidiome sowie eine Unmenge an Referenzen auf weitereführende Literatur.

    Vielen Dank für den Tipp. Werde ich mir bestellen. 🙂



  • Prof84 schrieb:

    HumeSikkins schrieb:

    Ich bezweifle allerdings auch, dass es eine vollständige Liste geben kann bzw. das eine solche Liste sinnvoll wäre, denn erstens ändern sich die Idiome mit der Zeit und zweitens sind auch C++ Idiome kontextabhängig. Für nahezu jedes nicht triviale Themengebiet gibt es eine Reihe nützlicher Idiome.

    Verstehe ich nicht ganz. Wieso ändern sich die Idiome in Laufe der Zeit.

    Weil sich unser Verständnis der Sprache ändert. Nimm z.B. das Copy&Swap-Idiom. Das gab es für 10 Jahren gar nicht. Vor 5 war es pflicht und heute setzt man es konditionell ein. Oder nimm den Barton-Nackman-Trick (nicht zu verwechseln mit dem CRTP). Vor ein paar Jahren war der sehr wichtig. Heute gibt es bessere Alternativen.

    Prof84 schrieb:

    Was verstehst Du unter kontextabhängig?

    Sowas wie Idiome für bestimmte Gebiete. Z.B. Idiome für die Verwaltung von Ressourcen (wie RAII), Idiome für Dependency-Management (encapsulation/insulation), Idiome für Exception-Sicherheit, Idiome für generische Programmierung und und und.

    Prof84 schrieb:

    HumeSikkins schrieb:

    Das sind alles dynamische Themengebiete.

    Was verstehst Du unter dynamische Themengebiete?

    Dynamische in dem Sinne, dass Wissen von Heute nicht unbedingt morgen noch
    gültig ist.

    Prof84 schrieb:

    HumeSikkins schrieb:

    Imo sollte man eher versuchen die Idee der Sprache zu verstehen und dann ständig am Ball bleiben was aktuelle Entwicklungen angeht.

    IMHO ist die Grundsemantik von C++ nicht so stark einen Wandel unterzogen, wie Java oder C#.

    Das täuschst du dich imo. Schau dir mal an wie (übermäßig) beschäftigt die C++ Community in den letzten Jahren mit ihrer Template-Programmiererei war. Eine Zeitlang wurde da nebenher alles andere vergessen und alles schien ein Template sein zu müssen. Mittlerweile beruhigt sich das Ganze und es kommen wirklich relevante neue Techniken ans Licht die mit anderen Paradigmen kombiniert werden.

    Ich muss aber auch zugegeben, dass ich wahrscheinlich nicht Deinen rudimentären Tiefgang in C++ habe und in Newsgroups hänge.

    Was ist ein rudimentärer Tiefgang? Ich bin zwar wahrlich kein C++ Experte, aber etwas mehr als "verkümmert" bzw. "nur in Ansätzen vorhanden" ist mein Verständnis für C++ dann doch.



  • HumeSikkins schrieb:

    Weil sich unser Verständnis der Sprache ändert. Nimm z.B. das Copy&Swap-Idiom. Das gab es für 10 Jahren gar nicht. Vor 5 war es pflicht und heute setzt man es konditionell ein. Oder nimm den Barton-Nackman-Trick (nicht zu verwechseln mit dem CRTP). Vor ein paar Jahren war der sehr wichtig. Heute gibt es bessere Alternativen.

    😕 Du redest von der Stilentwicklung der Sprache und ich von der Definition des Idioms. Das Pattern ändert sich doch nicht. Die Struktur eines Copy&Swap bleibt immer gleich, auch wenn es heute kaum noch eingesetzt wird.

    HumeSikkins schrieb:

    Dynamische in dem Sinne, dass Wissen von Heute nicht unbedingt morgen noch gültig ist.

    Sagen wir besser "unbedingt morgen noch wichtig ist".

    HumeSikkins schrieb:

    Das täuschst du dich imo. Schau dir mal an wie (übermäßig) beschäftigt die C++ Community in den letzten Jahren mit ihrer Template-Programmiererei war. Eine Zeitlang wurde da nebenher alles andere vergessen und alles schien ein Template sein zu müssen. Mittlerweile beruhigt sich das Ganze und es kommen wirklich relevante neue Techniken ans Licht die mit anderen Paradigmen kombiniert werden.

    Wieder verwechselst Du Stilentwicklung mit technischen Möglichkeiten. Templates gab es auch vor 10 Jahren schon.



  • Du redest von der Stilentwicklung der Sprache und ich von der Definition des Idioms.

    Ok. Ich hatte implizit angenommen, dass auch der qualitative Aspekt in einer solchen Liste wichtig ist. Denn was hat man allein von Quantität? Eine Liste aller DPs z.B. wäre sinnlos ohne eine Diskussion der Vor-/Nachteile und Konsequenzen.

    Wieder verwechselst Du Stilentwicklung mit technischen Möglichkeiten. Templates gab es auch vor 10 Jahren schon

    Verstehe ich nicht. Die technischen Möglichkeiten im Bereich Templates waren vor 10 Jahren völlig anders. Es ist doch gerade der Prozess der wichtig ist. Nicht nur das Ergebnis.

    Aber letztlich führt das so zu nichts, da ich nicht verstehe auf was du hinaus willst.



  • HumeSikkins schrieb:

    Du redest von der Stilentwicklung der Sprache und ich von der Definition des Idioms.

    Ok. Ich hatte implizit angenommen, dass auch der qualitative Aspekt in einer solchen Liste wichtig ist. Denn was hat man allein von Quantität? Eine Liste aller DPs z.B. wäre sinnlos ohne eine Diskussion der Vor-/Nachteile und Konsequenzen.

    Ja, das wäre dann jetzt Level 2.

    Level 1: Defintion/Deklaration der Idiome
    Level 2: Idiome auf einer Zeitachse eintragen mit der Expertise (Poster, Map)
    Level 3: Mapping of Purpose, Scope, Circumstances and Advantages/Disadvantages
    Level 4: Ruling Usage of Metaframeworks
    Level 5: Code-Generator Rules (Configuration)
    Level 6: Embedding Code
    Level 7: Initiating RTOS

    HumeSikkins schrieb:

    Aber letztlich führt das so zu nichts, da ich nicht verstehe auf was du hinaus willst.

    Ich brüte über eine Softwarefabrik, die einen vollständigen C++ Code generieren kann. Mit zwei Prämissen
    - der Code ist lauffähig
    - der Code ist fehlerfrei

    Es ist mir klar, dass der Code keiner Stilprüfung am Anfang standhält.
    Mir hat der Thread jedenfalls was gebracht. Danke! 🙂

    Kleine Inspiration, aber nicht mein Ansatz:
    http://www.informatik.fh-kl.de/~eisenecker/polite/polite_imptech.pdf


Anmelden zum Antworten