Wie rückt man Quell code richtig ein `?
-
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 istnö.
-
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.
-
der mob schrieb:
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 wenig problematisch dabei ist allerdings, dass man mit blossem auge einem leerraum nicht ansehen kann, ob er sich aus spaces oder tabs zusammensetzt.
-
virtuell Realisticer schrieb:
Das ist voelliger bloedsinn. Wie kommst du nur auf die Idee, die Faehigkeit
programmieren zu koennen am Style der Einrueckung fest zu machen?Das macht mein Prof so.
O Ton:
[QUOTE]
Ob jemand programmieren kann, erkennt man daran, ob er richtig Einrücken kann.
Falsches Einrücken ist schlechter Programmierstil.
[QUOTE]
-
Werth schrieb:
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:
int correct() { if( blubb ) return 1; else return 0; }
das profs selten was von Programmieren verstehen, sollte eingehenst bekannt sein... diese Einstellung ist so ziemlich unterste Schublade