Hallo! 👋

Der schwierigste Teil eines Unternehmens ist oft der Anfang. Und es sieht so aus, als hättest du es geschafft. Herzlichen Glückwunsch!

Von hier aus haben wir einen langen Weg vor uns, um das Programmieren im Allgemeinen und No-Code (die Fähigkeit, Programme zu erstellen, ohne komplexe Programmiersprachen zu lernen) im Besonderen zu lernen. Aber zunächst einmal lohnt es sich, die grundlegenden Begriffe zu verstehen.

Wenn Sie bereits ein IT-Profi sind, können Sie dieses Einführungsmodul überspringen. Hier werden wir uns mit den grundlegendsten Konzepten beschäftigen. Anwendung, Frontend, Datenbank, HTTP-Protokoll, usw.

Sind Sie bereit? Los geht's!


Allgemeine Theorie

Grundlagen der Programmierung

Computer, auch wenn sie sehr intelligent erscheinen, sind von Natur aus nicht in der Lage, irgendetwas alleine zu tun. Sie brauchen klare Anweisungen. Es gibt sogar einen alten Witz: "Der Computer tut nicht, was Sie wollen, sondern was Sie ihm befohlen haben."

Es stellt sich heraus, dass"Programmieren" im weitesten Sinne die Erstellung von klaren und verständlichen Anweisungen (Befehlen) für einen Computer ist. Und die Anweisungen selbst in einer für einen Computer verständlichen Sprache sind ein "Programm".

Und hier lohnt es sich, die Formulierung "eine für einen Computer verständliche Sprache" (computerverständliche Sprache) hervorzuheben. Wir sprechen nämlich eine Sprache, und der Computer spricht eine andere. Er versteht die menschliche Sprache nicht (zumindest solange nicht, bis er ein Programm erhält, das ihm beibringt, Sprache zu verstehen). Genau wie wir verstehen wir ohne spezielle Ausbildung keine Maschinensprache (oder Maschinencode), die als eine Folge von 1 und 0 dargestellt werden kann.

10110100 00111010

Völlig unverständlich, oder?

Um die Kommunikation zu gewährleisten, wurden Programmiersprachen geschaffen (und es werden ständig neue geschaffen).

Es gibt Sprachen, die als"Low-Level" bezeichnet werden. Sie sind dem Maschinencode sehr ähnlich, aber die Befehle sind in einer Form geschrieben, die für einen Menschen verständlicher ist. Der bekannteste Vertreter solcher Sprachen ist "Assembler".

Die nächste Stufe sind "High-Level"-Programmiersprachen. Die meisten modernen Programmiersprachen gehören zu ihnen: Java, C++, Python, Go und viele andere. Sie sind auf Geschwindigkeit und Benutzerfreundlichkeit für den Programmierer ausgelegt. Gleichzeitig kann ein einziger Befehl in einer solchen Sprache in einen sehr komplexen und langen Satz von Befehlen im Maschinencode übersetzt werden.

Und hier ist ein neuer Begriff - "Translator". Dies ist genau das Werkzeug, das einen in einer Hochsprache geschriebenen Text in einen Satz von Maschinenbefehlen übersetzt (oder kompiliert). Dabei sollten wir uns keine Sorgen machen (oder viel weniger) über die Tatsache, dass alle Computer unterschiedlich sind, dass sie mit unterschiedlichen Prozessoren arbeiten und dass diese Prozessoren unterschiedliche Befehlssätze verwenden. Der Übersetzer wird diese Arbeit für uns erledigen.

Die AppMaster-Plattform gehört zu den No-Code-Plattformen. Man kann sie getrost als die nächste Entwicklungsstufe bezeichnen. Mit ihr ist es möglich geworden, Anwendungen auf Unternehmensebene zu erstellen, ohne überhaupt eine Programmiersprache zu lernen und ohne komplexen Code zu schreiben. Das ist es, was wir in diesem Kurs tun werden. Mit klaren visuellen Blöcken beschreiben wir einfach, was getan werden muss. Und schon sind die AppMaster.io-Technologien eingeschaltet und schreiben selbst mit großer Geschwindigkeit Code.

