Codestyle: Einrücken untergeordneter Abschnitte?
-
Dann eben 2.
-
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 ) );
-
314159265358979 schrieb:
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.
Google die Argumente doch selbst.
Neues gibt es hier nicht mehr zu sagen.
Es gibt zwei Lager, die Tabber und die Spacer (OK, drittes Lager: die Mirwuschter), und die werden sich nicht einig werden.Zu glauben du hättest die allgemeingültige Lösung gefunden ist gleichermassen anmassend wie dumm.
ps: ich selbst bin Tabber, was aber überhaupt nichts zur Sache tut.
-
Nö, ihr wollt mich belehren, also reibt mir die Argumente unter die Nase oder lasst es bleiben.
-
314159265358979 schrieb:
Nö, ihr wollt mich belehren, also reibt mir die Argumente unter die Nase oder lasst es bleiben.
Mein Argument hab' ich dir bereits geschrieben, hast du einfach ignoriert. Hier nochmal:
Neues gibt es hier nicht mehr zu sagen.
Es gibt zwei Lager, die Tabber und die Spacer (OK, drittes Lager: die Mirwuschter), und die werden sich nicht einig werden.Zu glauben du hättest die allgemeingültige Lösung gefunden ist gleichermassen anmassend wie dumm.
Ich argumentiere ja nicht für Spaces oder gegen Tabs, sondern den Standpunkt dass es anmassend und dumm von dir ist, zu meinen du wüsstest was besser als alle anderen, wenn offensichtlich seit Jahrzehnten kein Konsens in der Community gefunden werden konnte -- und das nichtmal annähernd.
EDIT: ich will dir auch nicht deine Meinung dass Tabs besser sind wegdiskutieren, ich teile diese Meinung ja. Nur bitte check es endlich: du bist nicht das Mass der Dinge, und nur weil du meinst alles relevante zu einem Thema verstanden zu haben, alles zu beurteilen zu können, hast du noch lange nicht Recht. Das solltest du eigentlich schon 3x aus Erfahrung gelernt haben. Scheint bei dir aber nicht zu funktionieren, deine Überheblichkeit ist anscheinend genetisch bedingt oder sowas.
-
314159265358979 schrieb:
Tabs mitten im Text sind tödlich.
Aber exakt das ist die Grundbedeutung von Tabs. Tabs auf Unix Systemen: "erhöhe die aktuelle Cursorposition auf ein vielfaches von 8". Und das System ist gut für alles, was in irgendeiner Form tabellarisch ist: zum Beispiel auch Arrays.
-
314159265358979 schrieb:
Nö, ihr wollt mich belehren, also reibt mir die Argumente unter die Nase oder lasst es bleiben.
Quark, mal wieder, leider.
Es ist mir egal, was du treibst.
-
Ich habe selten so viele Parameter das ich es nicht in einer Zeile schreiben kann. Und normalerweise sind sie dann auch nicht so verschachtelt wie in diesem Beispiel.
Aber ich würde meist jeden Parameter in eine Zeile schreiben.GetElements().push_back(SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
-
@otze: Nein. Tabs mitten im Text zerstören bei geänderter Tabbreite meist die Formatierung. Schon oft genug geärgert.
@SeppJ: Dann hör auf, mir ans Bein zu pissen.
-
314159265358979 schrieb:
@SeppJ: Dann hör auf, mir ans Bein zu pissen.
Dann hör auf hier rumzukotzen.
-
Einzeiler schrieb:
Ich habe selten so viele Parameter das ich es nicht in einer Zeile schreiben kann. Und normalerweise sind sie dann auch nicht so verschachtelt wie in diesem Beispiel.
Aber ich würde meist jeden Parameter in eine Zeile schreiben.GetElements().push_back(SomeObject(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));find ich ehrlich gesagt bisher als schlechteste lösung in diesem thread.
da find ich selbstGetElements() .push_back( SomeObject ( param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) );besser :D:D
-
Davon, Tabs als Tabs im Quellcode zu lassen halte ich nicht viel, ganz besonders, wenn verschiedene Leute verschiedene Einzugsbreiten eingestellt haben (das sollte man innerhalb eines Projektes meiner Meinung nach auch dringendst vermeiden). Das liegt vor allem daran, dass ein Tab außerhalb der Voreinstellungen von Visual Studio in aller Regel als 8 Leerzeichen verstanden wird, was für Einrückung durchaus als viel zu breit angesehen werden kann. Habe ich Code mit Visual Studio auf diese Weise geschrieben und schaue ihn mir unter Linux mit Emacs an, sieht das schon mal nicht sehr hübsch aus.
Damit könnte man aber womöglich noch umgehen. Schwieriger ist es in anderer Richtung - ich fange unter UNIX an und portiere den Kram dann nach Windows. Ihr kennt die Mischform vermutlich, Tabs da zu substituieren wo acht Leerzeichen hintereinander einrücken. Jetzt kommt also eine Codedatei daher, in der eine Zeile mit sechs Leerzeichen und die nächsttiefere mit einem Tabulator eingerückt ist. Das ist in VS, wo ein Tab vier Leerzeichen breit ist, kaum mehr lesbar. Schlimmer noch: Wenn da jetzt ein anderer davorsitzt, als der, der den Code ursprünglich geschrieben hat, sieht der zunächst nicht, dass der Code eigentlich vernünftig eingerückt ist und kümmert sich selbst nicht ausreichend darum, die Einrückung zu erhalten.
Wenn man auf Teufel komm raus boshaft sein will, kann man wohl sagen, dass ich das so sehe, weil "ich zu doof bin, Tabs und Leerzeichen richtig zu setzen", aber ich betrachte das von einer anderen Seite. Ein Verfahren, das von allen beteiligten Programmierern bei der Auswahl von Whitespaces eiserne Disziplin verlangt, ist schon bei nur einer beteiligten Person auf Dauer nicht wirklich tragbar, und wenn man mit verschiedenen Tools und verschiedenen Leuten arbeiten muss, fliegt das mit hoher Wahrscheinlichkeit schnell auseinander. Es zu verlangen, vernachlässigt meines Erachtens die menschliche Natur.
Hand aufs Herz: Wenn ich deinen Code durchgreppe, finde ich da ganz bestimmt keine einrückenden Leerzeichen drin?
Ansonsten denke ich, dass man unterscheiden muss zwischen benutztem und verlangtem Stil. Zum Beispiel sieht man in meinem Code häufig Dinge wie
class foo { public: inline double bar() const { return bar_; } inline int baz() const { return baz_; } private: double bar_; int baz_; }; function_call(param1, param2, // Gemeint ist: Bei vielen Parametern arg1, arg2, arg3, // solche, die zu einer Sinneinheit gehören, wert); // in einer Zeile hintereinander.Ich finde das einfach besser lesbar, und mir ist das wichtiger als der zusätzliche Schreibaufwand. Kudos an Microsoft an dieser Stelle übrigens, die Alt-Shift-Kiste zum synchronen Bearbeiten mehrerer Zeilen ist echt praktisch (vor allem, wenn man seine Funktionen schon so justiert hat :D).
Ich käme aber nie auf die Idee, das in einem Styleguide festzuschreiben, weil ein vorgeschriebener Stil den Charakter eines kleinsten gemeinsamen Nenners haben muss. Es geht da ja nicht darum, die Position jedes einzelnen Zeichens genau festzulegen (damit vergrault man sich die Leute nur), sondern darum, sicherzustellen, dass der Code für andere in endlicher Zeit entzifferbar ist.
Wenn man sich (nur als Beispiel) den Google-Styleguide ankuckt, stellt man fest, dass sich nur ein kleiner Teil mit Formatierung herumschlägt, und dass große Teile dieses Abschnitts bewusst vage gehalten sind; das machen die da schon ganz richtig. Es muss nicht jeder alles mögen, was in einem Styleguide steht, aber wo man einem Programmierer etwas vorschreibt, was dieser nicht mag, sollte man bessere Gründe haben als "Manager X findet das hübscher so".
-
314159265358979 schrieb:
Tabs mitten im Text zerstören bei geänderter Tabbreite meist die Formatierung. Schon oft genug geärgert.
Cool, jetzt gibst du dir schon selbst Gegenargumente.
-
314159265358979 schrieb:
@otze: Nein. Tabs mitten im Text zerstören bei geänderter Tabbreite meist die Formatierung. Schon oft genug geärgert.
Exakt das habe ich gesagt. Unixsysteme gehen den anderen Weg: anstatt Tabs im Text zu verbieten, setzen sie per konvention die Tabbreite auf 8.
-
SeppJ schrieb:
Dann hör auf hier rumzukotzen.
sry, i'm drunk! okay, eigentlich nich. aber ich mag erdbeeren! srsly!
Michael E. schrieb:
Cool, jetzt gibst du dir schon selbst Gegenargumente.
In meinen Aussagen ist kein Widerspruch. Du musst nur genau lesen.
-
otze schrieb:
Exakt das habe ich gesagt. Unixsysteme gehen den anderen Weg: anstatt Tabs im Text zu verbieten, setzen sie per konvention die Tabbreite auf 8.
Dann kapier ich deine Aussagen nicht. Mein Standpunkt: Tabs mitten im Text sind Mist. Deine Meinung dazu zusammengefasst?