Hallo zusammen,
ich würde gerne lernen/verstehen, wie Webanwendungen aufgebaut sind, welche Programmiersprachen wann verwendet werden, etc. Ist zufälligerweise jemand unter euch, der sich in dem Thema Zuhause fühlt?
Vielen Dank und ein schönes Wochenende zusammen.
Gruß Stefan
Hi,
On 05/03/2021 12:15, Stefan Engelhardt wrote:
ich würde gerne lernen/verstehen, wie Webanwendungen aufgebaut sind, welche Programmiersprachen wann verwendet werden, etc. Ist zufälligerweise jemand unter euch, der sich in dem Thema Zuhause fühlt?
Es kommt sehr stark darauf an was Du unter "Webanwendung" verstehst und in welche Umgebung die Anwendung eingebettet ist.
Grundsätzlich kannst Du jede beliebige Programmiersprache benutzen um aktive Webinhalte zu programmieren, ein paar typische Beispiele in mehr oder weniger historischer Reihenfolge:
C/C++: klassische CGI-"Scripte". Wird gerne verwendet um irgendwelche Low-Level Informationen über den Browser anzusprechen (z.B. klassische Web-Cam, Sensor-Status abfragen, etc.) ohne große Ansprüche an die Interaktivität. Ist normalerweise in ein größeres Framework eingebettet bei dem dann kaum noch auffällt dass ein paar CGIs da drin versteckt sind (z.B. die Konfiguration Deiner FritzBox). Heute werden auch gerne mal solche Sprachen wie Go oder Rust verwendet um CGIs zu schreiben.
Perl: war bis vor 10 Jahren der Platzhirsch unter den Web-Sprachen. Man kann einfache CGIs oder sehr komplexe Anwendungen damit schreiben. Heiko kann sicherlich mehr zu Perl sagen als ich. Von mir nur eine kleine Warnung: Perl ist eine "write-only Sprache" - d.h. es ist sehr einfach Scripte so zu schreiben dass man sie ein paar Tage später nicht mehr versteht - auf der anderen Seite habe ich auch schon sehr schöne Perl-Scripte gesehen (aber nicht viele).
Java: hat in verschiedensten Formen das Web beeinflusst. Auf der Client Seite gab es "Applets" (lern es nicht, funktioniert nicht mehr). Auf der Server Seite gab es verschiedene Konzepte wie "Java Server Pages", "Application Server", etc. Wird im Business-Umfeld relativ häufig als Framework eingesetzt (z.B. Jenkins CI Server, Gerrit Code Review, Tomcat, ...). Hat den Vorteil dass es sehr dicht an der klassischen Anwendungsprogrammierung ist und den Browser nur als Schnittstelle zum User benutzt.
Javascript, CSS: im Wesentlichen Client-Seite. Beide werden benutzt um Applikationen interaktiver zu machen und "schöner" zu gestalten. Es ist erstaunlich wie weit man mit der Kombination kommt (ich habe z.B. mal eine HTML-Seite entwickelt die Barcodes ausspuckt ohne den Server fragen zu müssen). Es ist aber auch erstaunlich wie schlimm die Kopfschmerzen nach ein paar Stunden Javascript sind. Wird normalerweise als Ergänzung zu anderen Server-seitigen Frameworks eingesetzt.
PHP: de-facto Standard für interaktive Web-Inhalte, gefühlt über 90% der Webseiten sind heute mit PHP geschrieben. Die Sprache ist explizit für Web entwickelt und bietet so ziemlich alles was man sich vorstellen kann. In bestimmten elitären Kreisen gilt PHP wahlweise als unsicher (behobenes historisches Problem) oder unästhetisch (Geschmacksfrage). Auf der anderen Seite beweisen große Projekte wie Wikipedia oder Phabricator, dass PHP für anspruchsvolle Sachen geeignet ist. Wenn Du es lernst orientier Dich bitte an den größeren Projekten, es gibt (genau wie bei anderen verbreiteten Sprachen) viel Schrott, der einem gut zeigt welche Fehler man machen kann...
Ruby/Python: sind beide angetreten Perl zu verdrängen. Die Fans sind üblicherweise auf den Erfolg von PHP wütend. Es gibt in beiden Sprachen gute Frameworks und beeindruckende Anwendungen. Ob Du sie lernen willst hängt davon ab ob Du sowieso Fan einer dieser Sprachen bist oder ob Du ein Projekt zum Thema hast.
C#: Microsoft ist wie üblich auf Java neidisch und versucht es aus dem Business-Umfeld zu verdrängen - mit teilweisem Erfolg. Würde ich nur lernen wenn mein Chef die Bücher und die Zeit bezahlt.
Ich habe auch schonmal eine Mini-Spass-Webseite mit Bash programmiert, aber ich würde empfehlen bei den verbreiteteren Frameworks zu bleiben.
Zum Einstieg würde ich Dir empfehlen PHP zu lernen - es ist schön einfach, flexibel und Du kommst relativ schnell zu Erfolgserlebnissen, kannst aber auch relativ weit damit kommen. Es ist recht gut geeignet die wichtigsten Konzepte zu begreifen und Du wirst immer Leute finden, die weiterhelfen können. Wenn Du die Grundlagen begriffen hast mach' mal etwas "Urlaub" von PHP und schau Dir andere Frameworks an (z.B. indem Du in die Sourcen anderer Anwendungen schaust). Genau wie bei "klassischen" Anwendungen hängt die Wahl der Sprache vom Einsatzgebiet der Anwendung und von deren Umgebung ab.
Architektonisch reichen Webanwendungen von simplen Datentransformatoren (z.B. Wert aus einer Datei lesen und in HTML verpacken) über die klassischen multi-tier Applikationen bis hin zu komplexen Cluster-Anwendungen (z.B. Phabricator oder Wikipedia wenn sie vollständig ausgenutzt werden). Sie können komplett alleine dastehen (nur Webserver), eine Datenbank benutzen oder eine komplette Server-Umgebung brauchen. Etwas Literaturstudium kann nicht schaden bevor Du größere Projekte angehst.
Sobald Du die Grundlagen verstanden hast solltest Du auch anfangen Dich mit den Problemen zu beschäftigen - insbesondere Security-Probleme (Cross-Site Scripting, SQL Injection, etc.). Die allermeisten Frameworks haben Lösungen für die Probleme, aber man muss es wissen um es korrekt einzusetzen. Bei Web-Anwendungen ist das wichtiger als bei klassischen Anwendungen, da Deine Anwendung offen da steht und Angreifer quasi einlädt sich auszutoben. Es gibt reichlich Literatur (auch online) zum Thema.
Konrad
Hi!
Meine Antwort wäre gewesen: Das halbe Programmier-Internet ist voll von Webseitenentwicklung, was willst du bloß wissen?
Aber da Konrad mit einer Beschreibung der Sprachen angefangen hat, ergänze ich die beteiligten Dienste.
Nginx: Der Router, der den Webserver ans Internet anschließt. Damit haben die meisten Entwickler wenig zu tun. Genauso wie mit Firewall und Mailservern, die auch beteiligt sind, aber meistens von einem Admin wegabstrahiert werden.
Apache: Der absolute Standard-Webserver. Er kann PHP ausführen. Ansonsten leitet er nur die Dateien in HTML, Javascript und CSS weiter.
Alternativen zu Apache: NodeJS führt Javascript-Programme aus, Python halt Python-Programme. Wenn der Server die Verbindungen zu den Clients aufrechterhalten soll, zum Beispiel zum Streamen oder für Chats, geht Apache schlecht. Dafür werden meist NodeJS und manchmal auch Python genommen. In seltenen Fällen auch Ruby oder Java, aber das sind Relikte.
MariaDB selten Postgres: Die Datenbank, in der alles steht, was in Tabellenform gespeichert werden soll. Sie wird in der meistgehassten Sprache SQL programmiert, aber man kommt meistens nicht dran vorbei. Hipster nehmen statt dessen MongoDB, aber die müssen auch nur Venture Capital bekommen und keine User.
Das alles hier läuft auf einem Linux-Server. Zum Entwickeln gehen auch Windows und Macos gut, aber im Produktivbetrieb Linux.
Dazu kommen die Clients, die Browser, die werden aktuell noch fast ausschließlich in Javascript programmiert. Wenn der Client gar nichts kann außer Anzeigen, und jeder Algorithmus läuft auf dem Server, braucht man nur PHP. Ansonsten ist Javascript im Browser der erste Schritt, dass sich etwas bewegt. Umgekehrt, wenn die App ganz alleine arbeitet und keinen Speicherstand an den Server schicken muss, braucht man ausschließlich Javascript.
Es gibt auch noch Anwendungen, die auf dem Client und Server parallel ausgeführt werden. Beispielsweise ein Wert wird im Client validiert, und vom Server aus Sicherheitsgründen mit dem selben Algorithmus nochmal. Wenn der Client Daten braucht, weiß der Server das und stellt sie im Client zur Verfügung. Solche Programme sind immer in Javascript geschrieben und heißen zum Beispiel Meteor.
Thomas
Hallo,
On Fri, Mar 05, 2021 at 02:10:24PM +0100, Thomas Schmidt wrote:
MariaDB selten Postgres: Die Datenbank, in der alles steht, was in Tabellenform gespeichert werden soll. Sie wird in der meistgehassten Sprache SQL programmiert, aber man kommt meistens nicht dran vorbei.
s/meistgehassten/meistmissverstandenen/ ;-)
Es sind halt keine Tabellen sondern Mengen (im mathematischen Sinne) von Tupeln. Ich kann das Buch "Database in Depth" von C.J.Date [https://www.oreilly.com/library/view/database-in-depth/0596100124/] nur jedem empfehlen der sich mit RDMS beschäftigen will/muss.
Keine Angst... sind keine schrecklichen Formeln drin. Bloss Mengenlehre für Programmierer erklärt :-)
Grüsse Andreas
Wow, Konrad. Damit hätte ich jetzt nicht gerechnet.
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). Wenn ich an Webanwendung denke, dann habe ich zum Beispiel Telegram im Kopf. Allerdings sehe ich optisch nicht, dass Telegram als Webanwengung irgendwie was mit HTML/HTML5 zu tun hat. Es muss auch etwas geben das sich CSS nennt, da weiss ich aber auch nicht wann ich das brauche. Aktuell gibt es zwei Domains. Bei der einen Domain soll der normale Webauftritt stattfinden. Er repräsentiert das Unternehmen in jedem Land, in diesem Fall Deutschland. Das Unternehmen soll weltweit agieren, dementsprechend kommen im Laufe der Zeit noch weitere hinzu. Ist aber irrelevant. Hinter der anderen Domain ist dann die Webanwendung und Datenbank versteckt. In der Datenbank sind neben allgemeinen Informationen auch sensible Daten der Nutzer, welche nicht unbedingt ständig durchs Internet müssen.
Die Webanwendung (Programmiersprache noch unklar) muss sich also mit der einen Domain verbinden. Ich habe mich schon mit dem Gedanken angefreundet, dass die Nutzer sich einerseits mittels Webbrowser in ihren Account einloggen können oder sich eben die Webanwendung "installieren", wie so ein Telegram, die ganzen Google Anwendungen, etc. Müssen sensible Daten verarbeitet werden, soll dies auf dem Server passieren, alle weitere Aktionen auf dem Client.
Kann ich mit den Angaben jetzt weiter die richtige(n) Programmiersprachen filtern? Wenn nein, welche Fragen muss ich noch stellen um die Suche weiter einzugrenzen?
Gruß Stefan
Am Fr., 5. März 2021 um 13:28 Uhr schrieb Konrad Rosenbaum <konrad@silmor.de
:
Hi,
On 05/03/2021 12:15, Stefan Engelhardt wrote:
ich würde gerne lernen/verstehen, wie Webanwendungen aufgebaut sind, welche Programmiersprachen wann verwendet werden, etc. Ist zufälligerweise jemand unter euch, der sich in dem Thema Zuhause fühlt?
Es kommt sehr stark darauf an was Du unter "Webanwendung" verstehst und in welche Umgebung die Anwendung eingebettet ist.
Grundsätzlich kannst Du jede beliebige Programmiersprache benutzen um aktive Webinhalte zu programmieren, ein paar typische Beispiele in mehr oder weniger historischer Reihenfolge:
C/C++: klassische CGI-"Scripte". Wird gerne verwendet um irgendwelche Low-Level Informationen über den Browser anzusprechen (z.B. klassische Web-Cam, Sensor-Status abfragen, etc.) ohne große Ansprüche an die Interaktivität. Ist normalerweise in ein größeres Framework eingebettet bei dem dann kaum noch auffällt dass ein paar CGIs da drin versteckt sind (z.B. die Konfiguration Deiner FritzBox). Heute werden auch gerne mal solche Sprachen wie Go oder Rust verwendet um CGIs zu schreiben.
Perl: war bis vor 10 Jahren der Platzhirsch unter den Web-Sprachen. Man kann einfache CGIs oder sehr komplexe Anwendungen damit schreiben. Heiko kann sicherlich mehr zu Perl sagen als ich. Von mir nur eine kleine Warnung: Perl ist eine "write-only Sprache" - d.h. es ist sehr einfach Scripte so zu schreiben dass man sie ein paar Tage später nicht mehr versteht - auf der anderen Seite habe ich auch schon sehr schöne Perl-Scripte gesehen (aber nicht viele).
Java: hat in verschiedensten Formen das Web beeinflusst. Auf der Client Seite gab es "Applets" (lern es nicht, funktioniert nicht mehr). Auf der Server Seite gab es verschiedene Konzepte wie "Java Server Pages", "Application Server", etc. Wird im Business-Umfeld relativ häufig als Framework eingesetzt (z.B. Jenkins CI Server, Gerrit Code Review, Tomcat, ...). Hat den Vorteil dass es sehr dicht an der klassischen Anwendungsprogrammierung ist und den Browser nur als Schnittstelle zum User benutzt.
Javascript, CSS: im Wesentlichen Client-Seite. Beide werden benutzt um Applikationen interaktiver zu machen und "schöner" zu gestalten. Es ist erstaunlich wie weit man mit der Kombination kommt (ich habe z.B. mal eine HTML-Seite entwickelt die Barcodes ausspuckt ohne den Server fragen zu müssen). Es ist aber auch erstaunlich wie schlimm die Kopfschmerzen nach ein paar Stunden Javascript sind. Wird normalerweise als Ergänzung zu anderen Server-seitigen Frameworks eingesetzt.
PHP: de-facto Standard für interaktive Web-Inhalte, gefühlt über 90% der Webseiten sind heute mit PHP geschrieben. Die Sprache ist explizit für Web entwickelt und bietet so ziemlich alles was man sich vorstellen kann. In bestimmten elitären Kreisen gilt PHP wahlweise als unsicher (behobenes historisches Problem) oder unästhetisch (Geschmacksfrage). Auf der anderen Seite beweisen große Projekte wie Wikipedia oder Phabricator, dass PHP für anspruchsvolle Sachen geeignet ist. Wenn Du es lernst orientier Dich bitte an den größeren Projekten, es gibt (genau wie bei anderen verbreiteten Sprachen) viel Schrott, der einem gut zeigt welche Fehler man machen kann...
Ruby/Python: sind beide angetreten Perl zu verdrängen. Die Fans sind üblicherweise auf den Erfolg von PHP wütend. Es gibt in beiden Sprachen gute Frameworks und beeindruckende Anwendungen. Ob Du sie lernen willst hängt davon ab ob Du sowieso Fan einer dieser Sprachen bist oder ob Du ein Projekt zum Thema hast.
C#: Microsoft ist wie üblich auf Java neidisch und versucht es aus dem Business-Umfeld zu verdrängen - mit teilweisem Erfolg. Würde ich nur lernen wenn mein Chef die Bücher und die Zeit bezahlt.
Ich habe auch schonmal eine Mini-Spass-Webseite mit Bash programmiert, aber ich würde empfehlen bei den verbreiteteren Frameworks zu bleiben.
Zum Einstieg würde ich Dir empfehlen PHP zu lernen - es ist schön einfach, flexibel und Du kommst relativ schnell zu Erfolgserlebnissen, kannst aber auch relativ weit damit kommen. Es ist recht gut geeignet die wichtigsten Konzepte zu begreifen und Du wirst immer Leute finden, die weiterhelfen können. Wenn Du die Grundlagen begriffen hast mach' mal etwas "Urlaub" von PHP und schau Dir andere Frameworks an (z.B. indem Du in die Sourcen anderer Anwendungen schaust). Genau wie bei "klassischen" Anwendungen hängt die Wahl der Sprache vom Einsatzgebiet der Anwendung und von deren Umgebung ab.
Architektonisch reichen Webanwendungen von simplen Datentransformatoren (z.B. Wert aus einer Datei lesen und in HTML verpacken) über die klassischen multi-tier Applikationen bis hin zu komplexen Cluster-Anwendungen (z.B. Phabricator oder Wikipedia wenn sie vollständig ausgenutzt werden). Sie können komplett alleine dastehen (nur Webserver), eine Datenbank benutzen oder eine komplette Server-Umgebung brauchen. Etwas Literaturstudium kann nicht schaden bevor Du größere Projekte angehst.
Sobald Du die Grundlagen verstanden hast solltest Du auch anfangen Dich mit den Problemen zu beschäftigen - insbesondere Security-Probleme (Cross-Site Scripting, SQL Injection, etc.). Die allermeisten Frameworks haben Lösungen für die Probleme, aber man muss es wissen um es korrekt einzusetzen. Bei Web-Anwendungen ist das wichtiger als bei klassischen Anwendungen, da Deine Anwendung offen da steht und Angreifer quasi einlädt sich auszutoben. Es gibt reichlich Literatur (auch online) zum Thema.
Konrad
mit den Angaben jetzt weiter die richtige(n) Programmiersprachen filtern
Nein, genau solche Anforderungen sind in PHP, Javascript und Python gleichermaßen üblich.
Nutzer sich einerseits mittels Webbrowser in ihren Account einloggen
Du suchst also den Baukasten, der am meisten schon kann und dabei noch nicht zu schlimm bevormundet. Das Standard-Betriebssystem des Web ist Wordpress, und es kann genau das. Ich würde im ersten Ansatz schauen, ob das nicht schon genau das Ziel erfüllt.
Thomas
Am Freitag, den 05.03.2021, 14:38 +0100 schrieb Stefan Engelhardt:
Wow, Konrad. Damit hätte ich jetzt nicht gerechnet.
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). Wenn ich an Webanwendung denke, dann habe ich zum Beispiel Telegram im Kopf. Allerdings sehe ich optisch nicht, dass Telegram als Webanwengung irgendwie was mit HTML/HTML5 zu tun hat. Es muss auch etwas geben das sich CSS nennt, da weiss ich aber auch nicht wann ich das brauche. Aktuell gibt es zwei Domains. Bei der einen Domain soll der normale Webauftritt stattfinden. Er repräsentiert das Unternehmen in jedem Land, in diesem Fall Deutschland. Das Unternehmen soll weltweit agieren, dementsprechend kommen im Laufe der Zeit noch weitere hinzu. Ist aber irrelevant. Hinter der anderen Domain ist dann die Webanwendung und Datenbank versteckt. In der Datenbank sind neben allgemeinen Informationen auch sensible Daten der Nutzer, welche nicht unbedingt ständig durchs Internet müssen.
Die Webanwendung (Programmiersprache noch unklar) muss sich also mit der einen Domain verbinden. Ich habe mich schon mit dem Gedanken angefreundet, dass die Nutzer sich einerseits mittels Webbrowser in ihren Account einloggen können oder sich eben die Webanwendung "installieren", wie so ein Telegram, die ganzen Google Anwendungen, etc. Müssen sensible Daten verarbeitet werden, soll dies auf dem Server passieren, alle weitere Aktionen auf dem Client.
Kann ich mit den Angaben jetzt weiter die richtige(n) Programmiersprachen filtern? Wenn nein, welche Fragen muss ich noch stellen um die Suche weiter einzugrenzen?
Hallo Stefan,
versuch Dir erst mal Klarheit über die Begrifflichkeiten und deren Zugehörigkeiten zu verschaffen.
- Programmiersprachen (plain HTML, PHP, JavaScript, Python, Go, ...) - Anwendungen (Chat, Wiki, ERP-System, Shop, ...) - Nutzung interaktiv oder nur lesen - Dienstprogramme (Webserver z.B.: Apache, Nginx ... , Datenbanken z.B. PostgreSQL, SQLite, HSQLDB ... ) - Welche Aufgaben müssen gelöst werden und welche Tools sind dafür geeignet - Welche Daten werden verarbeitet (Cookies, Logs, Eingabedaten, ...) ....
https://wiki.selfhtml.org/wiki/Startseite ...
VG Gerd
Am Freitag, dem 05.03.2021 um 14:38 +0100 schrieb Stefan Engelhardt:
[..]
Wenn ich an Webanwendung denke, dann habe ich zum Beispiel Telegram im Kopf. Allerdings sehe ich optisch nicht, dass Telegram als Webanwengung irgendwie was mit HTML/HTML5 zu tun hat. Es muss auch etwas geben das sich CSS nennt, da weiss ich aber auch nicht wann ich das brauche.
HTML -> Inhalt und Strukturierung, CSS -> Darstellung
Die beiden trennen Inhalt/Struktur von der optischen Darstellung, die ja auf unterschiedlichen Geräten unterschiedlich aussehen kann, z.B. Desktop-Rechner vs. Tablet vs. Mobile Phone, Themen (hell, dunkel, kontraststark, ...), etc.
Vielleicht solltest du mit HTML und CSS anfangen und dann ggf. Javascript/PHP erlernen? Oder vielleicht interessiert dich Ruby-Rails?
Es gibt gute Einsteigerportale/Apps mit teilweisen kostenfreien und teilweisen kostenpflichtigen Angeboten, z.B. Sololearn, freecodecamp, w3schools, Udacity, Udemy,etc.
Aktuell gibt es zwei Domains. Bei der einen Domain soll der normale Webauftritt stattfinden. Er repräsentiert das Unternehmen in jedem Land, in diesem Fall Deutschland. Das Unternehmen soll weltweit agieren, dementsprechend kommen im Laufe der Zeit noch weitere hinzu. Ist aber irrelevant. Hinter der anderen Domain ist dann die Webanwendung und Datenbank versteckt. In der Datenbank sind neben allgemeinen Informationen auch sensible Daten der Nutzer, welche nicht unbedingt ständig durchs Internet müssen.
Die Webanwendung (Programmiersprache noch unklar) muss sich also mit der einen Domain verbinden. Ich habe mich schon mit dem Gedanken angefreundet, dass die Nutzer sich einerseits mittels Webbrowser in ihren Account einloggen können oder sich eben die Webanwendung "installieren", wie so ein Telegram, die ganzen Google Anwendungen, etc. Müssen sensible Daten verarbeitet werden, soll dies auf dem Server passieren, alle weitere Aktionen auf dem Client.
Da wirst du um HTML/CSS nicht herumkommen. Für die Webanwendung wäre mein Gedanke wie oben beschrieben: entweder PHP/SQL/Javascript ("klassisch") oder Ruby on Rails/SQL.
meine Meinung
HTH, Daniel
Am Freitag, dem 05.03.2021 um 15:44 +0100 schrieb Daniel Leidert:
[..]
Da wirst du um HTML/CSS nicht herumkommen. Für die Webanwendung wäre mein Gedanke wie oben beschrieben: entweder PHP/SQL/Javascript ("klassisch") oder Ruby on Rails/SQL.
... oder Python oder Go.
Was dir mehr liegt.
HTH Daniel
Leute, dass sind viel mehr Informationen als ich erwartet habe. Ich dachte, ihr seid Hobby-Linuxer dabei seid ihr scheinbar IT-Freaks :) (Liebevoll gemeint) Vielen lieben Dank dafür.
Ein was noch zur Klarstellung. Ich selbst werde nicht programmieren. Aber ich sollte schon wissen, welche Programmiersprachen zum Einsatz kommen. Wenn ich geschnallt habe, "was das Unternehmen braucht", kann ich auf die Suche nach Leuten gehen, die dann meine Probleme aus dem Handgelenk schütteln. Muss jetzt aber erst nochmal alle Informationen von euch durcharbeiten und gucken was bei raus kommt.
Eine Antwort noch an Gerd: - Programmiersprachen (plain HTML, PHP, JavaScript, Python, Go, ...) Das ist meine Ausgangsfrage, auf die ich eine Antwort suche.
- Anwendungen (Chat, Wiki, ERP-System, Shop, ...) Die Anwengung, welche programmiert werden soll, ist eine Art ERP-System, in dem man auch chatten können soll oder zumindest Nachrichten. Je nach etablierung auf dem Markt, kommt auch ein Shop hinzu. Aber dafür gibt es noch keine tiefgreifenderen Gedanken.
- Nutzung interaktiv oder nur lesen Interaktiv
- Dienstprogramme (Webserver z.B.: Apache, Nginx ... , Datenbanken z.B. PostgreSQL, SQLite, HSQLDB ... ) Weil Webanwendung, Webserver und Datenbank. Ist noch nicht ganz raus, vielleicht auch ein Active Directory für die User der Webanwendung selbst. Vielleicht ist auch eine VPN-Verbindung von Interesse, aber das ist möglicherweise einfach zu viel Sicherheit des guten als notwendig.
- Welche Aufgaben müssen gelöst werden und welche Tools sind dafür geeignet Erstmal wäre es nicht schlecht zu wissen, wie man "Ein Fenster" beim Anwender auf dem Bildschirm erzeugt, welches man dann weiter mit Leben füllen kann. Im Fenster sind, je nach Personengruppe, Verwaltungsmöglichkeiten zur Schul-, Aus-, Weiterbildung und Umschulung. Einerseits kann eine Schule ihre ganzen Bedürfnisse abbilden, Lehrer ihren Unterricht anbieten, Schüler ihren Werdegang planen, Unternehmen ihren Personalbedarf, Ausbildungsplätze (und ähnliches) anbieten, ... Kurzum. Zum einen braucht es Eingabefelder, zum anderen muss es grafisch hübsch aufgearbeitet sein. Im Hintergrund findet ein Matching statt, dessen Ergebnisse auf die grafische Darstellung haben.
- Welche Daten werden verarbeitet (Cookies, Logs, Eingabedaten, ...) Von Programmieren verstehe ich wie gesagt nicht so wahnsinnig viel. Mir ist fast egal, wie die Programmierer die Aufgaben lösen werden. Ich rechne eigentlich fest damit, dass die erste Version ganz anders aussehen wird also die, ab wann erste Kunden dran dürfen. Nach meiner Vorstellung müssen wir einmal alles "irgendwie" darstellen und wenn das einigermaßen funktioniert, setzen wir uns als Team hin und erstellen dann, eine brauchbare "hübsche" Variante die dann immer weiter entwickelt wird. Da steckt einfach zu viel dahinter um alles Mal eben so zu erklären oder einfach Mal so zu durchblicken.
Am Fr., 5. März 2021 um 15:59 Uhr schrieb Daniel Leidert < daniel.leidert.spam@gmx.net>:
Am Freitag, dem 05.03.2021 um 15:44 +0100 schrieb Daniel Leidert:
[..]
Da wirst du um HTML/CSS nicht herumkommen. Für die Webanwendung wäre mein Gedanke wie oben beschrieben: entweder PHP/SQL/Javascript ("klassisch")
oder
Ruby on Rails/SQL.
... oder Python oder Go.
Was dir mehr liegt.
HTH Daniel
So, jetzt nochmal etwas zusammengefasster.
*Domain* Vorhanden, IP zeigt auf Ubiquiti USG, welchen ich als Router/Firewall nutze. ! Gesetzt, keine Veränderung angestrebt.
*Router* USG leitet alle 80/443-Anfragen an einen Reverse-Proxy in der Synology weiter. ! Gesetzt, keine Veränderung angestrebt. Reverser-Proxy notwendig.
*Webserver* Webserserver realisierbar als: - VM in Proxmox - Synology DS918+ wahlweise mit Nginx oder Apache Entscheidung ist offen
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?
*Nginx oder Apache* Mir 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, CSS Nginx: -unbekannt- Entscheidung ist offen
Frage: - Kann es passieren, dass ich mehrere verschiedene Webserver laufen lassen muss um ein "Problem" abzufangen?
*Programmiersprachen* *Gesetzt*: - "HTML/CSS" (...komme ich nicht drum herum...) - PHP/SQL/Javascript ("klassisch") *Abgelehnt*: -externe Frameworks (https://www.youtube.com/watch?v=m-gVSnJmm-4) *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? - 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? - 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.
*Coloboratives Arbeiten* Ticketsystem: Ich habe mir überlegt, dass es ein Ticketsystem geben soll, in dem alle Wünsche bezüglich fehlenden Funktionen, Fehlern im Verhalten oder Änderungswünschen der Nutzer geben soll. Zum einen bietet wieder das NAS soetwas, aber ich denke auch das es auch eine opensource Lösung für eine Debian-VM geben kann. Und je nach dem, wie so eine kontinuierliche Projektabwicklung funktioniert, ist vielleicht in dieser (Software-) Lösung schon ein Ticketsystem dabei.
Kanban/Agil: Auf der Ebene Unternehmensentwicklung reicht es mir Kanban zu verwenden. Nextcloud bietet hier Deckt, dass macht mir einen guten Eindruck. Die Entwickler-Teams sind externe Leute die sich untereinander nicht kennen und auch nicht zwingend kennen lernen sollen. Hat folgenden Hintergrund, die Entwicklung soll ähnlich sein wie in der Linux-Welt. Ich, bzw. das Ticketsystem gibt ein Entwicklungswunsch vor. Diesen sollen die Teamleiter sehen können und mit ihren Teams besprechen. Hat ein Entwickler Interesse, kann er/sie/es anfangen mit programmieren und seine Lösung über den Teamleiter einreichen. Der Endnutzer kann dann später sein System so zusammenbasteln, wie es am besten gefällt. Im Laufe der Zeit wird man dann schon sehen, welche Entwicklungen sich "am Markt durchsetzen konnten". Also ganz grobe Entwicklungen als Kanban, wie die Entwickler-Teams bei sich Projekte abwickeln, ist deren Weißweinschorle. Kommentar am Rande: Bei den Entwicklern selbst ist bereits jetzt klar, dass die nie lange bei ihren Teamleiter (und Unternehmen) bleiben und nicht viele Projekte einreichen werden.
Forum: Vielleicht gut zum Besprechen von Entwicklungsaufträgen? Keine Ahnung ob man das braucht. Möglich ist es bestimmt ein Forum in die Landschaft einzupflegen. Das Synology-NAS bringt soetwas mit, für eine Debian VM gibt es da bestimmt auch was cooles. Nextcloud hätte da vielleicht auch was zum nachinstallieren, habe ich nur eben beim durchblättern nicht gesehen.
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.
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.
Am Fr., 5. März 2021 um 17:09 Uhr schrieb Stefan Engelhardt < stefan.engelhardt@gmx.de>:
Leute, dass sind viel mehr Informationen als ich erwartet habe. Ich dachte, ihr seid Hobby-Linuxer dabei seid ihr scheinbar IT-Freaks :) (Liebevoll gemeint) Vielen lieben Dank dafür.
Ein was noch zur Klarstellung. Ich selbst werde nicht programmieren. Aber ich sollte schon wissen, welche Programmiersprachen zum Einsatz kommen. Wenn ich geschnallt habe, "was das Unternehmen braucht", kann ich auf die Suche nach Leuten gehen, die dann meine Probleme aus dem Handgelenk schütteln. Muss jetzt aber erst nochmal alle Informationen von euch durcharbeiten und gucken was bei raus kommt.
Eine Antwort noch an Gerd:
- Programmiersprachen (plain HTML, PHP, JavaScript, Python, Go, ...)
Das ist meine Ausgangsfrage, auf die ich eine Antwort suche.
- Anwendungen (Chat, Wiki, ERP-System, Shop, ...)
Die Anwengung, welche programmiert werden soll, ist eine Art ERP-System, in dem man auch chatten können soll oder zumindest Nachrichten. Je nach etablierung auf dem Markt, kommt auch ein Shop hinzu. Aber dafür gibt es noch keine tiefgreifenderen Gedanken.
- Nutzung interaktiv oder nur lesen
Interaktiv
- Dienstprogramme (Webserver z.B.: Apache, Nginx ... , Datenbanken z.B.
PostgreSQL, SQLite, HSQLDB ... ) Weil Webanwendung, Webserver und Datenbank. Ist noch nicht ganz raus, vielleicht auch ein Active Directory für die User der Webanwendung selbst. Vielleicht ist auch eine VPN-Verbindung von Interesse, aber das ist möglicherweise einfach zu viel Sicherheit des guten als notwendig.
- Welche Aufgaben müssen gelöst werden und welche Tools sind dafür geeignet
Erstmal wäre es nicht schlecht zu wissen, wie man "Ein Fenster" beim Anwender auf dem Bildschirm erzeugt, welches man dann weiter mit Leben füllen kann. Im Fenster sind, je nach Personengruppe, Verwaltungsmöglichkeiten zur Schul-, Aus-, Weiterbildung und Umschulung. Einerseits kann eine Schule ihre ganzen Bedürfnisse abbilden, Lehrer ihren Unterricht anbieten, Schüler ihren Werdegang planen, Unternehmen ihren Personalbedarf, Ausbildungsplätze (und ähnliches) anbieten, ... Kurzum. Zum einen braucht es Eingabefelder, zum anderen muss es grafisch hübsch aufgearbeitet sein. Im Hintergrund findet ein Matching statt, dessen Ergebnisse auf die grafische Darstellung haben.
- Welche Daten werden verarbeitet (Cookies, Logs, Eingabedaten, ...)
Von Programmieren verstehe ich wie gesagt nicht so wahnsinnig viel. Mir ist fast egal, wie die Programmierer die Aufgaben lösen werden. Ich rechne eigentlich fest damit, dass die erste Version ganz anders aussehen wird also die, ab wann erste Kunden dran dürfen. Nach meiner Vorstellung müssen wir einmal alles "irgendwie" darstellen und wenn das einigermaßen funktioniert, setzen wir uns als Team hin und erstellen dann, eine brauchbare "hübsche" Variante die dann immer weiter entwickelt wird. Da steckt einfach zu viel dahinter um alles Mal eben so zu erklären oder einfach Mal so zu durchblicken.
Am Fr., 5. März 2021 um 15:59 Uhr schrieb Daniel Leidert < daniel.leidert.spam@gmx.net>:
Am Freitag, dem 05.03.2021 um 15:44 +0100 schrieb Daniel Leidert:
[..]
Da wirst du um HTML/CSS nicht herumkommen. Für die Webanwendung wäre
mein
Gedanke wie oben beschrieben: entweder PHP/SQL/Javascript ("klassisch")
oder
Ruby on Rails/SQL.
... oder Python oder Go.
Was dir mehr liegt.
HTH Daniel
das verwendete Framework wird nicht mehr suportet und alles muss geändert werden
Das ist schlimm, aber passiert erst nach vielen Jahren. So ein Tod kündigt sich an wie z.B. bei Drupal. Wenn man alles selbst baut, muss nach Wochen schon wieder überarbeitet werden, da ist der komplette Neuanfang teilweise nach zwei Jahren nötig. Das Framework verlängert also den Support, selbst wenn es schlecht gepflegt ist. Ein Relaunch-Zyklus ist meist um die sechs Jahre, das heißt, bis auf die Datenbank wird dann eh fast alles neu erstellt. Innerhalb der sechs Jahre will man aber die Aktualisierungen vom Framework mitnehmen und nicht selbst entwickeln müssen.
mit ihrem Code auseinander setzen und nicht einfach nur blind copy-paste machen
Eigenentwicklungen auf Basis von Copy&Paste nennen sich Boilerplate. Das ist doof, stimmt. Aber ein übliches Framework hat einen Core, den man niemals anfasst und gut kennt. Und ein paar dringend benötigte und gut getestete Plugins, von denen man die meisten niemals anfasst. Nur den kleinen selbst geschriebenen Teil ändert man.
Muss ich mehrere Webserver laufen lassen, wenn ich verschiedene Funktionen brauche
Ja. Der Chat hat in der Regel Websockets, der läuft oft in Node. Bilder haben viel Traffic, die kann man direkt vom Nginx liefern lassen. Das CMS ist meist in PHP und kommt vom Apache, aber der Cache davon ist wiederum im schnelleren Nginx. Sind schon drei Webserver, die der Nginx zusammenroutet. Klingt komplizierter als es ist, der Admin kriegt das gut hin :-D
Erstmal wäre es nicht schlecht zu wissen, wie man "Ein Fenster" beim Anwender auf dem Bildschirm erzeugt, welches man dann weiter mit Leben füllen kann
Du bist gerade bei einem schlanken siebenstelligen Budget, und das ist nicht übertrieben. Der Login, die Eingabe der Daten, den Zusammenbau der Seiten und viele andere Komponenten sind bei heutigen Ansprüchen extrem komplex. Deshalb ist auch die Frage nach der Programmiersprache rein philosophisch. Man nimmt die, in der das Framework ist. CMS gibt es nahezu ausschließlich in PHP, und auch da ist die Auswahl mittlerweile an einer Hand abzählbar. Django Wagtail ist glaube ich die einzige Alternative, das ist in Python. Das CMS brauchst du fürs Marketing, Hilfeseiten, Anmeldung, also das Drumherum.
Ich würde jetzt fragen, aus wie vielen unabhängigen Teilen die Seite zusammengebaut ist, und wie die Schnittstellen funktionieren. Beispielsweise baust du eine zentrale Userverwaltung im CMS. Daran angedockt ist der Chat, der hat technisch völlig andere Anforderungen. Und angedockt ist das ERP, das arbeitet mit anderen Daten und anderem Backend. Oder das ERP wird als Plugin ins CMS integriert, das dürfte bei einem kleinen ERP mit fünfstelligem Budget machbar sein. Häufig müssen 90% der Funktionen nur ein paar geschulte Leute machen, die müssen nicht optisch poliert sein und können aus fertig designten Standardkomponenten des CMS bestehen. 5% sind dann für die Kunden und auf schönen Schein getrimmt. So hast du erst einmal nur ein einziges Framework, nämlich das CMS, das auch kleines ERP ganz gut kann. Das ist natürlich alles von den genauen Anforderungen abhängig.
Du könntest die minimalen Wünsche mit einem Django-Entwickler und einem Wordpress-Entwickler besprechen und gucken, welche Ideen die haben wie es am besten geht. Dann ist dir vielleicht klarer, wohin es gehen soll. Es könnte sich auch lohnen, mit einem Experten die üblichen Verdächtigen wie wperp.com zu testen, also rückwärts vom Angebot zum Bedarf zu denken. Das bringt in wenigen Tagen sehr viel Erkenntnis.
VPN, Forum, Activedirectory
Wenn es irgendwie noch handhabbar sein soll und halbwegs sicher, verbinde nichts davon mit dem Produktivserver. Der läuft am besten, wenn er nur die nötigsten Funktionen machen muss und nicht noch völlig andere Sachen.
Thomas
Hallo,
On Fri, Mar 05, 2021 at 11:13:46PM +0100, Stefan Engelhardt wrote:
So, jetzt nochmal etwas zusammengefasster.
Sach mal... Du hast ja offensichtlich ein Entwicklerteam. Ich finde es ja schon ein bissl befremdlich, dass Du sonne Details nicht mit denen besprichst.
Das geht ja jetzt auch schon langsam über "Helft mit mal nen bissl mit Linux" hinaus.
Find ich jetzt schon nen bissl merkwürdig.
Grüsse Andreas
Hallo Andreas,
nein, ich habe noch kein richtiges Entwicklerteam. Ansonsten hättest Du natürlich Recht. Es ist so, dass ich mir aktuell klar machen muss, welche Programmiersprachen die Entwickler können müssen und mit dieser Erkenntnis, kann ich dann erst auf die Entwicklerteams zugehen. Anders herum funktioniert das leider nicht. Das es so ausartet, hätte ich nicht gedacht, daher bitte ich um Entschuldigung. Ich hätte gedacht, da kommt relativ einstimmig eine Antwort wie: Du brauchst ein klein bisschen HTML für die index.html und in der ist dann ein PHP und meinetwegen CSS.
Gruß Stefan
Am Sa., 6. März 2021 um 01:00 Uhr schrieb Andreas Fett a.fett@gmx.de:
Hallo,
On Fri, Mar 05, 2021 at 11:13:46PM +0100, Stefan Engelhardt wrote:
So, jetzt nochmal etwas zusammengefasster.
Sach mal... Du hast ja offensichtlich ein Entwicklerteam. Ich finde es ja schon ein bissl befremdlich, dass Du sonne Details nicht mit denen besprichst.
Das geht ja jetzt auch schon langsam über "Helft mit mal nen bissl mit Linux" hinaus.
Find ich jetzt schon nen bissl merkwürdig.
Grüsse Andreas
-- The three chief virtues of a programmer are: Laziness, Impatience and Hubris. -- Larry Wall
Hallo Stefan,
Ich bin seit einigen Jahren als Entwickler in der Webentwicklung tätig. Wenn du als Art Produktmanager für das Projekt verantwortlich bist, empfehle ich dir dringend die Vorschläge von Konrad zu Herzen zu nehmen. Sonst fabrizierst du viel Frust und versänktes Kapital. Schreibe anständige Anforderungen und überlasse die Umsetzung den Leuten, die sich damit auskennen. Auch die Wahl der Programmiersprache.
Viele Grüße,
Falk
Stefan Engelhardt schrieb am 6. März 2021 11:00 (GMT +01:00):
Hallo Andreas,
nein, ich habe noch kein richtiges Entwicklerteam. Ansonsten hättest Du natürlich Recht. Es ist so, dass ich mir aktuell klar machen muss, welche Programmiersprachen die Entwickler können müssen und mit dieser Erkenntnis, kann ich dann erst auf die Entwicklerteams zugehen. Anders herum funktioniert das leider nicht. Das es so ausartet, hätte ich nicht gedacht, daher bitte ich um Entschuldigung. Ich hätte gedacht, da kommt relativ einstimmig eine Antwort wie: Du brauchst ein klein bisschen HTML für die index.html und in der ist dann ein PHP und meinetwegen CSS.
Gruß Stefan
Am Sa., 6. März 2021 um 01:00 Uhr schrieb Andreas Fett a.fett@gmx.de:
Hallo,
On Fri, Mar 05, 2021 at 11:13:46PM +0100, Stefan Engelhardt wrote:
So, jetzt nochmal etwas zusammengefasster.
Sach mal... Du hast ja offensichtlich ein Entwicklerteam. Ich finde es ja schon ein bissl befremdlich, dass Du sonne Details nicht mit denen besprichst.
Das geht ja jetzt auch schon langsam über "Helft mit mal nen bissl mit Linux" hinaus.
Find ich jetzt schon nen bissl merkwürdig.
Grüsse Andreas
-- The three chief virtues of a programmer are: Laziness, Impatience and Hubris. -- Larry Wall
Hallo,
On Sat, Mar 06, 2021 at 11:00:00AM +0100, Stefan Engelhardt wrote:
Es ist so, dass ich mir aktuell klar machen muss, welche Programmiersprachen die Entwickler können müssen und mit dieser Erkenntnis, kann ich dann erst auf die Entwicklerteams zugehen. Anders herum funktioniert das leider nicht.
Ich sehe das wie Konrad und Falk. Kümmer Dich um die Anwendungsfälle und die Beschreibung was das "Produkt" tun und können soll und was es kosten darf/soll.
Versuch das möglichst exakt zu machen. Dann kauf Dir nen gestandenen Entwickler und lass den Entscheidungen zu Architektur, Design und Implementation (incl. Programmiersprache) auf der Basis von Deiner Beschreibung machen.
Alles andere ist zum Scheitern verurteilt.
Ich hätte gedacht, da kommt relativ einstimmig eine Antwort wie: Du brauchst ein klein bisschen HTML für die index.html und in der ist dann ein PHP und meinetwegen CSS.
Nein, das ging vor zwanzig Jahren so als man happy war, wenn ne Web Seite überhaupt auf Nutzereingaben reagieren konnte. Und selbst damals war das schon ne schlechte Idee so loszulegen wenn man damit Geld verdienen wollte.
Grüsse Andreas
Hi,
On 05/03/2021 14:38, Stefan Engelhardt wrote:
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.
On 05/03/2021 23:13, Stefan Engelhardt wrote:
So, jetzt nochmal etwas zusammengefasster.
*_Domain_* Vorhanden, IP zeigt auf Ubiquiti USG, welchen ich als Router/Firewall nutze. ! Gesetzt, keine Veränderung angestrebt.
Falsch. Veränderung wird nötig sein.
*_Router_* USG leitet alle 80/443-Anfragen an einen Reverse-Proxy in der Synology weiter. ! Gesetzt, keine Veränderung angestrebt. Reverser-Proxy notwendig.
Wenn der Traffic so hoch ist dass ein Proxy nötig ist, dann wird es Änderungen geben.
*_Webserver_* Webserserver realisierbar als:
- VM in Proxmox
- Synology DS918+ wahlweise mit Nginx oder Apache
Entscheidung 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.
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?
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.
*_Nginx oder Apache_* Mir 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, CSS Nginx: -unbekannt- Entscheidung ist offen
Frage:
- Kann es passieren, dass ich mehrere verschiedene Webserver laufen
lassen muss um ein "Problem" abzufangen?
Unwahrscheinlich, aber möglich. Du bist noch weit davon entfernt Technologieentscheidungen zu treffen.
*_Programmiersprachen_* _Gesetzt_:
- "HTML/CSS" (...komme ich nicht drum herum...)
- PHP/SQL/Javascript ("klassisch")
Mindestens.
_Abgelehnt_: -externe Frameworks (https://www.youtube.com/watch?v=m-gVSnJmm-4 https://www.youtube.com/watch?v=m-gVSnJmm-4)
Falsch. Ohne Framework sind Deine Anforderungen nicht realistisch und nicht kosteneffizient umsetzbar.
_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)
Frag' Deinen Dienstleister. Vergiss' all die Schlagworte, das entscheidet derjenige der es umsetzt.
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.
- 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?
Ja und Ja. Aber es sind wesentlich weniger Rubi-Spezialisten als PHP-Spezialisten auf dem Markt. Die Auswahl und Preise sind entsprechend.
- Go habe ich auch noch nie gehört. Gibt es genug Programmierer?
Wäre für Web ungewöhnlich. Die Sprache ist relativ neu.
- 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.
*_Coloboratives Arbeiten_* [cut]
Ü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.
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
Hi,
On 05/03/2021 17:09, Stefan Engelhardt wrote:
Leute, dass sind viel mehr Informationen als ich erwartet habe. Ich dachte, ihr seid Hobby-Linuxer dabei seid ihr scheinbar IT-Freaks :) (Liebevoll gemeint) Vielen lieben Dank dafür.
Das eine schließt das andere nicht aus. Hier sind viele IT-Profis unterwegs...
Ein was noch zur Klarstellung. Ich selbst werde nicht programmieren. Aber ich sollte schon wissen, welche Programmiersprachen zum Einsatz kommen. Wenn ich geschnallt habe, "was das Unternehmen braucht", kann ich auf die Suche nach Leuten gehen, die dann meine Probleme aus dem Handgelenk schütteln. Muss jetzt aber erst nochmal alle Informationen von euch durcharbeiten und gucken was bei raus kommt.
Du willst einen externen Dienstleister beauftragen. Mindestens einen. Dir fehlt die Erfahrung um das intern umzusetzen, auch die Erfahrung um die richtigen Leute von Blendern zu unterscheiden. Diese Erfahrung erarbeitest Du Dir auch nicht innerhalb von ein paar Wochen.
Ich kann aus Deiner Beschreibung bisher leider nicht ablesen ob das ein großes Projekt für ein großes Unternehmen wird oder ob da irgendein Mini-Unternehmen Flausen im Kopf hat.
Normalerweise würde ich sagen ein Wirtschaftsinformatiker schüttelt die Anforderungen an ein System aus dem Ärmel, also los geht's: versuche herauszufinden was die Anwendung am Ende machen soll, welche Anforderungen essentiell sind und was Nice-to-Have ist. Versuche Technologien auszublenden - was Du da als "gesetzt" geschrieben hast ist nicht haltbar. Danach hole Dir 1-2 Dienstleister ran und mache jeweils ein Projekt bei dem die erstmal aufschreiben sollen welche Möglichkeiten sie sehen, welche Technologien machbar sind und ganz grob wieviel Budget (in Mann-Tagen und Lizenzen) man braucht. Ein sehr grobes Konzept sollte für Profis mit irgendwas bis 100h machbar sein. Je nach Rahmenbedingungen können die Optionen um mehrere Größenordnungen voneinander entfernt liegen.
Stufe 2 ist dann die eigentliche Umsetzung: such' Dir einen Externen der das aufbaut. Rechne damit dass es u.U. ein sehr großes uns langfristiges Projekt wird. Du musst Dir vorher(!!) Gedanken machen wieviel Abhängigkeit Du akzeptierst, also ob der Dienstleister seine eigene Technologie einsetzen kann oder ob Du auf offene Komponenten bestehst, sowie ob "das Unternehmen" einen eigenen Mitarbeiter dafür einstellt oder langfristig sogar eine ganze Abteilung aufbaut.
Konrad
lug-dd@mailman.schlittermann.de