Hi Leute,
ich bin bei neuen Projekten bisher immer relativ schnell mit der erst besten Technologie losgelaufen und habe irgendetwas Implementiert und dass dann solange Refactoriert bis es passt.
Jetzt möchte ich diese Herangehensweise verbessern, dafür habe ich mir folgendes Projekt überlegt:
Ich möchte eine Application schreiben welche:
-
...ich einfach auf einem beliebigen freien Port eines meiner Linux Server starten kann
-
Die gestartete Anwendung soll folgendes umfassen:
a) Landigpage auf der man seine EMail Addresse eintragen kann, außerdem kann man dort den Datenschutzbestimmungen zustimmen und die EMail per Button absenden.
b) Die Application soll die EMail verifizieren und dem Benutzer eine Willkommensemail zuschicken
c) Impressum+Kontaktseite mit der Möglichkeit EMails an meine EMailaddressen per Kontaktformular zu schicken
d) Die EMails werden in einer engebetteten Datenbank gespeichert
e) Ich möchte die Möglichkeit haben eine EMail an alle EMail Addressen aus der Datenbank zu senden
Ich weiß es gibt bereits Software die das oben beschriebene tut, ich interessiere mich daber dafür das selber zu bauen. Sollte mir das gelingen würde ich das Resultat später für weitere Projekte selbst verwenden, daher versuche ich die Anwendung idealerweise so zu schreiben, dass ich sie leicht irgendwo einbauen und erweitern kann.
Meine Technologie Idee bisher:
-
Eclipse als IDE, weil mir die sehr gefällt
-
Java 9, spring Application, eingebettete H2 Datenbank
-
Ich werde versuche das ganze testgetrieben zu entwickeln
-
Es gibt eine Spring-EMail Funktion die ich nutzen würde, das ganze Teste ich mit dem EMail Client eines meiner Webpakete
-
Das frontend würde ich erstmal mit .html Dateien und später css bauen
Eventuelle Probleme die auftreten könnten/werden:
-
Ich arbeite ungerne mit HTML und CSS, kann ich das irgendwie umgehen? Ich würde die Seiten viel lieber per Zusammenklicken oder java Code erstellen, aber ich glaube das geht nicht…
-
Ich muss gucken wie ich die HTMl Dinger UnitTeste
Fragen:
-
Wie würdet ihr an so ein Projekt herangehen? Angenommen ich wäre Hobbygärtner, dann könnte man sagen, dass ich mir gerne einen englischen teppichrasen heranzüchten würde, qualität ist mir entsprechend wichtiger als zeit und mühe.
-
Was haltet ihr von der Wahl der technologien? Gibts da besseres?
-
UML Diagramme haben mir in der Vergangenheit nicht soviel gebracht wie ich mir gewünscht hätte, würdet ihr an meiner stelle einen Softwareplan erstellen bevor ihr anfangt zu coden? Falls ja, wie würdet ihr diesen bauen? Und mit welchen Technologien?
-
Wie Definiere ich welche Module sinnvoll wären? Und Kapsle ich den Code per Api-Server-Client Architektur oder macht das wenig Sinn, weil ich die ganze Anwendung besser als ein Module definieren sollte? Je mehr Module ich hab desto beschissener wird es den Code zu implementieren, weil ich dann Kreuz und Quer durch die Module klicken muss... andererseits wäre es besser die richtigen Module sofoert anzulegen als später per Refactoring zu modularisieren... könnt ihr mir hierzu ein paar Tipps geben?