Seite 2 von 2

Re: Dictionaries in Liste durchsuchen

Verfasst: Montag 5. Januar 2015, 22:30
von Hyperion
Serpens66 hat geschrieben: Ich wüsste aber ehrlich gesagt auch keine Namen, die mehr über die Verwendung aussagen würden. Die aktuelle Namensvergebung beschreibt es schon recht gut. Aber dennoch ist eine zusätzliche Beschreibung nötig, was auch bei jedem anderen Namen der Fall wäre.
Hier irrst Du schon wieder, junger Padawan ;-)
Umgekehrt wird ein Schuh draus: Wenn Du eine Funktion (Klasse usw.) nicht mit einem aussagekräftigen Namen versehen kannst, dann ist mit großer Wahrscheinlichkeit Dein Design verbesserungswürdig. Oftmals "macht" eine Funktion dann viel zu viel! Wenn Du Funktionen nur auf folgende Weise präzise beschreiben kannst: ``MacheDiesUndDasUndJenesOderWasAnderes`` weisst Du, dass Du viel zu viel in *einer* Funktion (oder Klasse usw.) machst. Denk da mal bei Deinen Funktionen drüber nach. Versuche mal wirklich alle Aspekte einer Funktion in einen Namen zu packen. Ich wette bei Dir kommen solche Namen dabei heraus ;-)

Das Stichwort lautet dabei auch "self documenting code" - der Code an sich sollte sofort ohne Kommentare gut lesbar sein, so dass man leicht aus dem Code ablesen kann, *was* er tut. Kommentieren sollte man allenfalls *wieso* man etwas auf bestimmte Weise glöst hat, wenn das nicht offensichtlich erkennbar ist.

Ich empfehle Dir mal (ggf. auch für später) das Buch "Clean Code" von Robert C Martin aka "Uncle Bob". Darin finden sich viele allgemeine Ratschläge über die Codierung im allgemeinen. Auch wenn vieles Javaesque rüber kommt und sich auch oftmals nur für statisch typisierte OOP-Sprachen nutzen lässt, stehen auch viele wirklich gute allgemeine Ratschläge in dem Buch. Insbesondere für Änfänger imho sehr sinnvoll!
Serpens66 hat geschrieben: Wie ihr ja schon deutlich merkt, bin ich kein Mensch, der sich gerne Konventionen unterwirft.
...
Ich vermute das liegt daran, dass ich nicht immer sofort sehe, wo die Vorteile der Konventionen liegen. Ich höre meist halt nur "das macht man einfach so weil es Konvention ist!" Aber das ist für mich kein Grund :D
Denk mal darüber nach: Konventionen (insbesondere aus offizieller Quelle, z.B. PEP8) haben immer einen Sinn. Wenn Du den nicht sofort siehst, investiere Deine Zeit am besten sofort darin, den Grund zu erfahren. google, stackoverflow und reddit sind da Deine Freunde, aber natürlich auch die Suchfunktion dieses Boards.

Auch wenn es erst einmal hart klingt: Es gibt da draußen so viel mehr Leute als man selber, die echt fit sind und solche Dinge durchdenken, so dass man fast immer falsch damit liegt, wenn man gegen den Strom schwimmt - *insbesondere* als (Programmier-)anfänger. Gehe zunächst davon aus, dass eine *etablierte* Konvention einen Grund hat; erforsche diesen und durchdenke ihn. Wenn Du dann noch Zweifel hast, frag hier oder woanders nach. Und wenn Du es dann doch anders machen willst, dann hast Du ggf. einen sinnvolleren Weg gefunden oder kannst zumindest in solchen Diskussionen mehr bieten als einen (hinkenden) Vergleich zur Kleidungskonvention in Unternehmen ;-)

Re: Dictionaries in Liste durchsuchen

Verfasst: Montag 5. Januar 2015, 22:52
von BlackJack
@Serpens: Statt mit unterschiedlich aufgebauten Datenstrukturen von verschiedenen Webseiten in einer Funktion zu hantieren und dort überall die Quelle an die Namen zu hängen würde man die APIs der verschiedenen Webseiten kapseln und nach aussen jeweils die gleiche API für jede Webseite zur Verfügung stellen. Und die Funktion die Order von verschiedenen Webseiten verarbeitet braucht und sollte dadurch gar nicht wissen wo die her kommen und kann alle gleich behandeln.