Dieser Code ist übrigens in der Sprache Go (auch bekannt als GoLang) geschrieben. Und das ist zum einen sehr wichtig. Schließlich sind wir sicher, dass wir eine moderne Sprache verwenden, die speziell von Google entwickelt wurde, um hocheffektive Programme zu erstellen. Auf der anderen Seite ist das aber auch nicht so wichtig. Es ist völlig egal, welche Sprache dort verwendet wird (sie kann sogar durch eine andere ersetzt werden, wenn eine effektivere Lösung gefunden wird), man muss sich nur darauf konzentrieren, eine Anwendung zu erstellen, und nicht auf die Feinheiten ihrer technischen Umsetzung.

Bevor wir weitermachen, wollen wir etwas klarstellen. Im obigen Text werden verschiedene Begriffe verwendet - "Programme", "Anwendungen". Sie sind Synonyme, die dasselbe bedeuten.

"Software" kann hier auch hinzugefügt werden, normalerweise bezieht sich dieser Begriff auf eine Reihe von Programmen (Anwendungen). Zum Beispiel die Software, die auf Ihrem Computer installiert ist. Das Wort "Software" kann auch als Synonym betrachtet werden.

Arten von Anwendungen

Welche Arten von Anwendungen gibt es? Versuchen wir, den Begriff ein wenig zu straffen und zu strukturieren.

  1. Konsole
    Man kann sie auch als textbasierte Anwendungen oder Anwendungen mit Befehlszeilenschnittstelle bezeichnen.
    Wie der Name schon sagt, haben solche Anwendungen keine vertraute grafische Oberfläche (obwohl sie mit pseudografischen Symbolen implementiert werden kann und sogar interaktive Elemente hinzugefügt werden können), und die Steuerung erfolgt durch Eingabe von Textbefehlen in die Konsole.
    Es mag den Anschein haben, dass diese Art von Anwendungen längst überholt ist. Tatsächlich aber haben sie aufgrund der geringeren Anforderungen an die Hardware-Ressourcen bis heute nicht an Bedeutung verloren. Gleichzeitig hat die Verwendung der Kommandozeile in vielen Branchen sogar gewisse Vorteile in Bezug auf Einfachheit und Benutzerfreundlichkeit.

  2. Desktop-Anwendungen
    Anwendungen, die auf Computern installiert und ausgeführt werden.
    Zum Beispiel die Office-Anwendungen von Microsoft: Word, Excel, PowerPoint, usw.
    Oder ein Browser, mit dem Sie Websites im Internet öffnen und vielleicht sogar diesen Text lesen können.
    Übrigens ist auch das Terminal für die Arbeit mit der Kommandozeile oft eine Desktop-Anwendung.

  3. Mobil
    Höchstwahrscheinlich haben Sie ein Smartphone. Dabei spielt es keine Rolle, welches Betriebssystem es verwendet: Android, iOS oder ein anderes, selteneres. In jedem Fall sind die Anwendungen, die Sie auf Ihrem Smartphone verwenden, mobile Anwendungen.
    Beispiele dafür sind Browser, Instant Messenger, Spiele oder Anwendungen für soziale Netzwerke.

  4. Eingebaut (eingebettet)
    Diese Anwendungen (auch wenn es in diesem Fall korrekt ist, den Begriff Software zu verwenden) sind schwieriger zu erkennen, aber sie werden zur Steuerung verschiedener Geräte und Anlagen verwendet.
    Dank der integrierten Software verarbeitet der Drucker Druckaufträge, der Router verteilt das Internet und der Betrieb einer Vielzahl von Geräten ist gewährleistet.

  5. Webanwendungen
    Anwendungen, die mit dem Browser interagieren und über das Internet funktionieren.
    Sie sind derzeit die häufigste Art von Anwendungen, und wir werden uns in diesem Kurs eingehend mit ihrer Erstellung befassen.

