Krautkanal.com

Veröffentlicht am 2016-07-23 01:46:27 in /prog/

/prog/ 9096: Bernd, ich beherrsche Java sehr grundlegend und versuch...

abdots Avatar
abdots:#9096

Bernd, ich beherrsche Java sehr grundlegend und versuche derzeit, komplexere Sachen zu verstehen.

Aus aktuellem Anlass schaue ich mir da Pokemon Go-Programme an und bin auf
https://github.com/Grover-c13/PokeGOAPI-Java
gestoßen.
Ich verstehe aber leider überhaupt nicht, was ich da lese, und weiß auch nicht, wo ich anfangen soll. Kannst du mir Tipps zum Verständnis geben?

oscarowusu Avatar
oscarowusu:#9097

Lektion Nr. 1: stelle konkrete Fragen. Wenn Anfänger zu faul sind, vernünftige Fragen zu stellen, die über "kapier ich nicht" und "geht nicht" hinaus gehen, und trotzdem zu einem erfahrenen It'ler gehen, werden sie was? Ganz genau!

vicivadeline Avatar
vicivadeline:#9098

>>9097
Das ist eine API, also liefert sie nur Klassen, die von anderen Klassen aufgerufen werden können, oder? Und diese Klassen stellen dann eine Verbindung mit dem Server her und machen Zeug?

Bernd Avatar
Bernd:#9100

>>9098
Ja.

breehype Avatar
breehype:#9102

>>9096

>Ich verstehe aber leider überhaupt nicht, was ich da lese, und weiß auch nicht, wo ich anfangen soll.

Wie wäre es damit, richtig Java zu lernen? Konkret: Schnapp dir ein gutes Buch (z. B. Herbert Schildt - Java: A Beginner's Guide) und lese es komplett durch.
Anschließend könntest du dich mit den gängigen Verzeichnisstrukturen von Open-Source-Projekten beschäftigen (wo liegen die Quelldateien, was ist das andere Zeug?). Zwischendurch selbst programmieren nicht vergessen.

Der von dir verlinkte Code wirkt auf mich nicht sehr komplex - und ich codiere sonst hauptsächlich in einer Sprache, die hier im Brett unerwünscht ist. -

Bernd Avatar
Bernd:#9103

Notorischer Javahasser hier, aber ich versuchs trotzdem mal. Was aber die meisten Programmiersprachen gemeinsam haben, ist dass sie die Befehle immer nach Schema abarbeiten.

Generell solltest du dir die Frage stellen, was du überhaupt wissen willst. Wenn du nicht nur einen Teil, sondern gleich das gesamte Programm genau nachvollziehen willst, musst du dir den gesamten Quelltext durchlesen. Kommentare können dir Hinweise darauf geben, was da genau passiert.

>weiß auch nicht, wo ich anfangen soll
Du kannst dir zufällig ein paar .java-Dateien rauspicken und dort versuchen etwas zu verstehen. Oder du fängst ganz von vorne an:
Da es kein Standalone-Programm ist und, wie du richtig erkannt hast, hier nur Klassen benutzt werden, kannst du dir das Beispiel anschauen. Es geht los mit

PokemonGo go = new PokemonGo

Diese Klasse ist hier zu finden (gefunden per Trial and Error):
https://github.com/Grover-c13/PokeGOAPI-Java/blob/Development/src/main/java/com/pokegoapi/api/PokemonGo.java
Der Konstruktor, der die übergebenen Parameter bekommt ist PokemonGo (immer der gleiche Name, wie die Klasse). Später im Beispiel werden weitere Methoden (also Funktionen einer Klasse) benutzt. Wo die sich befinden kannst du entweder manuell rausfinden (alle Imports durchgehen), oder du öffnest das Projekt in deinem Lieblings-IDE und machst einen Rechtsklick auf betreffende Funktion (und dann sowas wie "Implementierung anzeigen" oder so).

albertaugustin Avatar
albertaugustin:#9105

>>9096
Komme aus dem Javaumfeld und habe diesen Aufbewahrungsort verwendet um zu Verstehen wie PoGo funktioniert. Die Kodierung ist meiner Meinung nach Scheiße und vor allem für Anfänger schlecht zu lesen. Aber im Grunde ist es ein einfacher RPC Klient, der Protobufs[1] an den Diener schickt und welche als Antwort bekommt.

[1] https://developers.google.com/protocol-buffers/