dspieser
Returning Observer

Entwicklungsprozess Erfahrungen

Hallo Community,

wir beabsichtigen unseren Entwicklungsprozess zu optimieren und zu verteilen.

Nun würden mich eure Erfahrungen der Entwicklung in externen IDEs interessieren und wie Ihr euren Entwicklungsprozess aufgestellt habt.

Welche Tools/ IDE benutzt ihr?

Verwendet Ihr die FSDevTools?

Wie automatisiert Ihr?

Ich würde mich über eine rege Diskussion und fruchtbaren Austausch freuen.

Grüße

Dietmar

2 Replies
felix_reinhold
Returning Responder

Hallo Dietmar,

erstmal zum Thema IDE: Hier habe ich mich beim Templating mittlerweile mit dem Arbeiten im SiteArchitect abgefunden. Ich habe in den letzten 10 Jahren verschiedene Integrationen angefangen zu entwickeln (eclipse, notepad++, intellij und atom) und damit rumgespielt, aber der Aufwand für eine Integration mit Autocompletion für verfügbare Variablen im Scope war mir immer zu aufwendig und ohne das bringt es mir keinen Mehrwert. Ich nutze auch den TemplateDebugger im Regelfall nicht, da er mir schon mehrfach richtig Probleme gemacht hat und man mit der Zeit ja eigtl. immer direkt weiß, an welcher Stelle ein Fehler auftreten kann. Wenn ich aber mit FirstSpirit Neulingen arbeite empfehle ich ihnen i.d.R. die Nutzung des Debuggers.

Bei Modulentwicklung arbeite ich klassisch mit eclipse und teilweise auf Kundenumgebungen mit IntelliJ. Sehe hier aber keine großen Vor- oder Nachteile bei einer der IDEs. Hier ist eigtl. alles was ich benötige Standard Java-AutoCompletion, RemoteDebugging und eine SonarLint-Integration.

Ansonsten sieht mein Entwicklungsprozess i. d. R. wie folgt aus:

  • Für jeden Kunden habe ich einen oder mehrere Docker Container, die möglichst nah an der Kundeninfrastruktur sind. Wenn eine Anfrage vom Kunden kommt fahre ich mir also nur den entsprechenden Container hoch und kann loslegen.
  • Im Docker mounte ich für jeden Kunden ein Verzeichnis, dass die git-repos (Templates und Module) enthält. Beim Startup des Containers habe ich nur eine Abfrage drin, ob die repos aktualisiert und eingespielt werden sollen, oder nicht. Der Build und Import läuft dann automatisch über ein Shell-Skript.
  • Das Einspielen der Templates erfolgt im Regelfall über die FSDevTools und teilweise noch über eigene Tools bei älteren Projekten. Das Einspielen der Module läuft generell über ein eigenes Tool bei mir.
  • Bei meiner lokalen Entwicklung nutze ich kein Gitlab CI o. ä.. Die Projekte bei denen ich lokal mehrere Stages habe werden noch über ein eigenes Tool synchronisiert. Bei Kunden habe ich aber teilweise Gitlab CI dafür im Einsatz.
  • Für die Jars habe ich ein gemeinsames Artifactory für alle Projekte - zwar auch über Docker, aber es läuft eigtl. immer. Deployen ins Artifactory ist im Build der Module integriert.
  • Für das Linting habe ich einen gemeinsamen SonarQube-Server für alle Projekte. Da habe ich bisher leider nichts automatisiert in Builds o. ä.
  • Das Bauen von Modulen läuft bei mir zum Großteil noch über Maven

Zusammenfassung:

  • Template-Entwicklung direkt im SA ohne IDE und Debugger
  • Template-Verteilung über FSDevTools und eigene Tools
  • Modul-Entwicklung in eclipse
  • Modul-Installation über eigene Tools
  • Ohne Docker geht nichts 😉

Viele Grüße

Felix

Hallo Felix,

vielen Dank für deine ausführliche Beschreibung.

Das ist in etwa wie wir es aktuell auch machen, wir entwickeln im SA die Templates und Module in Eclipse.

Wir haben ein Master Projekt bei dem wir die Templates über Corporate Content in die Projekte verteilen.

Die Module halten wir auch schon in einem Repository.

Bei den Veranstaltungen von e-Spirit werden immer wieder Code / Live - Coding  Beispiele gezeigt bei denen Sie mit FSDevTools ganz einfach synchronisieren, verteilen und entwickeln. Wir uns aber immer mühsam die Daten hin und her schaufeln mit Export, Import und Paketverteilung über Corporate Content.  

Wir haben uns einen theoretischen Entwicklungsworkflow überlegt und suchen nun die richtigen Werkzeuge.

Es gibt ja bereits Plugins für Visual Studio Code oder Intellij.

Die Idee:

Aktuellen Stand aus dem Repo holen, Änderung einbauen mit FSDevTools in ein Testprojekt/System schieben (Entwickler testen).
Danach in ein QS-Projekt/System schieben durch QS-Team testen lassen.

Anschließend ins GIT einchecken, in das Master Projekt mittels FSDEvTools schieben und über Paketverteilung in die Produktivprojekte verteilen.

Wenn wir diesen Prozeß verwirklichen können wollen wir dann noch mögliche Schritte automatisieren.

Vielleicht kommen ja noch Beiträge.

Grüße

Dietmar

0 Kudos