Richtiges Arbeiten mit Java: Tipps und Tricks gesucht

  • Hallo ihr lieben hilfreichen Seelen,


    ich habe da mal ein paar Fragen zur Entwicklung mit Java.
    Da ich so gefühlt langsam das Larvenstadium verlasse und mich mittlerweile so richtig einniste, möchte ich Dinge natürlich auch richtig machen. ;)


    Dazu wäre ich über Tipps und Tricks zu folgenden Problemstellungen sehr dankbar. :)


    1) Codestrukturierung
    Meine IDE bietet ja mit der 'Structure'-Übersicht ein paar nette Hilfsmittel an. Gerne würde ich diese Strukturübersicht noch übersichtlicher gestalten.
    In Objective-C kann ich mit #pragma mark Label ein Label setzen, beispielsweise um logisch zusammenhängende Codeblöcke (Overrides, Getter+Setter, Delegates...) sichtbar zu unterteilen.
    In C# gibt es mit den Tags #region und #endRegion die Möglichkeit, logisch zusammenhängende Codeblöcke sichtbar zu gruppieren.
    Welches Equivalent bietet Java hier von Hause aus an?


    2) Testing
    Ich mag ja Unit Tests. Sowohl unter C# als auch unter Objective-C mache ich nichts ohne. Hier unter Java/Android allerdings schon, weil es sich mir nicht erschließt. Naja, ich werde damit jetzt anfangen.


    Nur finde ich absolut nichts zum Thema Integration Tests. Hat da jemand Tipps oder Hinweise?


    3) Code Coverage
    Wir kennen das ja... Es dümpelt Code herum den man niemals nicht braucht und der bläht die eh schon viel zu langen .java Files auch noch unnötig auf.
    Als IDE nutze ich IntelliJ, weil ich weder Eclipse noch NetBeans wirklich ausstehen kann. Leider kann die freie Edition keine CodeCoverage abgreifen.
    Emma Code Coverage kann offenbar (nach eigenen Angaben) nicht mit Android umgehen.


    Kennt jemand ein Tool, mit dem ich die CodeCoverage von Android überprüfen kann?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Tu dir selber einen Gefallen und freunde dich mit Eclipse an... ;)
    Auf den Android Developer-Seiten gibt es Eclipse+ADT ready-to-use zum downloaden.


    1) In Java gibt es keine Compiler Direktiven. Es macht aber durchaus Sinn, den Code mittels Kommentaren zu gruppieren.


    2) Schau dir mal jUnit an. Bei Eclipse ist das schon standardmässig integriert. Unittests per Wizard oder von Hand erstellbar, Testing wird unterstützt durch entsprechende Views. Keine Ahnung, wie das in anderen IDEs ausschaut. Aber ich vermute, die jUnit-Library muss ins Projekt eingebunden werden und die Unittests müssen "von Hand" programmiert werden.


    3) Wenn ich das richtig verstehe geht es Dir hier um Code-Metrics. Dazu gibt es ein recht gutes Eclipse-Plugin (Eclipse Metrics), das eine ganze Reihe von Metriken berechnet. Ich hatte das vor Jahren mal im Software-Engineering benutzt und war begeistert. Scheint zwar seit längerem nicht mehr updated zu sein, hab's aber gerade schnell installiert und in einem Android Projekt ausprobiert. Funktioniert einwandfrei. Bin immernoch begeistert :)

  • 0) Ganz sicher nicht. Eclipse ist Teufelswerk ohne irgendwelche Benefits... ;)


    1) Keine Preprozessor Direktiven ist ja schon mal ausgesprochener Mist. Code mittels Kommentaren zu gruppieren finde ich sehr sinnlos. Kommentare sollen erklären, WARUM man etwas tut, nicht WAS man tut. WAS man tut sollte der Code erklären. Dennoch könnte die IDE ruhig eingebaute Direktiven mitbringen, welche die Darstellung komfortabler gestalten. (#pragma mark ist eine ziemlich sinnlose Preprozessor-Direktive. Sie wird vom Preprozessor komplett ignoriert und nur von der IDE ausgewertet.)


    2) jUnit ist ein Framework für Unit Testing. Wie ich damit die Integrationstests hinbekomme weiß ich aber immer noch nicht.


    3) Also eigentlich interessiert es mich recht wenig, wie viel Code ich geschrieben habe. Ich finde es interessanter, ob meine Tests alle Codezeilen des jeweiligen Pakets abdecken. Dafür sehe ich allerdings keine Option in den Eclipse Metrics.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Für diejenigen, die den defacto Standard benutzen ;) gibt's eine elegante Lösung für Punkt 1. Ein kleines Eclipse-Plugins, nennt sich Coffee-Bytes, und ermöglicht custom folding.


    Ich hab's auf Juno ausprobiert und funktioniert einwandfrei. Achtet einfach bei der Installation darauf, dass ihr es nicht so macht, wie auf der verlinkten Seite beschrieben, sondern den Inhalt von "features" UND "plugins" aus dem ZIP ins Verzeichnis "dropins" eurer Eclipse-Installation kopiert. Damit haltet ihr eure Eclipse-Installation sauber.

  • Für diejenigen, die den defacto Standard benutzen ;) gibt's eine elegante Lösung für Punkt 1


    Defacto Standard ist für mich, was der Urheber liefert.
    Steht da etwa "based on IntelliJ IDEA" statt "based on Eclipse"? :o


    Allerdings sprach ich nicht von Custom Foldings sondern einer sichtbaren Gruppierung.
    Und die blöde Strukturübersicht ist der Meinung alles Top Down nach Alphabet sortiert darzustellen. Es ist also völlig egal, wie ich da meine Methoden im Code gruppiere, es wird nicht übersichtlicher.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Aeh wenn schon der erhobene Zeigefinger dann bitte richtig:


    Zitat


    Caution: Android Studio is currently available as an early access preview. Several features are either incomplete or not yet implemented and you may encounter bugs. If you are not comfortable using an unfinished product, you may want to instead download


    Android Studio ist noch nicht fertig und wenn man mal bei Stackoverflow so sucht finden sich da noch jede Menge Probleme. Alleine schon in Verbindung mit CustomLibs (Actionbarsherlock ect pp) gibt es da immer wieder Schwierigkeiten.
    Das wird sicherlich in Zukunft besser werden, aber momentan würde ich auch noch eher an Eclipse festhalten.

  • Aeh wenn schon der erhobene Zeigefinger dann bitte richtig.


    Ich fand meinen Hinweis auf IntelliJ IDEA schon richtig genug. ;)


    Das Studio benutze ich auch nur für kleinen Testkrams um halt auf Fehler zu prüfen.
    Produktiv ist IntelliJ IDEA 12 im Einsatz.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!