”Variablen” die zusammen gehören und gemeinsame Operationen haben werden üblicherweise mit Klassen zu Objekten zusammengefasst.

Wenn Namen so spartanisch werden das man Kommentare zum erklären benötigt, dann sind sie wohl zu spartanisch.

Infoseite wofür? Diese drei Kürzel sind einfach in ziemlich vielen Quelltexten in Kommentaren zu finden. Und das recht programmiersprachübergreifend. Eclipse erstellt bei Java-Quelltext soweit ich mich erinnere automatisch eine Liste über die man sich zu den Quelltextstellen klicken kann, und ich habe halt schon Themes für Editoren gesehen wo die in Kommentaren hervorgehoben werden. Es gibt statische Analysewerkzeuge die für solche Kommentare Warnungen ausgeben, zum Beispiel Pylint. JavaDoc, Doxygen, Epydoc, und Sphinx haben Tags dafür und ich vermute auch andere Dokumentationssysteme haben so etwas.

Re: Dictionaries in Liste durchsuchen

Verfasst: Freitag 9. Januar 2015, 17:19
von Serpens66
@ Hyperion:
danke für die Erklärung der for schleife ;)
Allerdings hast du/habt ihr mich einfach nur missverstanden in dem Fall. Wie ich bereits schrieb, steht in meinem skript nirgends "lsitenelement" und das wird es auch nie (sondern nur hier im forum) ;) mir ist und war bewusst, dass es natürlich keine liste sein muss. Ich wollte nur für diesen konkreten Fall für mich selbst klarstellen, dass es hier und jetzt ein element aus der Liste ist, damit mir klar ist, dass ich nun "listenelement[1]" oderso schreiben kann, weil ich spontan nicht wusste, wie ich nun auf Inhalte dieses Objekts der for schleife zugreife ;)
Und so gesehen könnte man sogar argumentieren, dass es hier sogar doch sinnvoll ist, einen hinweis zu haben, dass es sich um ein listenelement handelt, da einem anfänger sonst evlt nicht klar wäre, wieso nun [1] dahinter steht.
Edit:das ist so natürlich nicht ganz richtig, sofern das listenelement keine liste ist :D ich meinte vermutlich eher, dass dieess listenelement in diesem Fall nun dasselbe ist wie open_orders_rock usw , das wollte ich mir lediglich verdeutlichen mit der namensgebung ;)
Aber belassen wir es dabei und auch bezüglich Konventionen nehme ich es zur Kenntnis und lassen wir es mal so stehen ;)

@BlackJack:
Danke für den Ratschlag mit der kapselung der Webseiten usw. Habe bereits schon ein paar skripte gesehen, die so aufgebaut sind und sogar in viele einzelne Dateien(skripte) unterteilt sind. Das hatte mich als Anfänger wirklich seeehr abgeschreckt, weil ich nicht nachvollziehen konnte, woher da nun was kommt und wie es weitergeht, ohne jede einzelne Datei zu durchforsten und zu verstehen.

Aber wenn man sich schon etwas auskennt, ist es natürlich wirklich sehr sinnvoll, die Dinge so aufzubauen, weshalb ich jetzt ebenfalls damit anfange und mein Skript so aufbaue (also alles in einzelne Funktionen verfrachten, die untereinander wechselwirken. Ob ich auch noch mehr einzelne Dateien mache, werde ich dann sehen). Im Zuge der Thread-nutzung muss ich das ja sowieso :)

"Infoseite wofür? Diese drei Kürzel sind einfach in ziemlich vielen Quelltexten in Kommentaren zu finden."
Ich hatte an eine Infoseite gedacht, wo steht, wie man diese Kürzel für Notepad++ aktiviert, da sie es standardmäßig offensichtlich nicht sind. Ist aber auch nicht so wichtig... Sollte es doch nochmal wichtiger werden, durchforste ich mal selbst das Web da nach.