Klausur Theoriethemen

Drei Schichten Architektur

  • Einteilung des Prozesses in 3 Schichten
    • Frontend
    • Backend
    • Datenbank

Bild

Server-Side vs Client-Side Rendering

SSRCSR
Server führt Berechnungen durchClient führt Anfrage an Server aus
Server führt Backend Abfragen ausServer sendet JS Code
Server generiert fertigem HTML Code und sendet diesen an ClientClient nutzt JS Code um HTML Code zu generieren
Client führ durch JS Code alle Berechnungen und Abfragen aus

Spring, JPA, Contoller-Mappings etc

  • Spring

    • Container für Dependency Injection
    • auf MVC (Model-View-Controller) basierendes Web-Framework
    • Event-basiertes Messaging System
    • Ökosystem von Modulen und Frameworks
    • Spring Boot: vor-konfigurierte Spring Module für Entwicklung von Webservices
  • JPA

    • “Jakarta Persistence API”
    • Konzept was beschreibt wie Daten über die Lebensdauer des Java Programms hinaus leben können
    • Regeln für Speichern werden in Java-Code gesetzt
    • Nutzt ORM Layer für Konvertierung von Java-Objekten in relationale Objekte
    • “generiert SQL-Code, sodass Java-Objekte automatisch in eine Datenbank gespeichert und wieder herausgeholt werden können”
  • Controller Mapping

    • definiert Pfad zu dem Abfragen geschickt werden können
    • beinhaltet Pfad- und Query Parameter, sowie Return Wert usw.

REST und JSON

  • REST

    • Konzept zur Erstellung einer API, “representational state transfer” 2000 von Dr. Roy Fielding
    • Konzepte
      • Einheitliche Benutzerschnittstelle
      • Entkopplung von Client und Server
      • Statusunabhängigkeit
      • Zwischenspeicherfähigkeit
      • Mehrschichtige Systemarchitektur
      • Code auf Abruf (optional)
  • JSON

    • “JavaScript Object Notation”
    • einheitliches Datenformat für Datenaustausch zwischen Anwendungen
    • Name-Value-Pairs umschlossen von {}

Pfad-Parameter und Query-Parameter

  • Pfad Parameter

    • Teil der URL
    • genutzt um auf spezifische Ressourcen zu zeigen
    • mit {parameter} in URL deklariert
  • Query Parameter

    • Teil der URL
    • beginnen hinter ? am ender der URL
    • untereinander getrennt durch &
    • Als Map in URL genutzt domain.com/endpoint?username=name

HTTP-Methoden und HTTP-Error-Codes

HTTP Methode
GETDaten abfragen
POSTDaten anlegen
DELETEDaten löschen
PUTAlle Daten die zutreffen mit der neuen ersetzen
PATCHDie eine Information verändern
HTTP Code
200OK
201Created
301Moved Permanently
400Bad Request
401Unauthorized
403Forbidden
404Not Found
405Method not Allowed
500Internal Server Error
502Bag Gateway
504Gateway Timeout

CSS und HTML

  • HTML

    • “Hypertext Markup Language”
    • textbasierte Auszeichnungssprache zur Darstellung von strukturierten elektronischen Dokumenten
    • Werden durch Webbrowser angezeigt
    • Grundlage für WorldWideWeb
  • CSS

    • “Cascading Style Sheets”
    • Stylesheet Sprache
    • Zur Veränderung der Darstellung von HTML- oder XML-Elementen

Security, Authentication, Umgebungsvariablen

  • Umgebungsvariablen

    • stehen Programm dynamisch bei Laufzeit zur Verfügung
    • werden aus .env-Datei oder aus System gelesen
  • Authentication

    • Als Benutzer ausweisen
    • Login mit Username und Passwort
    • Einschränken der Berechtigung von Nutzern
    • Am besten in Front- und Backend
    • LDAP “Lightweight Directory Access Protocol”
  • Security

    • Keine Production Passwörter in Klartext in Repo Speichern
    • CORS richtig setzen

JavaScript und Vue.Js

  • JavaScript

    • meist interpretierte Sprache mit dynamischen Typsystem
    • in jedem Browser verfügbar
    • Node.js ist JavaScript Runtime die unabhängig von Browser sein kann
    • npm ist ein JavaScript-Paketmanager
  • Vue.Js

    • JavaScript Framework zur einfachen Erstellung von Seiten mit dynamischen Inhalten
    • ist eine “progressive Framework”, kann als Bibliothek genutzt werden nur einzelne Funktionen davon
    • Über Router werden durch Anfragen verschiedene Seiten geladen
    • Komponente werden in .vue-Dateien geschrieben
    • Komponente werden in Views zu Seiten kombiniert

Build, Deployment und Continuous Delivery

  • Continuous Delivery
    • Prinzipien
      • Versionsverwaltung nutzen, Team-übergreifendes Paket-Repository
      • Automatisiere alle Deployments und Tests über Pipelines
      • Halte gesamte Software ständig in Release-fähigen Zustand, so dass Release zur Business-Entscheidung wird.
Last modified 2023.07.10