Kolumne: Karrieretipps
In vielen Unternehmen stehen zum Jahresende Leistungsbeurteilungen und Feedbackgespräche an. Der Vorgesetzte ist angehalten, seine Mitarbeiter in Bezug auf die zuvor vereinbarten Ziele zu bewerten. Häufig gibt es dazu eine definierte Bewertungsskala mit Punkten oder Werten wie „Ziel erreicht“, „Erwartungen übertroffen“ aber auch „verbesserungswürdig“. Wie verteilt man als Vorgesetzter seine Punkte gerecht und bringt Kritik an den Leistungen der Mitarbeiter konstruktiv zur Sprache? Und wie geht man mit Kritik und der Beurteilung der eigenen Leistung richtig um?
Dennis Wegewijs im Gespräch über den Google Developer Day
Am vergangenen Samstag fand im Berliner Messezentrum ICC der Google Developer Day statt (Die Kollegen von Mobile360 berichtetet). Der bereits vierte GDD in Deutschland war gleichzeitig auch der größte der diesjährigen Veranstaltungsreihe und lockte fast 2.100 Entwickler aus allen möglichen Bereichen wie Chrome, HTML5, Cloud Computing oder Android in die Bundeshauptstadt. Wir sprachen mit Dennis Wegewijs, dem Gewinner der diesjährigen Chrome Web Store Challenge über seinen Eindruck von GDD und sein Projekt Cycling the Alps.
Die Merkmale einer neuen Sprache für die JVM
Die Programmiersprache Ceylon befindet sich aktuell in der Entwicklung, doch ein Blick auf den Sprachumfang gewährt jetzt schon tiefe Einblicke in Konzepte und Funktionsweisen. Außerdem sind Diskussionen und Entscheidungen zu konkreten Elementen der Sprache transparent.
EnterpriseTales
Mit Claus und Claudia in die Cloud! Solch schöne Szenarien suggeriert ein großer Softwarehersteller, um sein neues „Cloud-fähiges“ Betriebssystem besser an den Mann oder an die Frau zu bringen. Auch Unternehmen setzen verstärkt auf Software as a Service (SaaS), beispielsweise Google Apps. Doch wie sieht es mit der eigenen, Java-basierten Software aus?
Asymmetrische Verschlüsselungsverfahren
Symmetrische Verschlüsselungsverfahren setzen voraus, dass Sender und Empfänger einen gemeinsamen geheimen Schlüssel kennen. Aber könnte man nicht, wenn man schon diesen Schlüssel austauschen muss, an seiner Stelle nicht auch gleich die vertrauliche Botschaft austauschen? Wozu also der ganze Schwachsinn?
Grails bringt mehr Agilität in die Entwicklung von Web-Anwendungen
Von der einfachen internen Zeiterfassung über eine Dating-Seite bis hin zu einer großen Produktbewertungs-Anwendung mit Millionen von Hits pro Tag – die Entwicklung von Web-Anwendungen ist auf dem Vormarsch. Denn sie sind – anders als prorietäre Lösungen – einfach über den Browser von überall aus nutzbar. Die Pflege und Wartung erfolgt zentral und das kostspielige Lizenzmanagement entfällt. Wichtig ist, dass der Entwicklungsaufwand gering bleibt und Änderungen sowie Anpassungen schnell vorgenommen werden können.
Ein agiler Ansatz
AgileUnit ist ein "Nischen-Test-Framework", das komplementär zu JUnit genutzt werden kann. Die Theorie besagt, dass sich Code nach Auslieferung nicht mehr ändert und deshalb die Unit-Tests nicht mitgeliefert werden müssen. Die Praxis zeigt jedoch, dass sich Software im Lauf ihrer Lebensdauer verändert, unentdeckte Bugs kommen zum Vorschein oder Fehler werden durch die Wartung unbeabsichtigt einprogrammiert. Nicht selten werden neue Features implementiert. Sie können unentdeckte Bugs enthalten, oder die Unit-Tests werden mit heißer Nadel gestrickt. Sprich, es wird nicht alles gründlich getestet. Die Gründe dafür sind verschieden: Zeitdruck, Geldbudget, Stress usw. Hier kommt AgileUnit ins Spiel.
Open Source, Eclipse Foundation, EPL und das Eclipse-Ökosystem
In den
letzten beiden Teilen der Serie starteten wir eine Rundreise durch das Eclipse-Universum und widmeten uns der Frage, auf die es so viele Antworten gibt: Was genau ist denn eigentlich Eclipse? Wir begannen mit der bekanntesten Antwort: Eclipse ist eine IDE. Von dort aus ging es weiter über Eclipse als Toolsplattform, danach zur Rich Client Platform, die Eclipse zur Anwendungsplattform macht, bis hin zu den Runtime-Technologien von Eclipse. Bisher haben wir die Frage vor allem technisch beantwortet. Doch Eclipse war von Anfang an mehr als ein paar Millionen Zeilen Code. Woher kommt diese Technologie, welche Rollen und Personen stehen dahinter? Und vielleicht ist es noch wichtiger zu wissen, warum alle diese Frameworks Open Source sind, was die Eclipse Foundation tut, was die EPL ist und wie man mit Open-Source-Software im Eclipse-Ökosystem Geld verdienen kann. Diesen Fragen widmen wir uns in diesem dritten und letzten Teil der Serie „Was ist Eclipse?“.
Was waren das noch für Zeiten, als aus Mangel an Alternativen die Wahl des richtigen Enterprise Java Frameworks zur reinen Formsache verkam. Um 2000 herum hieß die einzig akzeptable Lösung, dank „einfach“ zu nutzender APIs und standardisierter Server, J2EE. Wenige Jahre später war das Spring Framework das Maß aller Dinge. Heute dagegen sieht die Enterprise-Java-Welt schon anders aus – Welcome to the Jungle!
Ein Blick in die Zukunft und auf das bereits Erreichte
Wie wir alle wissen, besitzt die CIA nicht nur die Technologie, um die Gedanken von Menschen zu manipulieren, sondern auch Geräte, mit denen man für kurze Zeit in die Zukunft blicken kann. Wenn wir uns so einen Apparat einmal ausleihen dürften, um einen Blick auf den Stand der Softwareentwicklung im Jahre 2031 zu wagen, dann würden wir wahrscheinlich Folgendes sehen.
Headless, aber trotzdem mit Verstand
Zum Bau von Eclipse-Plug-ins und OSGi-Bundles mit Maven bietet
Tycho [1] hilfreiche Maven-Plug-ins und Erweiterungen. Falls Maven mit Build-Server und zentralem Repository bereits für sonstige Projekte verwendet wird, könnten diese Infrastruktur und das dazugehörige Know-how auch für die Eclipse-RCP-Entwicklung genutzt werden. Dieser Artikel stellt als Beispiel die Eclipse-RCP-Anwendung „insurance“ vor, durch das der Build-Prozess mit Maven 3 und Tycho erläutert wird. Um die grafische Benutzerschnittstelle automatisiert zu testen, sind
SWTBot-Tests [2] Teil des vorgestellten Maven-Build-Prozesses.
Eclipse-Plug-in-Programmierung mit Google Guice
Der Begriff Dependency Injection (DI) schwirrt schon seit einigen Jahren in der Java-Welt umher und ist mittlerweile zumindest im Bereich Java-EE-Entwicklung zu einer Standardtechnik für die Komposition komplexer Softwaresysteme geworden. DI ist aber nicht nur für serverbasierte Softwaresysteme interessant, sondern löst eine wichtige Klasse von Standardproblemen in jedem Java-Projekt: Es ermöglicht dem Entwickler ausschließlich gegen Schnittstellen zu programmieren. Das sorgt für eine lose Kopplung zwischen den verschiedenen Komponenten, was das System sehr wartbar und vor allem testbar macht. In diesem Artikel möchte ich erklären, wie man DI, oder genauer das DI-Framework Guice, bei der Eclipse-Plug-in-Entwicklung verwenden kann.
Strom allein ist nicht genug
Die Entwicklung von Software für die Steuerung von Ladestationen für Elektrofahrzeuge stellt Java-Softwarearchitekturen vor viele Herausforderungen. Hohe Verfügbarkeitsanforderungen erschweren Updates der laufenden Serversoftware, Betreiber haben keinen Einfluss auf Aktualität und wenig Einfluss auf die Technologie der zugreifenden Clients. Während der Einführungsphase sind die Weiterentwicklung der Software und kurze Reaktionszeiten aber ein Muss, um sich in einem volatilen Markt- und Technologieumfeld behaupten zu können. Außerdem soll das finale Produkt interagierende Services und Komponenten von verschiedenen Parteien enthalten: vom Hersteller über den Betreiber der Ladestation bis hin zum Fahrzeughersteller oder zum Anbieter von Flottenlösungen für Elektromobilität. Anhand dieses fiktiven Beispiels wird im Folgenden eine Architektur basierend auf OSGi Declarative Services und REST abgeleitet, die diese Herausforderungen meistern kann. Die verwendeten Technologien und Konzepte werden vorgestellt und anhand einer prototypischen Implementierung illustriert.
Die flinke Feder
Der Elefant ist das Maskottchen von Apache Hadoop. Und da lassen sich die meisten Projekte neben, vor und um Hadoop herum nicht lumpen und haben in ihrem Logo irgendwas mit Elefant...oder Schwein. Einige wenige sind aber noch so jung, dass sie eines Logos noch entbehren.
Diese virtuellen Baugerüste geben dem Nutzer den Rest
REST ist derzeit in aller Munde, und so ist es nicht verwunderlich, dass für die Realisierung von Webdiensten und Clients, die diesem Architekturstil folgen, diverse Frameworks und Tools verfügbar sind. Drei bedeutende Vertreter aus der Java-Welt stellt dieser Artikel vor.