Entwicklung
Mit einer Mischung aus jahrzehntelanger Erfahrung und jugendlichem Elan entwickeln wir Ihre Software. Sie haben ein Problem? Wir schreiben die Lösung! Wir entwickeln bei uns im Haus Komplettlösungen für Sie oder unterstützen Ihr Entwickler-Team bei Ihnen vor Ort - ganz wie es Ihren Anforderungen am besten entspricht.
Datenbank
Nahezu jede Software muss Daten speichern. Hierfür gibt es verschiedenste Möglichkeiten: Von einfachen Dateien über klassische relationale Datenbanken bis hin zu Objekt- und NoSQL-Datenbanken.
Darüber hinaus gibt es verschiedene APIs für den Zugriff darauf: Die Standards JDO und JPA erlauben den objektorientierten Zugriff auf (nahezu) jede Datenbank. Spezifische APIs wie z.B. JDBC sind nur für bestimmte Datenbanktypen geeignet und natürlich haben insbesondere neue Datenbanktechnologien wie NoSQL Ihre eigenen APIs.
Unseren Entwicklern sind all diese Technologien wohlbekannt. Konkret haben wir mit den folgenden Technologien/Produkten schon in mindestens einem Projekt gearbeitet:
- Persistenzstandard
- Persistenzimplementation
- DataNucleus
- Hibernate
- EclipseLink
- Datenbanksystem
- Apache Directory Server (LDAP)
- OpenJPA
- Oracle DB
- MySQL
- MariaDB
- PostgreSQL
- HBase
Java EE
Unsere Entwickler sind Experten im Umgang mit JBoss, Glassfish und anderen Java-EE-Servern. Ob EJBs, Ressourcen, Dependency-Injection oder Transaktionsmanagement - unsere Entwickler beherrschen den Java-EE-Standard aus dem FF.
Web
Ob Jetty oder Tomcat - unsere Entwickler haben viel Erfahrung mit beiden. Und natürlich auch mit den “großen Brüdern”, also Glassfish & Co., die ja nebenbei auch Servlet-Container sind.
Und natürlich kennen sich unsere Entwickler nicht nur bestens mit den Servern, sondern auch mit zahlreichen anderen Web-Technologien aus. Hier eine (unvollständige) Auswahl:
- HTTP
- HTML
- CSS
- JavaScript
- GWT
- Apache Wicket
- Servlet
- JSP
- REST
- Jersey
- RESTEasy
- SOAP
Eclipse RCP
Eclipse ist nicht nur eine mächtige Entwicklungsumgebung, sondern auch eine Plattform zur Entwicklung von Werkzeugen oder gar ganzen Applikationen.
Wenn Sie also in der Eclipse-IDE entwickeln und Werkzeuge benötigen, die Ihnen das Leben leichter machen, dann sind Sie bei uns genau richtig. Ebenso können wir Ihnen bei kompletten Eclipse-RCP-basierten Applikationen behilflich sein. Als Referenz möchten wir hier auf Vestigo verweisen - laden Sie die Software doch einfach mal runter und testen Sie sie mit Ihrer JDO/JPA-basierten Datenbank.
Build & Kontinuierliche Integration
Von den Quelltexten hin zu einem kundentauglichen Kompilat ist es ein langer Weg. Bibliotheken müssen heruntergeladen, Ressourcen-Dateien prozessiert, Code generiert (z.B. mittels Annotation-Processing), Quelltexte kompiliert werden. Vielleicht ist auch noch Instrumentierung (auch Enhancement gennant) der kompilierten Klassen nötig. Und letztlich muß alles zusammengepackt werden - üblicherweise heutzutage in Form einer Vielzahl eigener Bibliotheken/Module sowie kundentauglicher Installationspakete. Dabei sollte natürlich auch noch (interne) API-Dokumentation erzeugt werden und am besten wird das ganze auch gleich noch auf einen Web-Server hochgeladen sowie in eine Test-Umgebung installiert und dort geprüft.
Zu guter Letzt sollte dieser gesamte Build- & Deployment-Vorgang selbstverständlich vollautomatisch passieren - immer dann, wenn ein Entwickler Code in die Versionsverwaltung eincheckt oder auch zu bestimmten Zeiten (z.B. jeden Morgen).
Hierfür gibt es ausgezeichnete freie Werkzeuge:
- Maven, Ant, Gradle für
- das Herunterladen von Bibliotheken,
- das Kompilieren und Packen,
- das automatisierte Testen der Kompilate,
- die Erzeugung von Javadoc und Web-Seiten,
- das Heraufladen von Bibliotheken in Ihr (internes) Bibliothekslager,
- die Veröffentlichung von Kompilaten & Web-Seiten (z.B. im Kundenbereich Ihrer Web-Seite)
- und sonst noch alles, was man für den Build braucht.
- Jenkins (ehemals Hudson) für
- die Verwaltung aller Build-Jobs,
- den zeit- oder ereignisgesteuerten Start von Builds,
- eine Übersicht über die aktuellen Test-Ergebnisse,
- eine Historie aller Builds mit Test-Ergebnissen, Konsolenausgaben und Kompilaten.
- Subversion oder Git für
- die Versionierung der Quelltexte.
- Artifactory oder Nexus für
- die Verwaltung von Bibliotheken (Proxy für (freie) Bibliotheken aus dem Web und Lager für eigene).
Falls bei Ihnen dieser gesamte Prozeß noch nicht so glatt abläuft wie hier beschrieben, dann kontaktieren Sie uns! Unsere Entwickler helfen Ihnen gern (nicht nur mit den hier genannten Werkzeugen).
Tests
Die während des Build-Prozesses automatisch ausgeführten Tests müssen natürlich geschrieben werden. Unsere Entwickler sind Experten im Umgang mit sämtlichen hierfür gängigen Werkzeugen: JUnit, JMockit, Mockito, EasyMock, PowerMock
Unsere Entwickler streben immer das Maximum an automatisierter Test-Abdeckung an. Hierzu gehören nicht nur Tests der Komponenten (sogenannte Unit-Tests), sondern auch Integrationstests, die das reibungslose Zusammenspiel aller Komponenten garantieren.
Anderes
Mit ihrer umfassenden Erfahrung arbeiten sich unsere Entwickler auch schnell in andere Technologien ein. Stets neugierig evaluieren sie neue Bibliotheken, Frameworks und APIs - und picken dabei die Perlen heraus, die Vorteile bringen - nämlich höhere Produktivität, bessere Wartbarkeit, robustere und performantere Software.
Agiles Vorgehen
In den letzten Jahren kam das agile Vorgehen - beispielsweise mit Scrum - zunehmend in Mode. Wir begrüßen dies sehr und hoffen, daß dieser Trend anhält. Die Agile Softwareentwicklung kann auch Ihnen eine Menge Vorteile bringen:
- Signifikant geringeres Risiko
- Deutlich weniger Stress (aller Beteiligten)
- Mehr Transparenz
- Robustere Software
- Flexiblere Reaktion auf sich ändernde Märkte
- Kürzere Lieferzeiten