Codestyle: Einrücken untergeordneter Abschnitte?



  • pumuckl schrieb:

    Selten. Normalerweise werden zusammengehörige Daten gepackt, d.h. z.B. ist die Adresse in den Personendaten ein einzelnes Attribut, und nicht Straße, Hausnummer, Postleitzahl, Ort, Adresszusatz etc. einzeln.

    Und wie entsteht so eine Adresse? Siehe Ursprungsposting. Ersetze SomeObject durch Address und den ganzen Rest sinngemäß.



  • Ich kann das auch in irgendwelche Gruppen stecken, die keinen anderen Sinn haben als aus 20 Attributen 10 zu machen, wobei ich dann zwei Gruppen habe, die mit hundertprozentiger Sicherheit keinen Wiederverwendungswert haben, weil sie nur in diesem Kontext auf diese Weise zusammengestellt sind. Man hat manchmal einfach viele Felder in irgendwelchen Formularen oder an sonstigen Stellen. Das passiert in der Praxis einfach ständig imo. Da kann man sich quasi eine beliebige Geschäftsapplikation bei SAP anschauen oder auch ein Data Warehouse oder auch ein Webformular, wo ein paar Daten mehr stehen.

    Oder man schaut sich eine Umfrage an. Man gruppiert da schon, aber an einer gewissen Stelle hat man eben 20 Items. Und dann sind das 20 und nicht 5 und es macht auch keinen Sinn sich künstlich Gruppen auszudenken.

    Und wenn ich bei einem 3D-Modell Vertices, Indices, Normalenvektoren, Tangentenvektoren, Texturkoordinaten, Bonekoordinaten uvm. habe, dann macht das für mich imo auch keinen Sinn das großartig weiter zu gruppieren, denn schlussendlich muss man das wieder für genau ein Objekt (nämlich das Modell) an OpenGL oder DirectX übergeben. Das sind dann viele Attribute, doch sie gehören trotzdem logisch zu einer Sinneinheit. Absolut legitim imo.



  • Bashar schrieb:

    Und wie entsteht so eine Adresse? Siehe Ursprungsposting. Ersetze SomeObject durch Address und den ganzen Rest sinngemäß.

    Die Adresse selbst ist einer der Fälle, wo tatsächlich mal 5 einzelne Attribute sinnvoll sind. Aber Personendaten mit so einer Adresse werden dann eben nicht so zusammengesetzt:

    Person p("Manuela", "Mustermann", 38 /*Alter*/, "Bahnhofstr.", 11 /*hausNr*/, 25469 /*PLZ*/, "Halstenbek", "EG links", 47 /*Schuhgroesse*/ /*...*/);
    

    sondern so:

    Adresse a("Bahnhofstr.", 11 /*hausNr*/, 25469 /*PLZ*/, "Halstenbek", "EG links");
     Person p("Manuela", "Mustermann", 38, a);
     /* ... */
    


  • 314159265358979 schrieb:

    Ich sag doch Tabs mitten im Text sind Mist!

    🙄

    Unixsysteme gehen den anderen Weg: anstatt Tabs im Text zu verbieten, setzen sie per konvention die Tabbreite auf 8.

    Also Textverständnis bleibt bei deinem Feldzug auch außen vor, oder?



  • Eisflamme schrieb:

    Bashar:
    Du musst ja in Zeile 2 irgendwie bis nach rechts kommen. Bei mir drücke ich solange Tab bis ich eben dort bin. Wenn Du Tabs nicht magst, musst Du entweder die Leertaste gedrückt halten (was mir deutlich zu lange dauern) oder doch die Tab-Taste nutzen und eben auf Leerzeichen eingestellt haben. Oder es gibt eine weitere Funktion, die ich übersehen habe. 🙂

    Bis nach rechts kommen? Du rückst deinen Code händisch ein? Ist das nicht viel zu mühselig? Bei mir ist die Tab-Taste übrigens auf die Indent-Funktion gesetzt. Die rückt den Code für mich automatisch ein (wobei auch nach ;{} etc. automatisch eingerückt wird).



  • pumuckl schrieb:

    Bashar schrieb:

    Und wie entsteht so eine Adresse? Siehe Ursprungsposting. Ersetze SomeObject durch Address und den ganzen Rest sinngemäß.

    [...]sondern so:

    Adresse a("Bahnhofstr.", 11 /*hausNr*/, 25469 /*PLZ*/, "Halstenbek", "EG links");
     Person p("Manuela", "Mustermann", 38, a);
     /* ... */
    

    Die Adresse hat 5 Parameter, worauf willst du eigentlich hinaus? Davon abgesehen: Wenn du das in einem Rutsch konstruieren willst, sieht es so aus:

    persons.push_back(Person("Manuela", "Mustermann", 38, Adresse("Bahnhofstr.", 11 /*hausNr*/, 25469 /*PLZ*/, "Halstenbek", "EG links")));
    

    Die Daten sind da, sie müssen von A nach B geschoben werden. Du kannst das einschachteln wie du willst, davon verschwindet das Problem nicht.



  • Wenn ich das so mache wie z.B. auch seldon das in seinem Code hatte, muss ich in Zeile 2 natürlich irgendwie dahin kommen. Das meiste wird automatisch eingerückt, klar.



  • @otze: Niemand hält sich an diese Konvention, daher ist es besser, Tabs im Text zu vermeiden.



  • Bashar schrieb:

    worauf willst du eigentlich hinaus?

    Darauf, dass man solche Monster wie das gezeigte tunlichst vermeiden sollte, der Leserlichkeit wegen. Und darauf, dass man im Idealfall eben nicht 5 oder mehr Parameter übergeben müssen sollte sondern solche Monstren sinnvolle in mehrere Zeilen aufteilt.



  • Na ja, klar. Ich versuche auch das zu vermeiden, aber ich bilde halt nicht sinnlos Gruppen, wenn diese unnötig sind. Bei Klassen mit mehreren Attributen überlege ich durchaus nach sinnvoller Gruppierung. 🙂

    Aber was eben auch vorkommt, ist, dass ich lange Namen habe, weil die zur Beschreibung notwendig sind (ich denke, dass das passieren kann; da sind wir uns einig?). Und dann ist selbst bei 5 Attributen ein Umbruch oft notwendig.


Anmelden zum Antworten