Es gibt auch viele Arten von Webanwendungen. Lassen Sie uns die wichtigsten nennen:

  • Landingpages. Kleine Informationsseiten, auf denen Sie ein Formular ausfüllen oder eine Anfrage stellen können.
  • Informationsportale. Dazu gehören Nachrichtenseiten (z. B. Yahoo!) oder Sportseiten (Fifa).
  • Internetshops. Von kleinen lokalen Geschäften bis hin zu großen internationalen Marktplätzen.
  • Soziale Netzwerke. Twitter, Facebook und viele andere.
  • Spiele. Von einfachen textbasierten Spielen bis hin zu den fortschrittlichsten 3d-Spielen.
  • LMS (Lernmanagement-System).
  • CMS (Inhaltsverwaltungssystem). Dank ihnen können Sie den Inhalt der Website leicht verwalten und neue Artikel hinzufügen.
  • CRM-Systeme (Customer Relationship Management). Systeme zur Automatisierung von Kundenbeziehungen.
  • Online-Dienste. Ihre Vielfalt ist eine eigene Klassifizierung wert. Dazu gehören Wettervorhersagedienste, Suchdienste, Bankdienste und vieles mehr.

Nun, wir haben die Anwendungen herausgefunden, wir haben die grundlegende Klassifizierung vorgenommen, wir haben die Arten von Webanwendungen sortiert. Aber wie funktioniert das eigentlich?

Und hier kommen wir zu sehr wichtigen Begriffen.

Frontend und Backend

Die einfachste Veranschaulichung ist das Theater. Wir kommen zur Aufführung, wir sehen die Künstler auf der Bühne, wir klatschen ihnen zu, wir bekommen Verbeugungen als Gegenleistung. Und gleichzeitig wissen wir ganz genau, dass das Theater nicht auf den Zuschauerraum beschränkt ist und nicht mit der Bühne endet. Irgendwo werden Kostüme genäht, in der Garderobe laufen die Vorbereitungen, irgendwo gibt der Regisseur Anweisungen. All das sehen wir nicht, aber wir wissen genau, dass es da ist, und ohne all das würde das Theater nicht funktionieren können.

In ähnlicher Weise ist alles in Webanwendungen organisiert.

Es gibt eine Ebene, die wir sehen. Die Seite, die angezeigt wird, wenn wir eine Website öffnen. Diese Seite hat wahrscheinlich eine Art von Animation und sogar Schaltflächen, die man anklicken kann.

Diese sichtbare Ebene wird "Frontend" genannt. Sie umfasst alles, was sich auf der Seite des Benutzers befindet. Alles, was auf dem Bildschirm Ihres Geräts angezeigt wird. Etwas, das Sie sehen und sogar fühlen können.

Aber gleichzeitig können wir sicher sein, dass nicht alles auf das Frontend beschränkt ist. Denn auch das Frontend selbst befindet sich neuerdings weder auf dem Bildschirm noch im Speicher des Computers. Es erscheint, wenn wir uns entscheiden, eine andere Website zu öffnen und ihre Adresse in den Browser eingeben.

Wir stellen eine Anfrage zur Anzeige der Website und erhalten eine Antwort. Welche Blöcke sie hat, wo sie sich befinden, wie sie aussehen, welche Schriftarten verwendet werden. Wir drücken eine Taste und der Befehl geht an den Server, der einige Informationen berechnet, eine Antwort gibt und eine Lösung für das Problem bereitstellt. Dieses Anfrage- und Antwortsystem, Request-Response, ist der Eckpfeiler der Funktionsweise aller Webanwendungen.

Die Anfrage über das Internet geht an den Server, an die für unsere Augen unsichtbare Seite, das "Backend". Gleichzeitig enthält die Anfrage selbst auch bestimmte Informationen, sie hat einige Parameter. Anhand dieser Informationen entscheidet das Backend, welche Antwort es sendet (oder es kann höflich nicken, den Empfang der Anfrage bestätigen, aber keine weiteren Daten übertragen).

Das Datenübertragungsprotokoll selbst heißt HTTP - HyperText Transfer Protocol. Sie können diese 4 Buchstaben am Anfang der Adressleiste des Browsers sehen. Dies zeigt an, dass die Interaktion über das HTTP-Protokoll abgewickelt wird. Man kann sagen, dass sich die Parteien darauf geeinigt haben, in welcher Sprache sie kommunizieren werden.

Und lassen Sie sich von dem Namen nicht täuschen. In den Anfängen des Internets wurde das Protokoll nämlich ausschließlich für Hypertext konzipiert. Das heißt, Text mit Links, mit der Möglichkeit, zu einer anderen Seite zu gehen, einen anderen Text zu erhalten. Jetzt können Sie damit beliebige Daten übertragen: lustige Bilder, Lieder, Tanzvideos von Tik-Tok.

