Codestyle: Einrücken untergeordneter Abschnitte?



  • Eisflamme schrieb:

    GetElements().push_back(SomeObject(	param1, param2, param3, param4, param5,
    						        	   param6, param7, param8, param9, param10));
    

    So sieht man direkt, dass die Parameter zu SomeObject gehören, ist quasi einfach ein "Parameterblock". Gleiches gilt für lange Elementinitialisierer. Krieg ich dafür auch Dresche? Wenn ja, wieso?

    Für mich optisch zu weit auseinander. Dann breche ich lieber um, und rücke dort etwas ein. Beispiel:

    GetElements().push_back(SomeObject(
      param1, param2, param3, param4, param5,
      param6, param7, param8, param9, param10));
    


  • 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. 🙂



  • Beides gräßlich, immer das erste Beispiel.



  • So und nicht anders

    GetElements()
    	.push_back(
    		SomeObject
    			(
    				param1,
    					param2,
    						param3,
    							param4,
    								param5,
    								param6,
    							param7,
    						param8,
    					param9,
    				param10)
    			);
    


  • cooky:
    Ich finde es nicht so wie in Beispiel2 zu machen fast immer deutlich schlechter lesbar. Man muss sich erstmal die Klammern zurechtwurschteln, damit man weiß, welche Parameterliste wozu gehört... Das finde ich scheußlich, wenn man es mit ein paar Leerzeichen und Tabs einfacher lesbar machen kann.



  • Eisflamme schrieb:

    Bashar:
    Du musst ja in Zeile 2 irgendwie bis nach rechts kommen.

    Naja, ich mach das nicht so. Ich sage nur, dass ich es akzeptabel finde 🙂

    Bei mir drücke ich solange Tab bis ich eben dort bin.

    Würde ich in dem Fall auch so machen. Wenn es mir zu aufwendig wird, würde ich es aber so wie asc schreiben.



  • ascs Version finde ich gut, ja.



  • asc schrieb:

    GetElements().push_back(SomeObject(
      param1, param2, param3, param4, param5,
      param6, param7, param8, param9, param10));
    

    Ist für mich akzeptabel.
    Alternativ vielleicht noch

    //A
    GetElements().push_back(
      SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
    
    //B
    GetElements().push_back(
      SomeObject(
        param1, param2, param3, param4, param5,
        param6, param7, param8, param9, param10));
    
    // oder eben gleich
    // C
    GetElements().push_back(SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
    

    Das einzig doofe ist, dass der Auto-Formatter von Visual Studio (B) nicht "kann" (es wird nur 1x eingerückt, die Parameter von SomeObject() werden nicht weiter eingerückt als "SomeObject(").



  • Eisflamme schrieb:

    Man muss sich erstmal die Klammern zurechtwurschteln

    Vielleicht solltest du einfach mal die Schriftgröße größer machen.. oder so. 😉 Ich habe da jedenfalls keine Probleme mit, und falls man mal eine Klammerorgie hat, macht man halt nach jedem Parameter einen Absatz.



  • Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.



  • 314159265358979 schrieb:

    Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.

    Ein echter Pi *einrahm*

    Ich muss zugeben, dass es bei mir sehr auf die Länge der parameterlister ankommt, was ich mache. Und ich rücke die () in dem Fall genau so ein wie ich {} einrücken würde.

    Das heißt:

    GetElements().push_back(
        SomeObject(
            param1, param2, param3, param4, param5, 
            param6, param7, param8, param9, param10
        )
    );
    

    Bei einer kürzeren Parameterliste könnte das dann aber auch so sein:

    GetElements().push_back(
        SomeObject(param1, param2, param3, param4, param5)
    );
    

    Das zweite sieht auch ganz hübsch aus, wenn man mehrere Parameter hat, die man so konstruiert und ist auch bei tieferer Klammerverschachtelung noch gut lesbar:

    GetElements().insert(
        std::make_pair(
            "id",
             SomeObject(param1, param2, param3, param4, param5)
        )
    );
    

    alles Geschmackssache 🙂


  • Mod

    314159265358979 schrieb:

    Tabs durch Leerzeichen ersetzen zu lassen ist dumm und unpraktisch.

    Quark, mal wieder, leider. Ich mag Forenbeiträge direkt aus meinem Lieblingseditor kopieren und möchte die nicht von Hand nachformatieren müssen.



  • Wie meinen? Das Forum ersetzt Tabs automatisch durch Leerzeichen. Und selbst wenn nicht, ist das eine ziemlich schwache Begründung.

    Ich sage dir, warum Tabs besser sind: Wenn mehrere Leute an Code arbeiten, kann sich jeder seine Wunsch-Tabbreite einstellen. cooky bevorzugt z.B. 4 Spaces, ich verwende 8.



  • 314159265358979 schrieb:

    cooky bevorzugt z.B. 4 Spaces, ich verwende 8.

    Abgesehen davon dass ich 2 Spaces nutze, ist das aber eher ein notwendiges Übel. Sonst nutze ich auch Leerzeichen. 😉



  • Dann eben 2.


  • Mod

    314159265358979 schrieb:

    Wie meinen? Das Forum ersetzt Tabs automatisch durch Leerzeichen. Und selbst wenn nicht, ist das eine ziemlich schwache Begründung.

    Aber mit anderer Tabbreite als ich sie benutze und dann sieht das scheiße aus. Und das ist auch genau der Grund gegen Tabs, denn von Zeit zu Zeit braucht man doch eben mal ein paar Leerzeichen, weil nicht alles exakt an den Tabs ausgerichtet. Oder man hat Tabs im Text selbst. Auf jeden Fall führt alles, was nicht strikteste Befolgung von kurzsichtigen Formatierungsrichtlinien ist, dazu, dass bei Konvertieren die Formatierung kaputt geht.

    Ich sage dir, warum Tabs besser sind: Wenn mehrere Leute an Code arbeiten, kann sich jeder seine Wunsch-Tabbreite einstellen. cooky bevorzugt z.B. 4 Spaces, ich verwende 8.

    Und gerade dann sehen Tabs für alle scheiße aus. Mit Leerzeichen sieht's zumindest für alle Beteiligten halbwegs gut aus. Und wenn sie so auf ihrer Lieblingsformatierung bestehen, dann jagen sie den Text durch einen automatischen Einrücker und haben dann sogar Klammern und Zeilenumbrüche in ihrem Lieblingsstil.



  • Deine Begründungen sind absoluter Schwachsinn. Wenn man Tabs richtig verwendet, geht die Formatierung auch nicht kaputt. Tabs mitten im Text sind tödlich.



  • @314159265358979
    Der Streit Tabs vs. Spaces geht seit es Programmierer gibt, danke dass du endlich Klarheit geschaffen hast.

    Vielleicht sollte man das auf Slashdot, Reddit etc. posten, damit es möglichst viele Programmierer sehen.



  • Dann argumentiert halt mal sinnvoll. Bisher beruhen eure "Begründungen" nur auf der Tatsache, dass ihr zu doof seid, Tabs und Leerzeichen richtig zu setzen. So schwer ist das nicht.



  • GetElements().push_back
    (
    	SomeObject
    	(
    		param1, param2, param3, param4, param5,
    		param6, param7, param8, param9, param10
    	)
    );
    

Anmelden zum Antworten