Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

11

30.08.2010, 21:34

Die Frage ist: Warum private Member überhaupt irgendwie markieren? Bei mir haben die genauso normale Namen wie alle andren Objekte auch.

Ich hab mit PHP angefangen und mich dann nach oben gearbeitet, wenn man so will.
Dort habe ich das noch so gelernt, dass Private Methoden oder Variablen einen Unterstrich vorangestellt bekommen, da in PHP 4 keine Privaten Methoden/Eigenschaften existierten (alles war öffentlich, OOP in den Kinderschuhen), wurden Membern von denen man nicht wollte, dass andere Entwickler darauf zugreifen, ein Unterstrich vorangestellt. Das war eine Art Präfix um anderen Entwicklern mitzuteilen "Halt, stopp, diese Variable gilt als Private". Heutzutage in PHP 5.x existiert natürlich eine Abgrenzung (Private, Protected, Public).
Das habe ich dann einfach in andere Sprachen übernommen und auch schon von einigen anderen gesehen.
Da es in Python allerdings, wie in PHP 4 nur eben mit Absicht (sprich es war von Anfang an so geplant), keine Privaten Eigenschaften/Methoden gibt, verwende ich es dort eben genau auf die gleiche Art wie damals in PHP 4.

edit: und eben auch aus den von drakon genannten Übersichts- und Zuordnungsgründen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

12

30.08.2010, 21:34

Ich mach das, weil die schneller finde und besser erkenne.

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

13

30.08.2010, 22:17

Die Frage ist: Warum private Member überhaupt irgendwie markieren? Bei mir haben die genauso normale Namen wie alle andren Objekte auch.

In Methoden kann man die dann besser Unterscheiden.

C-/C++-Quelltext

1
2
3
4
5
void someMethod(int iVar, double dVar)
{
    m_iVar = iVar;
    m_dVar = dVar;
}


Man kann die Variablen in der Methode einfach auch anders bennen und mit initialisierungslisten Arbeiten... ;) Nur für Überprüfungen auch bestimmte Werte kann man dich das überlegen. Wie gesagt, muss aber nicht sein wenn man die lokalen Variablen anders bennent.

Bisher war ich immer ein Fan von ungarischer Notation, der Thread lässt mich das nochmal überdenken, die Argumente sind echt gut. An der Arbeit wünschte ich mir aber oft das wir sie einsetzen. Teilweise ist der Typ nämlich nicht aus dem Variablennamen ersichtlich und der Code schwer nachvollziehbar. Das ist aber (leider) VB6... Und da kann man auch Variablen und Funktionen manchmal schlecht auseinander halten. Da nehme ich in eigenen Programmteilen ne schwache Form der ungarischen Notation, die das lesen des Quellcodes erheblich vereinfacht.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

14

30.08.2010, 22:42

m_ g_ s_ p(pointer) und dann s für strings, v für vector etc.

Eben die ganzen besonderen Kennzeichnungen und alles, was kein Standardtyp ist. int, float, bool etc. ist eigentlich unnötig imho.
Ich benutze es aber auch nur, um auf einen Blick zu sehen "Das ist kein int, das ist ein vector von ints." oder "Das ist kein char, sondern ein string."... Der zusätzliche Buchstabe bzw. das Präfix "m_" ist wirklich kein großer Aufwand, erhöht die Lesbarkeit aber enorm.
WIP Website: kevinheese.de

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

15

30.08.2010, 22:52

Ich benutze es aber auch nur, um auf einen Blick zu sehen "Das ist kein int, das ist ein vector von ints." oder "Das ist kein char, sondern ein string."...

das sollte schon durch den namen an sich ersichtlich sein.
als beispiel: Vector2d Position; std::vector<Vector2d> Positions;
dass ein name nicht aus einem einzelnen char besteht ist auch klar...
bei globalen variablen und privaten membern mach ichs auch. konstanten werden grundsätzlich MIT_CAPSLOCK_GESCHRIEBEN^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

16

30.08.2010, 22:52

Igit :thumbdown:

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

17

30.08.2010, 22:59

Bei der Deklaration ist es klar, dass man das sieht.
Aber jetzt stell dir mal vor, du bist irgendwo im Code und siehst "Position", klar vermutet man dass es nen 2d/3d Vektor ist - aber sicher biste dir da nicht. Schließlich kann Position auch genauso gut die Mitte sein oder etwas völlig wirres. Im besten Fall ist es oben in der Datei, aber kann auch woanders stehen. Tjoa und dann musste erstmal suchen und wieder zurück..
Ginge alles einfacher wenn am Präfix erkennbar wäre, was es ist.
Verstehe jetzt nicht, was daran igitt ist. Die Zeiten in denen es cool war, unlesbaren Code zu schreiben, sind doch hoffentlich vorbei, oder?

Es geht doch nichts über gut lesbaren Code, der eindeutig ist und beim ersten Mal lesen direkt verständlich ist. :D
WIP Website: kevinheese.de

18

30.08.2010, 23:02

Oder man fährt einfach mit der Maus über die Variable und schon öffnet sich eine Infobox mit allen nötigen Informationen.

19

30.08.2010, 23:03

Zitat

Verstehe jetzt nicht, was daran igitt ist. Die Zeiten in denen es cool war, unlesbaren Code zu schreiben, sind doch hoffentlich vorbei, oder?
War das schonmal cool unlesbaren Code zu schreiben? Weiß gar nicht.
Aber ich finde diese Schreibweise blöd..... bricht man sich ja was ab, wenn man das Schriebt und beim lesen ebenso.

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

20

30.08.2010, 23:05

Zitat

Verstehe jetzt nicht, was daran igitt ist. Die Zeiten in denen es cool war, unlesbaren Code zu schreiben, sind doch hoffentlich vorbei, oder?
War das schonmal cool unlesbaren Code zu schreiben? Weiß gar nicht.


Es gab doch mal diesen Trend, dass man Code möglichst unverständlich und unformatiert geschrieben hat, und dann gesagt hat: "Ich bin so pro, ich versteh das." Erleb ich teilweise heute noch in diversen Foren.

Zitat


Aber ich finde diese Schreibweise blöd..... bricht man sich ja was ab, wenn man das Schriebt und beim lesen ebenso.

m_
m_
m_m_m_m_m_m_m_m_m_m_m_
pppppppp
s_s_s_s_s
g_g_g_
...


Alles noch dran ;). Sorry, aber für mich ist der Aufwand so gering und der Nutzen im Verhältnis so groß, das lohnt sich einfach. Aber da hat jeder wohl seine eigene Philosophie.
WIP Website: kevinheese.de

Werbeanzeige