Wie rückt man Quell code richtig ein `?



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Richtig einrücken tut man mit indent (oder das was die IDE halt so mitliefert) machen. Wie das dann genau aussehen soll ist entweder vom Projekt gesetzt, oder

    virtuell Realisticer schrieb:

    Geschmackssache



  • #include <iostream>
    
    class test
        {
        int eingabe;
        int zurueck;
    public:
        void start();
        void anweisung();
        };
    
    void test::start()
        {
        std::cout<<"(1) Programm starten\n";
        std::cin>>eingabe;
        if(1==eingabe)
            {
            anweisung();
            }
        }
    
    void test::anweisung()
        {
        std::cout<<"Sie sind jetzt in der Klasse test und in der funktion anweisung() \n";
        std::cout<<"(1) Zurueck zum Anfang in die Funktion start()\n";
        std::cin>>zurueck;
        }
    
    int main()
        {
        int zurueck;
        do
            {
            test a;
            a.start();
            }
        while(1==zurueck);
        system("PAUSE");
        }
    

    Was haltet ihr davon?

    Und nein, das habe ich mir nicht ausgedacht, sondern der Code, an dem ich derzeit arbeite(n muß), ist tatsächlich so formatiert...



  • Hi

    Schlecht!

    Bye



  • Nabend,

    der mob schrieb:

    virtuell Realisticer schrieb:

    das ist Geschmackssache.

    das ist nur die halbe wahrheit. die grundlegende prämisse, dass die einrückung der programmlogik entspricht, muss in jedem fall erfüllt sein.

    Die Programmlogik hat nicht im geringsten etwas mit der Einrueckung zu tun.

    ob man dann mit 2 leerzeichen, 1 tab einrückt und die klammern in eigene zeilen setzt ist dann vielleicht geschmacksache.

    void
    funktion
    (int a,int b) { int 
        c
            =a*b
    ;
    return
        c
    ; }
    

    irgendjemand auf der welt findet das bestimmt schön, somit trifft es seinen geschmack. aber sinnvoll ist es nicht, und wer so einrückt kann nicht programmieren.

    Das ist voelliger bloedsinn. Wie kommst du nur auf die Idee, die Faehigkeit
    programmieren zu koennen am Style der Einrueckung fest zu machen?

    mir persönlich fällt es sehr schwer, mit code zu arbeiten, bei dem die öffnende geschweifte klammer nicht in einer eigenen zeile steht. ich kann solchen code einfach nicht lesen.

    Das ist dann aber dein Problem und nicht das Problem eines anderen.

    Dir bleibt in diesem Falle nichts weiter uebrig, als zu ueben, auch anderen
    Codestyle lesen zu koennen.

    Was haltet ihr davon?

    Gerade passend zum Thread. Aber was andere oder du davon halten ist letztlich
    egal. Wenn ihr in eurem Projekten oder speziell in diesem Projekt kein Codestyle
    vorgegeben und auch nicht abgesprochen habt, dann musst du eben in den sauren
    Apfel beissen und damit leben. Fakt ist, es aendert erstmal nichts an der
    Programmlogik, wie bereits behauptet worden ist und was andere davon halten
    duerfte auch reichlich uninteressant sein, es sei denn es ist dir wichtig,
    dass andere das genauso sehen wie du.

    gruss
    v R



  • quellcode immer von links nacj rechts einrücken. ⚠



  • richtiges enrücken ist nur unter linu möglich. alles andere ist billiges gefrickel und gottlos. So ist es, nur spo und nicht anders!



  • dooooomi schrieb:

    ...
    Was haltet ihr davon?

    Und nein, das habe ich mir nicht ausgedacht, sondern der Code, an dem ich derzeit arbeite(n muß), ist tatsächlich so formatiert...

    Das ist eine mögliche (nicht meine präferierte) Form der Einrückung. Wie schon erwähnt Geschmackssache. Zumindestens kann man den Zusammenhang erkennen und der Code ist nicht wild formatiert sondern nach einem Standard.

    Mein persönlicher Stil ist eigentlich die Klammern auf der selben Ebene zu setzen wie das Schlüsselwort das den Block beginnt, Ausnahmen gibt es vielleicht wenn die Funktion ein Einzeiler ist (dann setze ich die öffnende Klammer der Fuktion auch mal direkt hinter den Funktionskopf. Und ich gehöre auch zu den Menschen die selbst Zugriffsmodifikator einrücken:

    ...
    class A
    {
        public:
            int foo();
            int foo2();
    };
    
    int A::foo() {
        return 4;
    }
    
    int A::foo2()
    {
        ...
    }
    
    int main()
    {
        foo();
        for(int i=0; i<10; ++i)
            foo2();
    }
    

    Wichtig ist meines erachtens das man unabhängig vom Stil die Ebenen des Programmflusses erkennt, und man nicht unbegrenzt scrollen muss (in der Regel
    mache ich z.b. einen 4er Abstand bei neuen "Ebenen", und einen 2er falls ich
    Code umbrechen muss).

    cu André



  • virtuell Realisticer schrieb:

    Die Programmlogik hat nicht im geringsten etwas mit der Einrueckung zu tun.

    wow, das ist richtig. das hat allerdings auch niemand behauptet.

    Das ist voelliger bloedsinn. Wie kommst du nur auf die Idee, die Faehigkeit
    programmieren zu koennen am Style der Einrueckung fest zu machen?

    weil eine einrückung dazu dient, die logik des programms zu visualisieren. wer das nicht versteht und davon grundlegend abweichend einrückt (etwa ausschließlich nach willkürlichen ästhetischen kritieren), der hat einen teil des gebiets der programmierung nicht verstanden.

    mir persönlich fällt es sehr schwer, mit code zu arbeiten, bei dem die öffnende geschweifte klammer nicht in einer eigenen zeile steht. ich kann solchen code einfach nicht lesen.

    Das ist dann aber dein Problem und nicht das Problem eines anderen.

    ja, ebenfalls richtig. ich hätte vielleicht anmerken sollen, dass meine sich aussage auf die vorherige diskussion bezogen hat.

    Dir bleibt in diesem Falle nichts weiter uebrig, als zu ueben, auch anderen Codestyle lesen zu koennen.

    glücklicherweise meisten doch. 🙂

    Fakt ist, es aendert erstmal nichts an der
    Programmlogik, wie bereits behauptet worden ist

    nö.



  • Nabend,

    der mob schrieb:

    virtuell Realisticer schrieb:

    Die Programmlogik hat nicht im geringsten etwas mit der Einrueckung zu tun.

    wow, das ist richtig. das hat allerdings auch niemand behauptet.

    Dann hab ich das missverstanden:

    ...
    die grundlegende prämisse, dass die einrückung der programmlogik entspricht, muss in jedem fall erfüllt sein.
    ...

    Das ist voelliger bloedsinn. Wie kommst du nur auf die Idee, die Faehigkeit
    programmieren zu koennen am Style der Einrueckung fest zu machen?

    weil eine einrückung dazu dient, die logik des programms zu visualisieren. wer das nicht versteht und davon grundlegend abweichend einrückt (etwa ausschließlich nach willkürlichen ästhetischen kritieren), der hat einen teil des gebiets der programmierung nicht verstanden.

    Welchen Teil der Programmierung hat er dann missverstanden? Das Programme
    im Stiel, welcher subjektiver Natur ist, schoen sein muessen?

    gruss
    v R



  • virtuell Realisticer schrieb:

    Dann hab ich das missverstanden:

    ...
    die grundlegende prämisse, dass die einrückung der programmlogik entspricht, muss in jedem fall erfüllt sein.
    ...

    offensichtlich.

    Welchen Teil der Programmierung hat er dann missverstanden? Das Programme
    im Stiel, welcher subjektiver Natur ist, schoen sein muessen?

    nein. wie schon gesagt:

    der mob schrieb:

    eine einrückung dazu dient, die logik des programms zu visualisieren

    nochmal: man rückt code nicht ein, damit er nach subjektiven kriterien gut aussieht, sondern damit nach objektiven kriterien die programmlogik sich in der einrückung widerspiegelt (z.b. neuer scope -> neue einrückungsebene). einrückungen, die sich nicht an die programmlogik (vielleicht besser: programmstruktur) halten sind kontraproduktiv, auch wenn sie wunderschön aussehen.



  • virtuell Realisticer schrieb:

    ...
    weil eine einrückung dazu dient, die logik des programms zu visualisieren. wer das nicht versteht und davon grundlegend abweichend einrückt (etwa ausschließlich nach willkürlichen ästhetischen kritieren), der hat einen teil des gebiets der programmierung nicht verstanden.

    Welchen Teil der Programmierung hat er dann missverstanden? Das Programme
    im Stiel, welcher subjektiver Natur ist, schoen sein muessen?

    Den Teil das Code für Menschen nicht für Maschienen geschrieben wird, und man sich selbst und anderen die Entwicklung vereinfacht wenn man sich daran hält. Ich erwarte von einem Roman auch eine logische Gliederung in Kapitel und Abschnitte. Das macht das Lesen und Verstehen einfacher.

    Wer frei nach Schnauze einrückt ohne logische Struktur, ist für Teamarbeit jedenfalls nicht geeignet. Dabei ist es egal ob es verbindliche Programmierrichtlinien in der Firma gibt, oder nicht.

    cu André



  • Mr Evil schrieb:

    einrueckungen schoen mit tab, dann passts im jeden editor immer schoen

    Was für ein Schwachsinn! Das genaue Gegenteil ist richtig! Das kann nur jemand schreiben, der nie fremden Code lesen muss



  • ceplusplus@loggedoff schrieb:

    Da das Design der Seite nun eh zerstört ist, wie würdet ihr es schreiben:

    Zwei Extrembeispiele
    Wichtig ist mir immer, daß man sehen kann wo welcher Block anfängt/aufhört. Solange alles in eine kurze Zeile paßt, schreibe ich das auch so rein.

    Constructor::Constructor (
        int a, int b, ...
        int i, int j, ...
    ) :
        a(a_), b(b_), c(c_), d(d_), e(e_), f(f_), g(g_), h(h_),
        i(i_), j(j_), k(k_), l(l_), m(m_), n(n_), o(o_), p(p_),
        q(q_), r(r_), s(s_), t(t_), u(u_), v(v_), w(w_), x(x_),
        y(y_), z(z_)
    {
        // Hier steht der Code Block
    }
    
    Constructor::Constructor () {}
    


  • Mr Good schrieb:

    Mr Evil schrieb:

    einrueckungen schoen mit tab, dann passts im jeden editor immer schoen

    Was für ein Schwachsinn! Das genaue Gegenteil ist richtig! Das kann nur jemand schreiben, der nie fremden Code lesen muss

    ...oder wo alle mit ähnlichen Tabgrößen arbeiten...

    Am schlimmsten ist aber wenn es im Projekt uneinheitlich gehalten ist, man auch in fremden Code häufiger korrigieren darf und dann eine Mischung aus Space & Tabs entstehen (und wo die Tabgrößen zudem noch frei Schnauze rechnerspezifisch sind) ;p

    cu André



  • Mr Good schrieb:

    Mr Evil schrieb:

    einrueckungen schoen mit tab, dann passts im jeden editor immer schoen

    Was für ein Schwachsinn! Das genaue Gegenteil ist richtig! Das kann nur jemand schreiben, der nie fremden Code lesen muss

    das stimmt nicht. bei konsistenter, streng logischer einrückung hat tab durchaus vorteile ggü. space. ein konsistent und korrekt mit tabs eingerückter code sieht bei jeder beliebigen tabweite richtig aus.
    ein problem entsteht dabei erst, wenn außerdem nach ästhetischen gesichtspunkten eingerückt (formatiert) wird und/oder space und tab vermischt werden.

    die imho beste lösung: tabs nur für logische einrückung (faustregel: tabs nur am zeilenanfang), alles andere mit space (z.b. damit die literale in enums auch schön ordentlich untereinander stehen).



  • CSpille schrieb:

    Das mit den Leerzeichen statt Tabs ist ja wohl nen schlechter Scherz

    Bei meinem Prof gäbe es dafür Punktabzug wenn man Tabs verwendet.

    Und was er auch nicht mag ist weniger als 2 oder mehr als 2 Leerzeichen.

    D.h. NUR so wäre es korrekt:

    [code]
    int correct()
    {
    if( blubb )
    return 1;
    else
    return 0;
    }
    [/QUOTE]



  • Ups, so war's gemeint:

    int correct()
    {
      if(bla)
        return 1;
      else
        return 0;
    }
    


  • Mr. Happy schrieb:

    So in etwa machen das die Profis:

    #include <iostream>
    class _{private:int __,___;public:int ____();int _____();};int _::____(){std::cout<<"(1) Programm starten\n";std::cin>>__;switch(__){case 1:_____();}return 0;}int _::_____(){std::cout<<"Sie sind jetzt in der Klasse _ und in der funnktion _____() \n";std::cout<<"(1) zurueck zum Anfang in die Funktion ____()\n";std::cin >>___;return 0;}int main(){int ___;do{_ ______;______.____();}while(___==1);}
    

    Du bist sicher ein Programmierer der alten Stunde, der mit Lochstreifen sein
    Programm in den Rechner geladen hat.



  • dooooomi schrieb:

    #include <iostream>
    
    class test
        {
        int eingabe;
        int zurueck;
    public:
        void start();
        void anweisung();
        };
    
    void test::start()
        {
        std::cout<<"(1) Programm starten\n";
        std::cin>>eingabe;
        if(1==eingabe)
            {
            anweisung();
            }
        }
    
    void test::anweisung()
        {
        std::cout<<"Sie sind jetzt in der Klasse test und in der funktion anweisung() \n";
        std::cout<<"(1) Zurueck zum Anfang in die Funktion start()\n";
        std::cin>>zurueck;
        }
    
    int main()
        {
        int zurueck;
        do
            {
            test a;
            a.start();
            }
        while(1==zurueck);
        system("PAUSE");
        }
    

    Was haltet ihr davon?

    Ich finde es schlecht,
    da man so die schließende Klammer vergessen könnte.


Anmelden zum Antworten