Eclipse Application & Ubuntu/Gnome

Jag har blivit vän med Unity (när det inte krashar) genom att Compiz Config (ccsm) fortfarande tillåter mig göra allt jag vill. Efter ett par månaders användande av så skall det sägas att Gnome 3 känns som en mer slimmad och snyggare upplevelse än Unity (notifications fungerar riktigt bra, gillart skarpt), men också mer låst för tweakande. Hur som helst, efter att man dragit in sina egna versioner av saker så ser det lite roligare ut att få upp fina ikoner för programmen man kör. Jag glömmer dock alltid var man gör detta och detta är min minnesanteckning för detta. :)
fredrik@wendt-machine:~$ cat >> .local/share/applications/eclipse-jee.desktop
[Desktop Entry]
Name=Eclipse JEE
Exec=/opt/eclipse-jee/eclipse
Icon=/opt/eclipse-rcp/icon.xpm
Type=Application
Screenshot showing Eclipse Icon in application launcher

Eclipse-ikon i programstartaren

vilket_är_lättast_AttLäsaTyckerDu

Jag har skaffat mig en åsikt: det_är_lättare_att_läsa_vanlig_text_så_här, änAttLäsaDetNärDetStårSammanSkrivetUtanNågonWhiteSpace. De flesta känner till att vi mnäskionr kan lsäa ord unta srröte poerblm bara start- och slutbokstaven står på rätt plats. FrsöökGröaSmmaaSakMedDtetaTxbtelcok. Så, jag har skaffat mig åsikten att underscore är en bra idé att använda i t ex namn på test(metoder). I JavaScript brukar de flesta testramverk erbjuda följande mönster:

TestCase("Nu testar vi logiken i UserManager", {
    "lägga till en användare": function() {
        var before = this.userManger.getUserCount();
        this.userManager.addUser("Fredrik", "Wendt");
        var after = this.userManger.getUserCount();
        assertThat(after, equals(before + 1));
    }
});

Det är då ganska lätt att se vad som gått fel när en rapport säger:

In Suite "Nu testar vi logiken i UserManager", the test "lägga till en användare" failed.

I Java kan vi inte använda blanktecken som del av identifierare. I Java 7 kan man iaf använda 1_000_000 för att skriva ut en miljon, yay! Men det löser inte problemet med att få läsbara namn på test(metoderna). Understreck till räddning!

Ett problem som följer med understreck är att Eclipse rätt ur lådan inte stödjer att hoppa inom identifierare som innehåller just understreck: ctrl+höger hoppar alltså till slutet av hela identifieraren. Med AnyEditTools (finns på Eclipse Marketplace) blir detta problem ett minne blott, och man får också hjälp att konvertera mellan Camel Case och Underscores. Perfekt julklapp! :)

PyDev: Pythonutvecklingsmiljö

PythonPyDev är baserad på Eclipse, funkar väldigt bra för det jag gör, vilket i princip är att försöka jobba på samma sätt med Python-kod som med Java (TDD-ish = få ut kod i jämnt flöde och refactor för att få det fint).

Vid dagens diskussioner kring tools och miljöer på GothPyCon ][ så gjorde jag följande anteckningar (“konferensen” hölls på engelska) över features jag förväntar mig i en IDE:

  • graphical, remote debugging
  • virtual environments
  • syntax highlighting
  • unit test integration with coverage
  • auto completion
  • indentation
  • inline documentation
  • refactoring
  • easy navigation

Allt detta – förutom debugging – demonstreras i en fem-minuters demo på PyDevs hemsida, ihop med de tangentbindningar som är “speciella” för PyDev:

Shift+Alt+n
Shift+Enter
Ctrl+2, r
Shift+Alt+a
Ctrl+F9
F12
Ctrl+F11
Ctrl+Alt+l
Shift+Ctrl+Alt+m
Ctrl+Alt+↓↑
Alt+↓↑
alt+→

Trött på att skriva getters och setters? – Använd Lombok

No Gravatar

Lombok genererar sådana vid compile-time, men kan också generera equals(), hashCode(), toString(). Fler features finns (http://projectlombok.org/features/index.html), ex den tveksamma möjligheten att kasta exceptions utan att deklarera dem. Dock tycker jag att getters och setters kan vara intressant. Men även equals() och hashCode() utgör vanligtvis generell kod som inte borde behöva checkas in med övrig, mer manuell, källkod. Du styr vilka features du vill använda för vilka klasser eller fält med annotations.

Continue reading