Was zeichnet einen erfahrenen Softwareentwickler aus ? Was kann man nach 6 Monaten erwarten ? ?

Diskutiere Was zeichnet einen erfahrenen Softwareentwickler aus ? Was kann man nach 6 Monaten erwarten ? ? im Softwareentwicklung Forum; Aber wie schaut es mit folgendem Fall aus (keine public-Methode) Beim UI verhält es sich wie bei der DB: nicht im Unit-Test. Im konkreten Fall...

  1. mihe7
    mihe7 Bekanntes Mitglied
    Beim UI verhält es sich wie bei der DB: nicht im Unit-Test. Im konkreten Fall handelt es sich um eine Implementierung einer Methode, die von einem Framework zur Verfügung gestellt und aufgerufen wird. Das Problem dabei: ohne das Framework kannst Du das nicht (sinnvoll) testen.

    Man muss verstehen, dass es beim TDD nicht wie beim klassischen Test darum geht, Fehler zu finden, sondern vielmehr darum, die Anwendung so zu strukturieren, dass sie testbar ist.

    Es kommt also darauf an, was Du in Deiner privaten Methode machst: falls es dort nur ums UI geht -> vergiss es (oder schreib Dir einen UI-Test; der wird in Android dann auf dem Gerät/Emulator ausgeführt). Geht es dort aber um Logik, dann hat die in der Activity nichts verloren -> in eine Klasse auslagern und dort testen. In Deiner Activity bindest Du dann die Klasse ein. Das ist meine persönliche Meinung, es gibt Leute, die das anders sehen :)
     
  2. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    "Eine Schnittstelle" kann mehrere Methoden umfassen ;)

    Wobei man sie nahezu immer "nebenbei" mit-testet. Wenn man sie in den Tests nicht braucht, braucht man sie meist gar nicht (und nach TDD ohne "meist").
     
  3. jhjh
    jhjh Mitglied
    Ich verstehe, Danke! :)
    Hmm, also ich habe beispielsweise eine GoogleMapActivity. Hier habe ich sämtliche Methode wie beispielsweise
    -> Setzen/Löschen/Verschieben von Markern
    -> Circle Objekt eines Markers vergrößern/verkleinern
    -> Bestimmte Linien erstellen
    etc...
    Deiner Meinung würde dann sowas eher nicht in die Activity gehören ? Unabhängig vom Testen mein ich.

    Moment mal, bin ein wenig verwirrt :D Also mit "Schnittstelle" ist doch hiermit kein Interface im klassischen Sinne gemeint ? Dass ein Interface mehrere Methode beinhalten kann, weiß ich. Aber hier geht es ja um die "Internen Klassen Schnittstellen" ... Also sowas wie getKunde (). Wenn ich also deine Aussage versuche zu übersetzen...
    -> Eine Schnittstelle, wie beispielsweise getKunde(), kann mehrere Methoden umfassen
    ...würde das ja keinen Sinn ergeben :rolleyes:
     
  4. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Jein.
    Das ganze ist natürlich auch GUI-Kram, der gehört in die Activity - zb welcher Marker grad verschoben wird
    Das ganze ist aber nicht nur GUI-Kram, und das was keine GUI mehr ist, gehört nicht in die Activity - zB, wo welcher Marker ist und wo welche Linie.

    Schnittstelle umfasst eine Menge von Methoden (und theoretisch auch Feldern), die von außen sichtbar sind. Die kann natürlich auch nur ein Element haben, aber eben auch mehrere.

    getKunde() wäre vermutlich eher Teil der Schnittstelle (die dann u.U. noch sowas wie setKunde hat). Es kann natürlich auch allein die Schnittstelle sein, ob das sinnvoll ist, hängt von dem spezifischen Fall ab.


    Analog zur echten Welt: deine Tastatur ist eine Schnittstelle zu deinem Rechner, und die Tastatur hat mehrere Tasten. Man könnte aber natürlich auch eine einzelne Taste als Schnittstelle haben (wie zB ein Telegraf).

    (BTW, "Interne Klassen Schnittstellen" gibts nicht, entweder es ist intern oder eine Schnittstelle :p)

    Ein Java-Interface ist bei der Betrachtung nur ein Spezialfall einer Klasse, nämlich eine mit nur öffentlichen, abstrakten Methoden (bis Java 8, macht's in der Betrachtung leichter). Im anderen Sprache gibts zT keine gesonderten Interfaces, sondern nur Klassen (oder sogar nur Objekte), die haben aber natürlich trotzdem eine Schnittstelle.
     
  5. jhjh
    jhjh Mitglied
    Ja an sich verstehe ich das, aber Codetechnisch ist mir das nicht so ganz klar. Hast du villeicht ein Beispiel ? :)
     
  6. mihe7
    mihe7 Bekanntes Mitglied
    Nimm z. B. eine Liste: Du kannst Elemente in die Liste einfügen, Du kannst sie anfügen, Du kannst sie löschen usw. Das ist die Schnittstelle (z. B. java.util.List). Diese sagt nichts darüber aus, wie das technisch implementiert wird: eine ArrayList verwendet intern ein Array, eine LinkedList verkettete Elemente. Daraus ergeben sich unterschiedliche Eigenschaften (wie z. B. unterschiedliche Laufzeiten beim Einfügen).
     
  7. mihe7
    mihe7 Bekanntes Mitglied
    Wie @mrBrown schon geschrieben hat, hängen hier ja zwei Dinge dran.

    Am besten wir machen mal ein Beispiel: TicTacToe. Das ist etwas, an dem sich Anfänger hier im Forum gerne mal versuchen. Oft wird das so implementiert, dass Buttons verwendet werden, um das Spielfeld darzustellen. Am Anfang haben diese Buttons keinen Text. Wenn jemand draufklickt, wird der Text entweder auf ein X oder auf ein O geändert usw. An irgendeiner Stelle kommt es dann zu einem Problem, dann wird der Code hier gepostet und es trifft einen halb der Schlag :)

    Der Fehler dabei ist, dass das UI, der "Spielstand" und die Spiellogik zu einer Einheit verschmolzen wird.

    Wenn Du den Spielstand (Logik) in eigene Klassen verlagerst, dann ist dieser Unit-testbar. Und weil die Logik jetzt separat existiert, kannst Du sie auch wiederverwenden. Dann kannst Du beispielsweise die 3TGE ("Tic Tac Toe Gaming Engine" :p) verwenden, um ein Android-, Swing-, Web-, JavaFX-, OpenGL-, SWT-, ...-UI dranzuhängen.
     
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Was zeichnet einen erfahrenen Softwareentwickler aus ? Was kann man nach 6 Monaten erwarten ? ? - Ähnliche Themen

Nach Zoomen wird an falscher Stelle gezeichnet
Nach Zoomen wird an falscher Stelle gezeichnet im Forum AWT, Swing, JavaFX & SWT
Canvas zeichnet nicht
Canvas zeichnet nicht im Forum AWT, Swing, JavaFX & SWT
Gezeichnete Linine verschwinden
Gezeichnete Linine verschwinden im Forum AWT, Swing, JavaFX & SWT
Nach scrollen verschwindet das zuvor im JPanel gezeichnete
Nach scrollen verschwindet das zuvor im JPanel gezeichnete im Forum AWT, Swing, JavaFX & SWT
Java zeichnet nicht pixelgenau
Java zeichnet nicht pixelgenau im Forum AWT, Swing, JavaFX & SWT
Thema: Was zeichnet einen erfahrenen Softwareentwickler aus ? Was kann man nach 6 Monaten erwarten ? ?