Was ist Polling in der Informatik und welche Vor- und Nachteile hat es?
Polling ist ein Verfahren, bei dem ein Prozessor oder ein Programm in regelmäßigen Abständen aktiv prüft, ob ein bestimmtes Ereignis eingetreten ist (z. B. ob ein Gerät Daten bereitstellt).
Beispiel: Eine CPU fragt regelmäßig ein Eingabegerät ab, ob neue Daten vorliegen.
Vorteile:
Einfach zu implementieren
Keine Interrupt-Steuerung nötig
Nachteile:
Ineffizient bei seltenen Ereignissen (verbraucht CPU-Zeit)
Kann zu Verzögerungen führen
Nicht geeignet für Echtzeitanwendungen
Vergleich: Polling ist das Gegenteil von Interrupts, bei denen das Gerät den Prozessor informiert, wenn es bereit ist.
Was ist ein Interrupt in der Informatik und wie funktioniert er?
Ein Interrupt (Unterbrechung) ist ein Signal, das den Prozessor dazu veranlasst, seine aktuelle Tätigkeit zu unterbrechen, um eine wichtige Aufgabe sofort zu bearbeiten – z. B. das Eintreffen von Daten.
Funktionsweise:
Gerät sendet Interrupt-Signal an die CPU
CPU unterbricht aktuellen Prozess (speichert Zustand)
Führt Interrupt-Service-Routine (ISR) aus
Danach Rückkehr zum ursprünglichen Prozess
Effizient: CPU wird nur bei Bedarf unterbrochen
Schnelle Reaktion auf Ereignisse
Ressourcen schonender als Polling
Komplexere Programmierung
Mögliches Risiko von Race Conditions oder Prioritätsproblemen
Vergleich: Im Gegensatz zum Polling reagiert die CPU beim Interrupt ereignisgesteuert, nicht durch ständiges Abfragen.
Was ist ein Embedded System?
Ein Embedded System (eingebettetes System) ist ein spezieller Computer, der in ein größeres technisches System integriert ist und dort spezifische Aufgaben übernimmt.
Abgrenzung: Im Gegensatz zu PCs sind Embedded Systems nicht allgemein programmierbar – sie erledigen meist nur eine Aufgabe.
Was ist ein RTOS und wie unterscheidet es sich von einem klassischen Betriebssystem?
Ein RTOS (Real-Time Operating System) ist ein Betriebssystem, das speziell für echtzeitkritische Anwendungen entwickelt wurde. Es garantiert, dass bestimmte Aufgaben innerhalb definierter Zeitgrenzen ausgeführt werden.
Merkmale:
Deterministisches Verhalten (vorhersagbare Reaktionszeiten)
Prioritätsbasierte Tasksteuerung
Unterstützung für Multitasking & Interprozesskommunikation (z. B. Semaphoren, Queues)
Minimale Latenzzeiten
Ressourcenoptimiert (speziell für Embedded Systems)
Beispiele für RTOS: FreeRTOS, VxWorks, Zephyr, µC/OS, QNX
Unterschied zum normalen OS (z. B. Windows, Linux):
RTOS: Reaktionszeit ist kritisch – z. B. in Medizintechnik oder Automobilen
Klassisches OS: Optimiert für Durchsatz und Benutzerfreundlichkeit – z. B. auf PCs
=> Harte Echtzeit
Was bedeutet „noncompliant“ in der IT?
„Noncompliant“ bedeutet, dass ein
System, Prozess oder Verhalten
nicht
den geltenden Vorschriften, Gesetzen, Richtlinien oder Standards entspricht
– also regelwidrig ist.
Was bedeutet „compliant“ in der IT?
„Compliant“ bedeutet, dass
ein System, Prozess oder Verhalten
den geltenden Vorschriften, Gesetzen, Richtlinien und Standards entspricht
(z. B. DSGVO, ISO 27001, Unternehmensrichtlinien).
Was ist imperative Programmierung?
Ein Programmierparadigma, bei dem der Programmierer dem Computer Schritt für Schritt sagt, wie etwas zu tun ist. Der Fokus liegt auf Anweisungen und Zustandsveränderungen.
Welche Merkmale hat die imperative Programmierung?
Befehle ändern den Zustand des Programms
Nutzung von Variablen und Zuweisungen
Kontrollstrukturen wie Schleifen und Bedingungen
Linearer Ablauf (wie ein Kochrezept)
Was ist prozedurale Programmierung?
Ein Untertyp der imperativen Programmierung, der Programme in Prozeduren/Funktionen gliedert.
Fokus liegt auf der Strukturierung des Codes in wiederverwendbare Blöcke.
Was ist deklarative Programmierung?
Ein Paradigma, bei dem der Programmierer beschreibt, was das Programm tun soll – nicht wie. Die Ausführung übernimmt das System.
Was sind Merkmale deklarativer Programmierung?
Fokus auf Zielbeschreibung statt Ablaufsteuerung
Kein oder wenig interner Zustand
Häufig in Datenbankabfragen, funktionaler Programmierung, logischer Programmierung
Unterschied imperativ vs. deklarativ?
Imperativ: beschreibt wie etwas zu tun ist
Deklarativ: beschreibt was das Ziel ist
Was bedeutet „deterministisch“ in der Informatik?
Deterministisch bedeutet, dass ein System oder Algorithmus bei gleichen Eingaben immer dasselbe Ergebnis liefert und sein Verhalten vorhersehbar ist.
Keine Zufallsfaktoren oder unvorhersehbare Zustände
Feste Ablaufreihenfolge
Gleiche Eingabe → gleiche Ausgabe
Beispiele:
Ein deterministischer Algorithmus sortiert immer gleich
Ein deterministisches Endlicher Automat (DEA) folgt immer einem klaren Pfad
Gegenteil: Nicht-deterministisch = Verhalten kann variieren, z. B. durch Zufall oder parallele Prozesse.
✅ Merksatz: Deterministisch heißt: Immer das gleiche Ergebnis bei gleichen Bedingungen.
Was ist ein Client in der IT und welche Rolle spielt er?
Ein Client ist ein Gerät oder Programm, das Dienste oder Ressourcen von einem Server anfragt und nutzt.
Wichtige Merkmale:
Fordert Leistungen vom Server an (Request)
Führt meist Benutzerinteraktionen durch (z. B. Webbrowser, E-Mail-Client)
Kann Software (Client-Software) oder Hardware sein (PC, Smartphone)
Arbeitet in Client-Server-Architekturen
Webbrowser (z. B. Chrome) fordert Webseiten vom Webserver an
E-Mail-Programm ruft Nachrichten vom Mailserver ab
Datei-Explorer auf dem PC greift auf Netzwerkdateien zu
Abgrenzung:
Client = Anfrager
Server = Anbieter von Diensten/Ressourcen
✅ Merksatz:Clients fragen an, Server liefern aus – zusammen bilden sie verteilte Systeme.
——
Ein Server kann gleichzeitig auch als Client agieren, wenn er selbst Dienste von einem anderen Server anfragt.
Beispiel:
Ein Webserver (Server für Webseiten) fragt Daten bei einer Datenbank ab (hier ist er Client der Datenbank).
In Microservices-Architekturen ist ein Service oft Server für andere Services, aber Client beim Abrufen von Daten von anderen Services.
Fazit: Die Rollen Client und Server sind kontextabhängig und können von einem System gleichzeitig oder abwechselnd übernommen werden.
Was ist ein Webserver und welche Aufgaben hat er?
✅ Webserver – Definition: Ein Webserver ist Software (oder auch ein Gerät), das HTTP-Anfragen von Clients (z. B. Browsern) entgegennimmt und passende HTTP-Antworten zurücksendet – z. B. Webseiten, Bilder, Videos.
🔧 Hauptaufgaben:
Bereitstellen statischer Inhalte (HTML, CSS, JS, Bilder)
Ausliefern dynamischer Inhalte (z. B. via PHP, Python, Node.js)
Protokollierung von Anfragen (Logging)
Verwaltung von Verbindungen (z. B. Keep-Alive, SSL/TLS)
Weiterleitung von Anfragen (Reverse Proxy)
🌐 Beispiele für Webserver-Software:
Nginx
Apache HTTP Server
Microsoft IIS
Caddy
🚀 In der Praxis: Webserver sind ein zentraler Bestandteil jeder Website und vieler Webanwendungen. In modernen Architekturen oft kombiniert mit Load Balancing, Caching und Containerisierung.
Ist ein Webserver das gleiche wie ein Backend-Server?
❌ Nein – sie sind nicht dasselbe.
✅ Webserver:
Nimmt HTTP-Anfragen von Clients (z. B. Browsern) entgegen
Gibt statische Inhalte zurück (HTML, CSS, JS, Bilder)
Oder leitet Anfragen weiter (z. B. an einen Backend-Server)
Beispiele: Nginx, Apache
✅ Backend-Server:
Führt Geschäftslogik und Datenverarbeitung aus
Arbeitet meist im Hintergrund
Generiert dynamische Inhalte (z. B. aus Datenbanken)
Beispiele: Anwendungen in Node.js, Django (Python), Spring Boot (Java)
🔄 Zusammenspiel:
Der Webserver nimmt die Anfrage entgegen
Leitet sie ggf. an den Backend-Server weiter
Dieser verarbeitet die Anfrage → sendet Antwort zurück über den Webserver
📌 Merksatz:
Webserver = Türsteher
Backend-Server = Koch in der Küche
Was ist ein Reverse Proxy und was sind seine Vorteile?
✅ Reverse Proxy Ein Server, der Anfragen von Clients entgegennimmt und sie an einen oder mehrere Backend-Server weiterleitet.
🔄 Funktionsweise: Client → Reverse Proxy → Zielserver Antwort → Reverse Proxy → Client
🛠️ Hauptvorteile:
Lastverteilung (Load Balancing)
Sicherheit (versteckt interne Server)
SSL/TLS-Terminierung (z. B. HTTPS-Handling zentral)
Caching zur Leistungsverbesserung
Zentrale Zugriffskontrolle
Was ist ein Forward Proxy und was sind seine Vorteile?
✅ Forward Proxy (Client-seitiger Proxy) Ein Server, der stellvertretend für Clients Anfragen an das Internet stellt.
🔄 Funktionsweise: Client → Forward Proxy → Internet Antwort → Forward Proxy → Client
Anonymisierung der Client-IP
Zugriffskontrolle (z. B. Internetfilter in Firmen/Schulen)
Zwischenspeicherung (Caching)
Bypassing von Geoblocking / Firewalls
Worin unterscheiden sich Webserver und Reverse Proxy?
✅ Webserver
Software oder Gerät, das HTTP-Anfragen direkt verarbeitet.
Liefert Webseiten, Bilder, Videos oder andere Inhalte direkt an den Client.
Führt ggf. serverseitige Skripte aus (PHP, Python etc.).
Beispiel: Nginx, Apache, IIS.
✅ Reverse Proxy
Nimmt HTTP-Anfragen im Auftrag von Webservern entgegen.
Leitet Anfragen an einen oder mehrere Backend-Webserver weiter.
Verbirgt interne Server vor dem Client (Sicherheitsfunktion).
Erlaubt Lastverteilung, SSL-Terminierung, Caching, zentrale Zugriffskontrolle.
🧱 Kurz gesagt:
Webserver liefert Inhalte direkt an Nutzer.
Reverse Proxy vermittelt zwischen Nutzer und Webserver(n).
Zusammenhang & Unterschiede: Webserver, Backend-Server, Reverse Proxy
📌 "Empfangshalle" – verarbeitet oder leitet weiter
Empfängt HTTP-Anfragen von Clients (Browser, API-Clients).
Kann statische Inhalte direkt liefern (HTML, CSS, Bilder).
Kann Anfragen an Backend-Server weiterleiten, wenn Inhalte dynamisch erzeugt werden müssen.
Optional: Auch als Reverse Proxy einsetzbar (z. B. Nginx).
🛠️ Typische Software: Nginx, Apache HTTPD, Caddy, IIS
Apache HTTPD
IIS
➡️ Er kann sowohl direkt antworten (z. B. mit einer HTML-Seite) als auch nur durchreichen (Reverse Proxy oder Weiterleitung an Backend).
📌 "Küche" – verarbeitet Logik & Daten
Verarbeitet Geschäftslogik, z. B. Bestellungen, Benutzeranfragen, etc.
Erzeugt dynamische Inhalte – oft mit Hilfe von Datenbanken oder APIs.
Wird meist nicht direkt vom Client angesprochen, sondern nur über den Webserver oder Reverse Proxy.
🛠️ Typische Technologien: Node.js, Django, Spring Boot, Rails, Flask, etc.
Node.js
Django
Spring Boot
Rails
Flask
➡️ Antwortet auf Anfragen vom Webserver mit JSON, HTML, etc.
📌 "Vermittler" – intelligente Weiterleitung & Schutz
Steht vor Webservern oder Backend-Servern.
Leitet Anfragen an den passenden Server weiter (z. B. Webserver 1, Webserver 2…).
Bietet Lastverteilung, SSL-Termination, Sicherheit, zentralen Zugangspunkt.
🛠️ Typische Software: Nginx, HAProxy, Traefik, Envoy
HAProxy
Traefik
Envoy
➡️ Er leitet Anfragen weiter, antwortet aber meist nicht selbst.
Client (Browser)
↓
[Reverse Proxy] ← optional
[Webserver]
[Backend-Server]
Browser ruft https://example.com/user/123 auf.
https://example.com/user/123
Reverse Proxy empfängt die Anfrage, entscheidet: → Webserver 1 zuständig.
Webserver (z. B. Nginx): Erkennt, dass /user/123 dynamisch ist → leitet an Backend-Server weiter.
/user/123
Backend-Server (z. B. Django-App): Holt User-Daten aus Datenbank, generiert HTML oder JSON.
Antwort geht zurück über Webserver → ggf. über Reverse Proxy → an den Client.
Webserver = Türsteher → entscheidet, ob er reinlässt (statisch) oder an die Küche weiterleitet (Backend).
Backend-Server = Koch → bereitet alles frisch zu (dynamische Inhalte).
Reverse Proxy = Empfang & Dispatcher → entscheidet, wer überhaupt angesprochen wird, und schützt das Haus.
Was ist der Unterschied zwischen Controller und Service in einer typischen Anwendung (z. B. Spring)?
Controller (Präsentationsschicht):
Nimmt HTTP-Anfragen entgegen
Parst Eingaben (z. B. @RequestBody, @PathVariable)
@RequestBody
@PathVariable
Ruft die entsprechende Service-Methode auf
Gibt das Ergebnis als HTTP-Antwort zurück (z. B. JSON)
🔹 Service (Geschäftslogik):
Enthält die Business-Logik
Führt Berechnungen, Validierungen, Datenverarbeitung etc. aus
Kann mehrere Repositorys oder andere Services aufrufen
Ist unabhängig von HTTP – kann auch in Tests oder anderen Anwendungen verwendet werden
🧠 Merksatz:
Controller = „Was tun wir bei einem HTTP-Request?“ Service = „Wie genau wird das gemacht?“
📦 Annotationen in Spring:
@RestController oder @Controller → Controller
@RestController
@Controller
@Service → Service-Komponente (wird automatisch als Bean verwaltet)
@Service
Typen von Echtzeitsystemen
Harte Echtzeit: Verspätung = Systemversagen (z. B. Airbag-Steuerung)
Weiche Echtzeit: Verspätung = Qualitätseinbußen (z. B. Video-Streaming)
Ziele von IT-Compliance
Datenschutz und Datensicherheit gewährleisten
Gesetzliche Vorgaben einhalten
Reputationsschutz und Kundenvertrauen
Rechtliche und finanzielle Risiken vermeiden
Nenne ein Beispiel für „compliant“ in der IT.
Ein Unternehmen verschlüsselt alle Kundendaten nach DSGVO-Anforderungen und dokumentiert den Zugriff.
Nenne ein Beispiel für „noncompliant“ in der IT.
Mitarbeiter speichern sensible Kundendaten unverschlüsselt auf privaten USB-Sticks.
Welche Folgen kann „noncompliance“ haben?
Hohe Geldstrafen,
rechtliche Konsequenzen,
Imageschäden,
Verlust von Kundenvertrauen,
Sicherheitsrisiken.
Warum ist Compliance in der IT besonders wichtig?
Weil Unternehmen sensible Daten verarbeiten, die durch Gesetze geschützt sind, und weil IT-Systeme Grundlage für Sicherheit und Geschäftsbetrieb sind.
Was ist funktionale Programmierung?
Ein Programmierparadigma, das auf mathematischen Funktionen basiert. Programme werden als Auswertung von Funktionen ohne Seiteneffekte formuliert.
Welche Merkmale kennzeichnen funktionale Programmierung?
Funktionen als „First-Class Citizens“
Keine oder wenige Seiteneffekte
Starke Nutzung von Rekursion statt Schleifen
Immutabilität (unveränderliche Daten)
Nenne Beispiele für funktionale Programmiersprachen.
Haskell, Lisp, Erlang, F#.
Was ist logische Programmierung?
Ein deklaratives Programmierparadigma, das Probleme durch Fakten und Regeln beschreibt. Programme bestehen aus logischen Aussagen, und die Lösung wird durch Schlussfolgerung (Inferenzen) berechnet.
Nenne ein Beispiel für eine logische Programmiersprache.
Prolog
Wie hängen funktionale und logische Programmierung mit deklarativer Programmierung zusammen?
Sowohl funktionale als auch logische Programmierung sind Unterformen der deklarativen Programmierung.
Sie beschreiben das Was statt das Wie.
Was ist ein verteiltes System?
Ein System aus mehreren unabhängigen Computern, die über ein Netzwerk miteinander kommunizieren und nach außen wie ein einheitliches System wirken.
Nenne typische Beispiele für verteilte Systeme.
Cloud-Services (z. B. AWS, Azure), Web-Anwendungen, Peer-to-Peer-Netzwerke, Blockchain, Microservices-Architekturen.
Was sind die Hauptziele verteilter Systeme?
Ressourcen teilen
Skalierbarkeit
Ausfallsicherheit
Transparenz für den Nutzer
Welche Arten von Transparenz gibt es in verteilten Systemen?
Zugriffstransparenz (gleicher Zugriff auf lokale und entfernte Ressourcen)
Standorttransparenz (Ort von Ressourcen spielt keine Rolle)
Replikationstransparenz (Nutzer merkt nicht, dass es Kopien gibt)
Fehlertoleranztransparenz
Was bedeutet Skalierbarkeit in verteilten Systemen?
Die Fähigkeit, die Leistung durch Hinzufügen neuer Ressourcen (z. B. Server, Knoten) zu steigern, ohne das System grundlegend zu verändern.
Was ist das CAP-Theorem?
Ein Theorem, das besagt, dass ein verteiltes System nie gleichzeitig Konsistenz (Consistency), Verfügbarkeit (Availability) und Partitionstoleranz vollständig garantieren kann.
Welche Herausforderungen treten bei verteilten Systemen häufig auf?
Netzwerkausfälle
Synchronisation und Konsistenz
Fehlertoleranz
Sicherheit
Lastverteilung
Was bedeutet Fehlertoleranz in verteilten Systemen?
Die Fähigkeit, trotz Ausfällen einzelner Komponenten korrekt weiterzuarbeiten.
Nenne Beispiele für Kommunikationsarten in verteilten Systemen.
Client-Server (z. B. Web-Requests)
Peer-to-Peer (z. B. BitTorrent)
Message Passing (z. B. RabbitMQ, Kafka)
Remote Procedure Calls (RPC)
Was unterscheidet zentrale von dezentralen Systemen?
Zentral: Ein Knoten übernimmt die Hauptaufgaben (z. B. Server-Client-Modell).
Dezentral: Aufgaben und Daten sind auf viele Knoten verteilt (z. B. Blockchain, P2P).
Was macht der Befehl mklink in Windows?
mklink
Mit mklink können symbolische Links oder Hardlinks erstellt werden. Diese verweisen auf Dateien oder Verzeichnisse, ähnlich wie Verknüpfungen, aber auf Dateisystem-Ebene.
Symbolischer Link: Verweis wie eine „echte“ Verknüpfung (kann auch auf andere Laufwerke zeigen).
Hardlink: Verweist direkt auf die gleiche Datei im Dateisystem (nur für Dateien, nicht für Verzeichnisse, und nur auf demselben Laufwerk).
Kann ein Backend-Server HTTP-Anfragen direkt entgegennehmen – und braucht man dann noch einen Webserver?
✅ Ein Backend-Server kann technisch HTTP-Anfragen direkt verarbeiten (z. B. Node.js, Django, Spring Boot).
❌ Trotzdem ist ein Webserver oft sinnvoll, weil er:
Statische Inhalte (HTML, CSS, JS, Bilder) schneller liefert
TLS/HTTPS-Termination & Sicherheitsfunktionen bereitstellt
Lastverteilung, Reverse Proxy und Caching übernimmt
Mehr Stabilität & Performance bei vielen Anfragen bietet
💡 Merksatz: Backend-Server = Koch (verarbeitet Anfragen) Webserver = Türsteher + Butler (nimmt Anfragen entgegen, leitet weiter, liefert schnelle Snacks)
Ist ein Webserver im Browser vorprogrammiert oder wie wird er bereitgestellt?
❌ Ein Webserver ist nicht im Browser enthalten.
Browser kennt nur das HTTP-Protokoll und weiß, wie Anfragen gesendet werden.
Webserver läuft auf einem Server (z. B. Nginx, Apache oder eingebauter HTTP-Server von Node.js/Django).
Webserver wird vom Anwendungsbetreiber installiert und kann Inhalte liefern oder Anfragen an das Backend weiterleiten.
Der Browser (Client) stellt nur die Anfrage, das Backend kann optional HTTP selbst bedienen.
Forward Proxy vs. Reverse Proxy
Forward Proxy: Wird vom Client genutzt, um auf das Internet zuzugreifen
Reverse Proxy: Wird vom Server genutzt, um Anfragen zu verteilen
🧠 Merksatz: 🔁 Forward Proxy schützt den Client, 🔄 Reverse Proxy schützt den Server
Ist Java prozedural?
Java ist primär eine objektorientierte Sprache, nicht prozedural – aber es unterstützt prozedurale Programmierung, besonders im kleinen Maßstab.
Objektorientiert => eher imperativ
Welche Sprachen gehören zu imperativer Programmierung – und wo werden sie jeweils eingesetzt?
Sprachen:
C, Java, Python, JavaScript
Einsatzgebiete:
Allgemeine Softwareentwicklung, Systemprogrammierung
Welche Sprachen gehören zu prozeduraler Programmierung – und wo werden sie jeweils eingesetzt?
C, Pascal, Fortran
Eingebettete Systeme, wissenschaftliches Rechnen, Legacy-Systeme
Welche Sprachen gehören zu deklarativen Programmierung – und wo werden sie jeweils eingesetzt?
SQL, HTML, Prolog, Haskell
Datenbankabfragen, Webentwicklung, KI, Funktionale Programmierung
Welche Merkmale zeichnen ein Embedded System aus?
Speziell für eine bestimmte Funktion entwickelt
Meist ressourcenbeschränkt (CPU, RAM, Energie)
Echtzeitverhalten oft erforderlich
Häufig kein klassisches Betriebssystem oder nur ein kleines (RTOS)
Hohe Zuverlässigkeit und Stabilität nötig
Eingebettet in Geräte wie Waschmaschinen, Autos, Medizintechnik, IoT-Geräte
Nenne Beispiele für den Einsatz von Embedded Systems
ABS-Steuerung im Auto
Herzschrittmacher
Smartwatches
Industrieroboter
API-Kommunikationsstile
REST → Ressourcen-orientiert, Kommunikation über HTTP (GET, POST, PUT, DELETE)
GraphQL → Abfrage-orientiert, Clients holen genau die Daten, die sie benötigen
gRPC → Prozedur-orientiert, Kommunikation über Remote Procedure Calls mit Protobuf
Ziel von ESM?
Effizientes, sicheres und einheitliches Management von IT-Systemen, um Verfügbarkeit, Performance und Sicherheit zu gewährleisten.
Wichtige Aufgaben von ESM?
Überwachung von Systemen & Netzwerken
Incident- und Problemmanagement
Change- und Configuration-Management
Automatisierung von IT-Prozessen
Reporting & Compliance
Wichtige Komponenten von ESM?
Monitoring-Tools
Ticket- & Helpdesk-Systeme
IT-Asset-Management
Service-Level-Management
Was bedeutet es, „ESM-kompatibel“ zu sein?
Ein System/Tool ist so gebaut, dass es sich nahtlos in ein ESM-Framework integrieren lässt, d. h.:
Es unterstützt Standard-Schnittstellen (z. B. REST, SOAP, SNMP).
Es kann Daten für Monitoring, Tickets oder Reporting bereitstellen.
Es erfüllt Governance-, Sicherheits- und Compliance-Anforderungen.
Es lässt sich in zentrale Dashboards und Automatisierungen einbinden
Was ist IntelliSense?
Eine Code-Vervollständigungs- und Hilfefunktion in Entwicklungsumgebungen, die während des Tippens Vorschläge, Parameterinfos und Fehlerhinweise anzeigt.
Was ist eine Blockchain?
Eine Blockchain ist eine dezentrale, digitale Datenbank, die Informationen in chronologisch verknüpften Blöcken speichert.
Daten in Blöcken gespeichert werden, die wie eine Kette (Chain) miteinander verbunden sind.
Eine Art digitales Notizbuch, das jeder einsehen kann. Darin stehen alle wichtigen Infos hintereinander, und niemand kann alte Seiten heimlich ändern.
Wie funktioniert die Verkettung der Blöcke?
Jeder Block enthält einen Hash (eine Art Fingerabdruck) des vorherigen Blocks. Dadurch können Blöcke nicht unbemerkt verändert werden.
Was macht Blockchain sicher?
Kryptografische Hashfunktionen
Dezentralität (Daten liegen nicht an einem Ort)
Konsensmechanismen (z. B. Proof of Work oder Proof of Stake)
Was ist ein Hash?
Eine mathematische Funktion, die Daten in einen eindeutigen Code (Hashwert) umwandelt. Schon kleinste Änderungen führen zu einem völlig neuen Hash.
Was ist ein Konsensmechanismus?
Ein Verfahren, mit dem sich alle Teilnehmer im Netzwerk auf den aktuellen Stand der Blockchain einigen.
Beispiele für Konsensmechanismen?
Proof of Work (PoW): Rechenleistung entscheidet.
Proof of Stake (PoS): Anteil (Stake) am System entscheidet.
Welche Vorteile hat Blockchain?
Fälschungssicherheit
Transparenz
Keine zentrale Kontrollinstanz nötig
Wo wird Blockchain eingesetzt?
Kryptowährungen (z. B. Bitcoin, Ethereum)
Supply Chain Management
Digitale Identitäten
Smart Contracts
Was ist ein Webhook?
Ein Webhook ist ein Mechanismus, bei dem eine Anwendung automatisch Daten an eine andere Anwendung sendet, sobald ein Ereignis eintritt – per HTTP-Request (meist POST).
Was sind ECMAScript Modules (ESM)?
ESM ist der offizielle JavaScript-Standard für Module, der mit import und export arbeitet, um Code wiederverwendbar und strukturiert zu machen.
import
export
Wodurch unterscheidet sich ESM von CommonJS (CJS)?
ESM: import / export, statisch analysierbar, asynchrones Laden möglich.
CJS: require() / module.exports, dynamisch, synchron geladen.
require()
module.exports
Welche Vorteile hat ESM gegenüber CommonJS?
Tree-Shaking möglich (nur benötigte Teile werden gebündelt).
Bessere Performance durch statische Analyse.
Offizieller Standard → unterstützt in Browsern ohne Transpiler.
Warum nutzen moderne Frameworks ESM?
Native Unterstützung in Browsern
Schnellere Buildzeiten (kein extra Bundling nötig in manchen Fällen)
Saubere Abhängigkeitserkennung
Was ist „Tree-Shaking“ in Verbindung mit ESM?
Automatisches Entfernen ungenutzter Exports beim Bundling, um kleinere Builds zu erzeugen.
Welche Einschränkungen gibt es bei ESM?
äuft standardmäßig nur in modernen Browsern / Node.js (ab v12+).
import ist asynchron, was manche Patterns (wie dynamische bedingte Imports) einschränkt.
Unterschiedliche Auflösungslogik von .js / .mjs / package.json-Feldern (type: module).
.js
.mjs
package.json
type: module
Was ist ein Remote Procedure Call (RPC)?
Ein RPC ist ein Protokoll/Mechanismus, mit dem ein Programm Funktionen/Prozeduren auf einem entfernten Rechner so aufrufen kann, als wären sie lokal.
Was ist der Unterschied zwischen RPC und REST?
RPC (Remote Procedure Call):
Fokus: Aktionen / Funktionen
Man ruft entfernte Methoden so auf, als wären sie lokal (z. B. createUser(), deleteInvoice()).
createUser()
deleteInvoice()
Schnittstelle beschreibt, welche Aktionen ausgeführt werden können.
Typisch für gRPC, JSON-RPC, XML-RPC.
REST (Representational State Transfer):
Fokus: Ressourcen / Objekte
Jede Ressource hat eine eindeutige URL (z. B. /users/123).
/users/123
HTTP-Methoden (GET, POST, PUT, DELETE) definieren, was mit der Ressource passiert.
Typisch für Web-APIs (z. B. /users mit POST = neuen User anlegen).
/users
👉 Kurz gesagt:
RPC = "Was soll passieren?" (Aktion)
REST = "Mit welchem Objekt arbeiten wir?" (Ressource)
Zuletzt geändertvor 19 Tagen