Hi,
Ich habe durch das Wirtschaftsinformatikstudium gelernt, dass ich keine Lust mehr auf selbst programmieren habe. Java und OOP ist derart merkwürdig zu programmieren, dass macht mich auf dauer krank. Wenn ich für "Hello World" einen Monat in Vollzeit brauche, ist das für jemanden der mit programmieren und OOP aufgewachsen ist eine Sache von 3 Minuten (inklusive PC hochfahren).
Bitte hole Dir externe Hilfe, Du bist mit dem Projekt
überfordert. Wenn es ein Privatprojekt wäre würde ich Dir die Zeit
zum lernen geben, aber bei Unternehmen geht es um Geld. Bei diesem
Projekt potentiell um sehr viel Geld oder um ein Unternehmen mit
überzogenen Vorstellungen - ist im Moment schwer zu sagen.
Damit beim Rest der LUG nicht der falsche Eindruck entsteht: das hat nix mit dem WI-Studium zu tun, ich bin auch ein WI und brauche den PC nicht hochzufahren um ein kleines Hello World einzutippen - der läuft schon.
Falsch. Veränderung wird nötig sein.So, jetzt nochmal etwas zusammengefasster.
DomainVorhanden, IP zeigt auf Ubiquiti USG, welchen ich als Router/Firewall nutze.! Gesetzt, keine Veränderung angestrebt.
Wenn der Traffic so hoch ist dass ein Proxy nötig ist, dann wird es Änderungen geben.RouterUSG leitet alle 80/443-Anfragen an einen Reverse-Proxy in der Synology weiter.! Gesetzt, keine Veränderung angestrebt. Reverser-Proxy notwendig.
WebserverWebserserver realisierbar als:
- VM in Proxmox- Synology DS918+ wahlweise mit Nginx oder ApacheEntscheidung ist offen
Wahrscheinlich beides falsch. Synology als Webserver ist für ein solches Projekt definitiv falsch.
Mach Dir erstmal klar was die Anwendung am Ende machen soll, Dein
Dienstleister sagt Dir dann schon was Du technologisch brauchst.
Vielleicht. Du hast im Moment keine Ahnung welche Anforderungen Du an den Webserver hast. Das beantwortet sich erst wenn Du weißt welche Frameworks Du einsetzt. Nur weil eine "App" im Browser scheinbar eine Dauerverbindung zum Server hat heißt das nicht dass dem wirklich so ist - so ein System kann auch pollen oder andere Techniken einsetzen um die Illusion einer Dauerverbindung zu erzeugen.Fragen:- "Apache ist schlecht wenn Verbindungen gehalten werden müssen wie bei einem Chat". Nextcloud habe ich auf einem Apache laufen und die hätte auch Talk mit Chat-Funktion. Geht also doch? Alternativ, was das Verbindungshalten-Problem angeht, war NodeJS. Muss ich mehrere Webserver laufen lassen, wenn ich verschiedene Funktionen brauche die jeweils nur ein Webserver kann?
Unwahrscheinlich, aber möglich. Du bist noch weit davon entfernt Technologieentscheidungen zu treffen.Nginx oder ApacheMir persönlich ist es egal. Ich bin da nur Nutzer. Ich kenne keine Unterschiede und würde das nehmen, was mir gesagt wird.Apache: HTML, PHP, JavaScrip, CSSNginx: -unbekannt-Entscheidung ist offen
Frage:- Kann es passieren, dass ich mehrere verschiedene Webserver laufen lassen muss um ein "Problem" abzufangen?
Mindestens.ProgrammiersprachenGesetzt:- "HTML/CSS" (...komme ich nicht drum herum...)- PHP/SQL/Javascript ("klassisch")
Falsch. Ohne Framework sind Deine Anforderungen nicht realistisch und nicht kosteneffizient umsetzbar.Abgelehnt:-externe Frameworks (https://www.youtube.com/watch?v=m-gVSnJmm-4)
Frag' Deinen Dienstleister. Vergiss' all die Schlagworte, das entscheidet derjenige der es umsetzt.In Prüfung:-HTML, HTML5, CGI-Skripte, CSS, C, C++, Go, Rust, Perl, Java, JavaScript, Rubi, Python, C#, Frameworks (React --> Facebook, Angular --> Google, Vue --> JavaScript-Framework zur Entwicklung von Single-Page-Webanwendungen, Node.js --> serverseitigen Implementierung von JavaScript, ermöglicht eine asynchrone Ausführung von Programmcode, Node-Red)
Fragen:- Egal ob jemand die Domain aufruft oder die Webanwendung startet, es wird IMMER HTML(5) benötigt, oder? (index.html oder inder.php)- Ist HTML5 nur ein HTML ohne Kindheitsprobleme oder ist es so viel besser geworden, dass es schon eine eigene Sprache ist?
Die 5 ist eine Versionsnummer. Wenn Webentwickler HTML 5 betonen dann meinen sie dass sie weniger (problematisches) Javascript oder andere veraltete Technologien brauchen. Bei modernen interaktiven Webseiten kommst Du darum nicht herum.
Ja und Ja. Aber es sind wesentlich weniger Rubi-Spezialisten als PHP-Spezialisten auf dem Markt. Die Auswahl und Preise sind entsprechend.- Wenn HTML5 ganz anders ist, wann brauche ich das und wann nutze ich lieber das alte HTML?- Rubi on rails, wird das tatsächlich benutzt? Finde ich da tatsächlich Programmierer dafür?
Wäre für Web ungewöhnlich. Die Sprache ist relativ neu.- Go habe ich auch noch nie gehört. Gibt es genug Programmierer?
- Frameworks sind Geschichten von Dritten, da kann man nie wissen wo noch Lücken sind. Oder genau das verwendete Framework wird nicht mehr suportet und alles muss geändert werden oder ähnliche Probleme. Klingt überhaupt nicht sexy. Oder verstehe ich das auch falsch? Ich möchte, dass die Programmierer sich mit ihrem Code auseinander setzen und nicht einfach nur blind copy-paste machen.
Du verstehst was falsch. Du hast Dein WI-Studium nicht abgeschlossen - richtig?
Framework ist eine große Bibliothek von Funktionen, die Du brauchst um eine ganze Klasse von Problemen zu lösen.
Im Falle von Web sind Frameworks nötig, weil Du sonst selbst zu viele Lücken einbaust. Die Wahl des richtigen Frameworks macht den Profi aus. Überlass' die Wahl der Mittel bitte einem solchen.
Du musst auch planen dass eine Webapplikation ein Dauerprojekt
wird. Sowas ist nicht irgendwann fertig, sondern entwickelt sich
mit der Technologie, den Anforderungen und den neu entdeckten
Problemen mit. Wenn Dir jemand sagt dass Dein Websystem irgendwann
fertig ist und Du Dir dann nie wieder Sorgen machen musst, dann
lügt er.
Überlass die technologische Ausstattung des Entwicklerteams und die Wahl der Methode (klassisch, agil, Scrum, ...) a) dem Dienstleister der die Entwickler stellt oder b) dem internen Entwicklerteam.
Coloboratives Arbeiten[cut]
ContentManagementSystem:Definition von IONOS ist, dass ich kein Programmierer sein muss um damit Webseiten erstellen zu können. Eine Webseite ist sicherlich ganz anders als eine Webanwendung, von daher habe ich das CMS jetzt nur Mal der vollständigkeit halber erwähnt. Sollte ich falsch liegen, bitte korrigieren.
Was hat IONOS jetzt damit zu tun?
Ein CMS ist eine mögliche Lösung auf die man zurückfallen kann je nachdem wie übertrieben Deine Vorstellungen waren - das ist im Moment schwer zu sagen, da Kontext fehlt.
Hint: ein CMS ist selbst eine Webanwendung, je nach
Anwendungsfall und CMS kann man es auch als Framework für eigene
Entwicklungen einsetzen.
VPN:Da ich ungern beliebig viele Ports öffnen möchte, würde ich einen VPN-Server integrieren, damit zumindest die Teamleiter Zugang zu dem Kanban-System oder bspw. dem Ticketsystem haben.
Du bist noch gar nicht in dem Stadium wo man sich darüber Gedanken macht.
Aber ja, Du wirst Plattformen und VPN brauchen wenn Du Leute länger daran arbeiten läßt, da auf absehbare Zeit keiner "vor Ort" arbeiten wird.
Vorsicht: im Moment hast Du ein sehr gefährliches Viertelwissen mit dem man sehr viel Schaden anrichten kann. Vergiss bitte alle die Schlagworte, die Du bereits gelernt hast, keine Anforderung ist absolut und betrachte keine Technologie als "gesetzt" - bei Web kann die falsche Vorstellung einen sehr großen Betrag kosten.
Mach' Dir Gedanken welche Anwendungsfälle Du hast (wer nutzt es, wieviele sind es, welche groben Use Cases gibt es) und diskutiere Optionen für die Umsetzung mit Leuten die sich schon auskennen. Die Vorschläge werden Dich überraschen und können von "Du denkst zu kompliziert, ein CMS aus der Dose auf einem 3-Euro Webspace tut es auch", über "miete Dir ein CRM bei Cloudanbieter X" bis zu "es wird ein Millionenprojekt mit Cluster und teurem Technologiemix" reichen - nach dem was wir bisher wissen ist es nicht abschätzbar in welche Richtung es geht.
Nochmal ganz explizit: Deine Aufgabe ist es herauszufinden welche
Use Cases und Rahmenbedingungen es gibt. Die Aufgabe ist nicht die
Umsetzung zu definieren oder Technologien festzulegen. Wenn in
Deinem Dokument steht "und dann zieht der User Element X per
Drag-and-Drop auf Y", dann kannst Du den Absatz streichen.
Stattdessen steht drin "User X muss folgende Daten eingeben
können: A, B, C", "User Y muss in der Lage sein diese Daten in
einer übersichtlichen Form darzustellen und umzusortieren" oder
"User Z braucht eine effiziente Möglichkeit mehrere tausend
Datensätze vom Typ D in einem Arbeitsschritt hochzuladen". Wenn Du
den Fehler machst jetzt schon Technologien festzulegen, dann wird
Dich das ein Vermögen kosten. (Die bereits vorhandene Umgebung in
die das Zielsystem eingebettet ist solltest Du natürlich exakt
spezifizieren.)
Konrad