Mein Projekt: Technologieauswahl

So, da ich dieses Jahr wohl kein neues Projekt mehr bekommen werde, nutze ich die Zeit mich mit einer Idee zu beschäftigen, die ich schon seit einigen Monaten mit mir herumschleppe.

Details zu dem Projekt schreibe ich wenn es – vielleicht mal – fertig ist. Es läuft unter dem Motto „Onlinekaufen mit Spaß“, ist also ein E-Commerce Auftritt bei dem das Kauferlebnis in den Vordergrund gestellt ist.

Schritt 1: Konzept und Prüfung der Idee
Das Grobkonzept ist geschrieben und von einer dritten Person angeschaut worden. Daneben habe ich die Idee einigen Leuten beim Kaffee erzählt. Ergebnis: Alle fanden die Idee gut. Mehr noch: fast jeder hat eigene Ideen und Anmerkungen gehabt. Es könnte also was werden.

Schritt 2: Womit will es denn mal entwickeln? Technologieauswahl
Da das Projekt quasi auf der grünen Wiese entsteht, bin ich bei der Auswahl der Technologie frei. Ok, es sollte etwa sein, von dem ich Ahnung habe…

Prinzipiell geht es ja um folgende Fragen:
Womit gestalte ich das Frontend?
Woraus besteht die Middleware?
Wie sieht die Datenhaltung aus?
Wie gehe ich mit Schnittstellen um?

Einige Punkte sind selbstverständlich:
Die Datenschicht beinhaltet keinerlei Geschäftslogik. Auch Trigger o.ä. sind verboten
Im Frontend ist nur in soweit Geschäftslogik erlaubt, wie es für eine gute Benutzerführung notwendig ist (Prüfung einer Eingabe mittels Javascript etc.)
Schnittstellen sollen so einfach wie möglich und so stabil wie nötig sein
Theme wie MDA (Modell Driven Architekture)

Jetzt also zu den konkreten Möglichkeiten:

1: Reine Java/J2EE
Eigentlich war ich ja immer ein großer Java/J2EE Verfechter. Mittlerweile finde ich aber, dass Jave im Frontend nichts zu suchen hat. Frontends sollte man auf Zuruf ändern können um gute Ergebnisse erziehlen zu können. Daher glaube ich nicht, dass JSP (Java Server Pages) die richtige Wahl ist. Besser ist eine leicht zu ändernde interpretierte Sprache. Interessanterweise haben auch viele der großen E-Commerce Anbieter Frontends auf so einer Basis: Weltbild.de nutzt php, Amazon perl usw. Entscheidung daher: Wenn Java, dann in der Middlware

2: Frameworks wie Ruby on Rails
Ruby on Rails scheint wohl zu helfen, extrem schnell Ergebnisse zu liefern. Da ich mich damit nicht auskenne, werde ich einfach mal in den nächsten Tagen damit ein wenig herumspielen.

3: PHP mit direkter Datenbankanbindung
Dadurch besteht immer die Gefahr, dass man keine vernünftige Trennung zwischen den Schichten erhält und z.B. Geschäftslogik und Frontend in einer Datei/einer Klasse vermischt

4: Javascirpt & PHP & Java Middlware
Schon besser. Allerdings sind 3 Sprachen nicht gerade wenig.

Auch wenn es unrealistisch ist. Ich würde ja gerne so eine Lösung haben:
A) Datenbankschicht ist sehr schmal (MySQL u.ä)
B) Für das Frontend werkeln PHP&Javascript
C) Dazwischen liegt als Middleware eine vernünftige Workflowengine. Dort kann man per Konfiguration einen großen Teil der Geschätsprozesse abbilden. Zusätzlich werden einzelnen Komponenten eingebunden.

Ok, in den nächsten Tagen spiele ich mal mit ein paar Lösungen herum um entscheide mich dann für die Technologie.
BTW: Ich persönlich halte diese „Spielphase“ auch in großen Projekten für extrem wichtig. Sehr häufig legt man sich auf Dinge fest die sich später als fataler Fehler entpuppen. Nur kann man im laufenden Projekt schlecht den Motor wechseln. Daher ist eine kurze Prototyp-Phase – bei dem man bewusst vorher festlegt später alles wieder wegzuwerfen – oft enorm hilfreich. Die dadurch aufgewändete Zeit holt man später doppelt und dreifach wieder herein. Wichtig ist allerdings, dass man diese Phase im Vorfeld zeitlich klar festlegt. Man kann Monate damit verbringen, die richtigen Werkzeuge auszuprobieren. Diese Phase sollte je nach Projekt allerdings höchstens 10-15% des kompletten Projektes dauern.

2 Gedanken zu „Mein Projekt: Technologieauswahl

  1. Andreas

    (5): Du hast noch Python und dessen Applikationsserver Zope vergessen.

    Zu (4): Die Kombination von PHP und Java/J2EE ist vor einiger Zeit durch eine verbesserte Integration der beiden aufgewertet worden. Kann also auch ein heisser Kandidat sein.

    Eine regelmäßige „Spielphase“ kann durchaus sinnvoll sein. Es sollte dabei aber immer ein kleines Beispiel-Projekt bei allen Testkandidaten durchgezogen werden, da sich verschiedene Hinken und Kanten erst beim „doing“ herausstellen.

    Bei komplexen wenig vergleichbaren Projekten ist eine Prototypierung meist eine gute Idee. Wenn man aber solch eine grundsätzliche „Werkzeugauswahl-Spielphase“ vor jedem (größerem) Projekt machen will/muss, hat man sich vorher vielleicht nicht genug Wissen erarbeitet.

    Wenn man ein Haus baut, sollte man ja auch nicht unbedingt vorher immer erst eine Grundlagenorschung zu „Beton“ oder „Holz“ machen müssen, sondern schon beide Varianten dem Bauherren mit ihren Vor-/Nachteilen darlegen können.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

What is 9 + 5 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)