In weiteren Modulen des Kurses werden wir uns ausführlich mit der Struktur von Anfragen und Antworten beschäftigen. Wir werden Anfragen mit Antworten erstellen, sowie die Logik für ihre Verarbeitung. In diesem Stadium reicht es aus, das Prinzip der Datenübertragung vom Frontend zum Backend und umgekehrt zu verstehen.

Übrigens erscheinen die Daten selbst nicht auf magische Weise. Das Auftreten von Anfragen auf der Frontend-Seite ist leicht zu verstehen - Sie geben sie selbst ein. Aber um die Informationen an Sie zu übermitteln, müssen Sie irgendwie ihre Speicherung und Verarbeitung organisieren.

Zu diesem Zweck arbeiten "Datenbanken" (DB). Sie speichern Daten in einer strukturierten Form. Und es gibt Systeme, die diese Daten verwalten - DBMS (Database Management System). Sie ermöglichen es, neue Daten in die Datenbank zu schreiben, Daten von dort zu holen, sie zu ändern, sie zu löschen (all dies zusammen wird mit der Abkürzung CRUD - Create, Read, Update, Delete - bezeichnet). Auch dies werden wir in zukünftigen Modulen im Detail untersuchen. Lassen Sie uns herausfinden, was Datenbanken im Allgemeinen sind, wie ihre Arbeit organisiert ist und wie einfach es ist, sie in AppMaster zu verwalten.

Wie wäre es, wenn wir das in der Praxis ausprobieren? Es ist an der Zeit, die erste...


Hausaufgabe

Sie müssen das Terminal aktivieren, um mit der Kommandozeile arbeiten zu können. Unter Windows heißt die gewünschte Anwendung CMD, unter MacOS - Terminal.

Verwenden Sie die Konsolenanwendung curl (falls sie nicht auf Ihrem Computer installiert ist - beheben Sie das). Sie wurde speziell dafür entwickelt, eine Anfrage an einen bestimmten Dienst zu senden und von dort eine Antwort zu erhalten.

Senden Sie zum Beispiel eine HTTP-Anfrage an den BoredAPI-Dienst. Dies ist ein Dienst, der für alle Gelegenheiten eine Aktivität abrufen kann.

Geben Sie dazu den folgenden Befehl in das Terminal ein:

curl "http://www.boredapi.com/api/activity?type=diy"

Bitte beachten Sie, dass die Adresse bedingt in zwei Teile geteilt werden kann - vor und nach dem Fragezeichen.

Der erste Teil ist die eigentliche Adresse der Anfrage. In diesem Beispiel - "http://www.boredapi.com/api/activity".

Der zweite Teil sind die Anforderungsparameter. In diesem Beispiel - "type=diy". Das heißt, der Abfrageparameter ist "type" mit dem Wert "diy". Damit haben wir angegeben, dass wir eine Aktivität suchen, die Sie selbst durchführen können (diy - Do It Yourself).

Sehen Sie, welche Antwort Sie erhalten haben. Finden Sie darin die Informationen, die Sie brauchen. In weiteren Modulen werden wir im Detail analysieren, in welcher Form die Antwort kommt, woraus sie besteht. Zum jetzigen Zeitpunkt reicht es aus, wenn Sie verstehen, dass die Antwort auf die Anfrage aus dem Backend genau so aussieht, bevor sie logisch verarbeitet und auf dem Frontend schön dargestellt wird.

Schauen Sie in die Dokumentation des Dienstes (http://www.boredapi.com/documentation) und stellen Sie selbst eine komplexere Anfrage mit verschiedenen Parametern. Finden Sie zum Beispiel heraus, welche Aktivität für ein Unternehmen mit mehr als 5, aber weniger als 10 Mitarbeitern geeignet ist.

Versuchen Sie zur Vertiefung des Materials, einen komplexeren Dienst zu bewältigen. Zum Beispiel - https://www.alphavantage.co/

Lesen Sie die Dokumentation, holen Sie den Wechselkurs oder die Börsenkurse aus der Datenbank.

Vor der Nutzung müssen Sie sich registrieren und einen persönlichen Zugangsschlüssel erhalten.