Konventionen



  • Vielleicht bin ich da die unverschämte Ausnahme, aber mir würde eine eher argumentative Begründung mehr helfen als besagte Keule. Was sprach denn gegen get-Weglassen?
    Argument 1) Dass alle Funktionsnamen Tätigkeiten beschreiben müssen. Aber sich das 'get' zu denken finde ich nicht schwer: list.size(), person.firstName(), obj.x()...
    Argument 2) Dass man dann auf die Idee kommt, vec.size() = 4 schreiben zu wollen. Das Problem kann ich mir ja vorstellen, auch wenn ich es nicht hatte. Aber wie hilft es da, überall das get wegzulassen? vec.back() = 6 geht ja.
    Argument 3) ______________________



  • In C++ finde ich es schon mal besonders angebracht, get zu schreiben, weil Member nicht genauso heißen dürfen wie Methoden. Das Problem kann man natürlich lösen, indem man seine Member irgendwie komisch benennt. 🙄

    vec.back() = 6 geht ja.

    In dem Sinne sehe ich back() auch nicht als getter, weil es einem vec[vec.size()-1] entspricht. Außer natürlich, man betrachtet operator[] auch als getter. Hängt aber IMHO von der Verwendung ab.

    Allerdings sehe ich es mit dem get nicht so eng. Ich persönlich schreibe schon gerne get, weil Methoden sind für mich "tun-Sachen". Deshalb muss da einfach ein Verb hin. Ich finde es aber auch nicht schlimm, wenn es jemand anders hält.
    Seltsamerweise heißen die Methoden bei den Collections im Java-API auch einfach size(), obwohl die sich sonst überall an die Konvention halten.



  • @Irgendwer: Ne, die haben jetzt schon ihre PascalCase Konvention. Und damit sie ja nicht get schreiben müssen, haben sie die Proberties eingeführt. 🤡



  • get ist doof



  • Sagt euch der Spruch "Aus einer Mücke einen Elefanten machen" etwas? 🕶



  • operator void schrieb:

    Vielleicht bin ich da die unverschämte Ausnahme, aber mir würde eine eher argumentative Begründung mehr helfen als besagte Keule. Was sprach denn gegen get-Weglassen?
    Argument 1) Dass alle Funktionsnamen Tätigkeiten beschreiben müssen. Aber sich das 'get' zu denken finde ich nicht schwer: list.size(), person.firstName(), obj.x()...
    Argument 2) Dass man dann auf die Idee kommt, vec.size() = 4 schreiben zu wollen. Das Problem kann ich mir ja vorstellen, auch wenn ich es nicht hatte. Aber wie hilft es da, überall das get wegzulassen? vec.back() = 6 geht ja.
    Argument 3) ______________________

    das war bloß ein argument, nicht drei: wenn der funktionsname offensichtlich kein verb ist, denkt man sich eben get oder set dran.
    aber was ist bei unoffensichtlichen verben wie .begin(), .start(), .collect()?
    .begin ist offesichtlich ein hauptwort, weil die stl hier ien übliches verbrechen begeht und man sich an .begin() gewöhnt hat.
    .start() ist ebenso ofensichtlich ein tuwort, weil man anderenfalls ja begin() geschrieben hätte. (ups, bin wieder beim lächerlichmachen, aber das geht so furchbar einfach, weil dein stil systeminharänt lächerlich ist.)
    .collect() ist vermutlich ein verb. nicht sehr sicher, weil nubes so .collection() abkürzen.



  • Irgendwer schrieb:

    Du Optimist, glaubst du wirklich, dass man sich bei Stillfragen je auf irgendetwas einigen wird?

    nein. ich glaube, daß es immer irgendwelchen aberglauben geben wird. heute sind es unterstiche und uml, morgen werden wir was anderes haben.



  • (ups, bin wieder beim lächerlichmachen, aber das geht so furchbar einfach, weil dein stil systeminharänt lächerlich ist.)

    roflmao! 😃



  • Optimizer schrieb:

    In C++ finde ich es schon mal besonders angebracht, get zu schreiben, weil Member nicht genauso heißen dürfen wie Methoden. Das Problem kann man natürlich lösen, indem man seine Member irgendwie komisch benennt.

    Ich verwende Methoden öfter als Member; dann verstümmele ich lieber die privaten Eingeweide, die nur die Klasse selbst sieht. Aber immerhin hört sich dein Beitrag nicht mehr danach an, als gäbe es die Eine Göttliche Wahrheit (tm).

    volkard schrieb:

    das war bloß ein argument, nicht drei: wenn der funktionsname offensichtlich kein verb ist, denkt man sich eben get oder set dran.
    aber was ist bei unoffensichtlichen verben wie .begin(), .start(), .collect()?

    Ich habe hier x(), map(), input(), name(), mode(), width(), actions()..., und nur map() und name() könnte man mit viel Fantasie für Verben halten. Naja, immerhin weiß ich jetzt deine Begründung. Drauf achten kann man ja mal 🙂



  • operator void schrieb:

    map() und name() könnte man mit viel Fantasie für Verben halten

    Fantasie braucht man dazu nicht. Habe ich gerade ganz ohne geschafft. 🙂

    Hab gleich auf anhieb gedacht, das wären Verben. Könnte mir auch was drunter vorstellen. Wenn die doofen Klammern nicht wären(Eigenschaften statt Methoden), hätte ich auch ne Idee, was das sein könnte. Aber sonst... nö.

    Ach ja, @Volkard: Auch begin() ist ein Verb. (Für mich.)



  • Ich bedanke mich für die vielen Beiträge 🙂 🙂 (Hätte nicht gedacht, dass ich so eine heiße Diskussion entfachen würde 😉 )

    Jedenfalls war Volkard der einzige, der konkrete Beispiele gegeben hat, während die andern sich um Unterstrich oder Großbuchstabe gekloppt haben. Nichts für ungut - ich finde das Forum hier wirklich echt einsame spitze, dazu gehören eben auch solche Diskussionen! 👍 😋

    Aber das macht eine Sprache eben aus - nu werd ich meinen eigenen Stil entwickeln, wie ihr er anscheinend auch macht. 🙂

    Mr. B


Anmelden zum Antworten