Jetzt kann ich nicht einmal eine kleine Website erstellen
Kurz gesagt, ich erinnere mich noch gut daran, wie ich mich 2013 an einem Tag hingesetzt und eine kleine Website geschrieben habe.
Es war eine Seite über die Ereignisse meiner Heimatstadt. Alle Ereignisse der kommenden Woche wurden auf einer Seite angezeigt.
Ich habe eine Seite mit Ereignissen und ein kleines Admin-Panel erstellt, in dem sie bearbeitet wurden. Ich hatte ein Buch über PHP, also schrieb ich die Site in PHP, verband die MySQL-Datenbank, legte sie in HTML und CSS an und lud sie auf Shared Hosting hoch. Die Seite wurde genutzt, und ich fügte jeden Morgen fleißig Ereignisse hinzu, bis ich zur Armee ging und niemanden zur Unterstützung zurückließ. Also starb die Seite.
Die Idee der Seite schien immer noch gut zu sein und ich beschloss, sie wiederzubeleben. Es scheint, nehmen Sie es und tun Sie es, aber was gegen mich spielte, war die Tatsache, dass ich mich nicht wirklich an PHP erinnerte und bereits Erfahrung in der Entwicklung in sehr großen, mittleren und kleinen Unternehmen gesammelt hatte.
Ich beschloss, zur Sache zu kommen und begann nachzudenken.
Hmm, ich kann nicht einfach PHP nehmen und ein paar Seiten darin schreiben, gemischt mit HTML. Wie werde ich dies ohne OOP und allgemein normale Codeaufteilung unterstützen? Darüber hinaus sagen alle, dass PHP nicht sehr gut ist und wie viele neue Versionen herausgekommen sind!
Ich denke, ich muss etwas Moderneres nehmen, Node.js oder Python. Aber ich werde natürlich nicht nur darüber schreiben, weil sie keine Best Practices sind. Vielleicht nehme ich ein Framework, zum Beispiel Django oder Express.js. Dies sind jedoch die beliebtesten Frameworks, aber es gibt andere, modernere, die Sie suchen müssen.
Nachdem ich mich für Python oder Node.js entschieden hatte, wurde mir klar, dass es nicht gut ist, nur ganze Seiten vom Server zu verschenken. Wie kann ich in diesem Fall Autorisierungs-Popups oder dynamisches Laden erstellen? Nun, nicht mit jQuery, Gott bewahre! Ich werde wahrscheinlich React oder Vue.js verwenden, um eine richtige, komponentenbasierte Schnittstelle zu schreiben. Angular wird natürlich übertrieben sein. Wenn ich das Framework verwende, muss ich über die API eine Verbindung zum Backend herstellen, also verwende ich das Django REST Framework oder ähnliches. Es ist gut, dass Express.js dies alleine kann, vielleicht lohnt es sich am Ende, Node.js zu wählen. Im Frontend sollte ich Axios verbinden, obwohl es jetzt Fetch gibt, aber wird es von allen Browsern unterstützt? Oder sollte ich Svelte überhaupt nutzen, um gleichzeitig etwas Neues zu lernen ?!
Jetzt lohnt es sich, die IDE korrekt einzurichten, um die Codestile zu respektieren, Einrückungen zu korrigieren und niemals zu vergessen, Triple Equals anstelle von Double zu schreiben. Das Einrichten ist schwierig, da IDE-Plugins miteinander streiten und Semikolons an den falschen Stellen platzieren.
Nachdem ich es herausgefunden habe, verstehe ich, dass mein Code irgendwo gespeichert werden muss. Da ich schon ziemlich müde bin, werde ich den beliebtesten GitHub wählen. Nachdem ich die Git- und SSH-Autorisierung auf meinem Computer eingerichtet habe, stelle ich fest, dass ich nicht weiß, welches Verzweigungssystem ich verwenden soll. GitFlow ist zu redundant, wenn ich alleine bin, aber nicht alles für den Master-Zweig festschreiben? Man weiß nie, jemand wird sich dem Projekt anschließen, oder wenn ich das Repository beim Interview zeige, werden alle lachen. Es gibt auch eine nicht untätige Frage, was in den Commit-Beschreibungen und in welcher Sprache geschrieben werden soll, aber lassen wir das für später.
Es lohnt sich darüber nachzudenken, wie diese ganze Sache auf einem Hosting bereitgestellt werden kann. Wenn sich das Backend in Python befindet, müssen Sie eine virtuelle Umgebung erstellen und darin arbeiten. Aus irgendeinem Grund funktioniert dies auf dem Server nicht sofort, es fällt immer etwas aus. Übrigens müssen Sie die Anwendung als Dienst ausführen, damit nach einem Absturz alles neu startet! Alles, jetzt werden wir definitiv Noda nehmen! Um auf Node.js zu sichern, müssen Sie ein Hosting finden, auf dem Node.js funktioniert. Alle sind Cloud-basiert und sehr modern. Dort müssen Sie die Bereitstellung des Projekts aus dem Repository auf GitHub konfigurieren, aber ich kann nicht einfach den Hauptzweig verbinden, da dann alle meine Änderungen sofort auf den Server übertragen werden, was nicht sehr gut ist. Natürlich können Sie manuell bereitstellen, aber dies ist auch irgendwie veraltet. Vielleicht denke ich noch einmal über das Verzweigungssystem nach.
Oh, immer noch die gleiche DB! Es scheint, dass PostreSQL gut ist und ich sogar damit gearbeitet habe, aber vielleicht brauche ich eine NOSQL-Datenbank? Es bleibt die Frage, wie es auf dem Server bereitgestellt werden kann und wie die gleiche Struktur auf meinem Computer und in der Cloud beibehalten werden kann, ohne dass Daten verloren gehen. Dies ist jedoch noch weit entfernt.
Ah, ich hätte es fast vergessen. Da das Frontend auf JS-Frameworks, dann müssen Sie über Server Side Rendering nachdenken, ist es wichtig, dass mein Projekt indiziert ist. Hmm, brauchen Sie dafür nicht Next.js oder Nuxt.js? Denken sollten.
Da ich bereits begonnen habe, etwas zu vergessen, muss ich einen Task-Tracker schrauben, um Aufgaben und Fortschritte zu verfolgen. Sollte ich Scrum- oder Kanban-Methoden verwenden? Oder kann ich das alleine machen? Wie verfolgen Sie die Fristen?
Ich habe auch nicht an TS, ES6, SASS, PUG, GraphQL, OOP, funktionale Programmierung, Unveränderlichkeit und all das gedacht. Und es wird notwendig sein, das HTTPS-Zertifikat zu befestigen! Vielleicht sollte ich ein paar Freunde im Team haben, um alles richtig zusammenzubringen? Dann können Sie nicht auf Scrum and Pull Requests verzichten.
In diesem Sinne war ich endlich müde und dachte, ich sollte vielleicht ein altes Buch über PHP ausgraben und alles wie 2013 machen, als ich keine Ahnung von irgendetwas oben hatte und die Hälfte der Technologien noch nicht erschienen war? Es scheint, als würde ich zu viel vorausdenken. Ich werde das alles später lösen, jetzt werde ich mir die Serie ansehen und ins Bett gehen, und morgen werde ich definitiv mit dem Programmieren beginnen.