Altklausuren Flashcards
Erläutern Sie 2 wesentliche Funktionalitäten von Bootstrap?
Flexibles Grid-System fuer verschiedene Bildschirmgroesen
-> Mobile first
Vorgefertigte Komponenten fuer schnelle Frontend Entwicklung
Was sind Hooks in React ab Version 16.8.? !!!
Hooks ermoeglichen es State- und Lifecycle Funktionen in funktionale Komponenten zu packen. Davor konnte dies nur mithilfe von Klassenkomponenten verwendet werden
Was ist ein React Fragment im Zusammenhang mit Return? !!!
React Fragmente werden verwenden um Elemente zu Gruppieren und zusaetzliche DOM Knoten zu vermeiden. (zusaetzliche div oder span werden also nicht gebraucht)
Dies wird haeufig mit return Anweisungen verknuepft um Elemente in eine einzige return anweisung zu Gruppieren.
return <>
<p>Element 1</p>
<p>Element 2</p>
</>
Warum einen Dev Server Nutzen?
Durch einen Dev Server können laufende Anwendungen geändert werden ohne diese neu starten zu müssen. Der Vorteil liegt also in der schnelleren Entwicklung.
Warum in JSON Object mitgeben statt eines Arrays?
Da JSON Objekte eindeutige Schlüssel-Wert-Paare enthalten
Auf ASI verlassen oder nicht?
Es ist besser selber explizit Semikolons zu verwenden fuer strukturierteren und lesbareren Code und um Fehler und Missverständnisse zu vermeiden.
Validierung bei React !!!
Mit hilfe von PropTypes koennen Typen und Anwesenheiten von Props(properties), welche an Komponenten uebergeben werden, ueberprueft werden.
z.B PropTypes.string checkt auf String
Wie haben Sie Ihre “Aufwandsschätzung” mit AzureBoards oder Project Professional im eigenen Projekt (Semesterprojekt) realisiert?
Zunächst wurde eine User Story als Referenz-Story ausgewählt. Anschließend haben wir andere Aufgaben in Relation zur Referenz-Story gesetzt und den jeweiligen Aufwand geschätzt.
Skizzieren und erläutern Sie ein Zustandsdiagramm in Bezug auf das Semesterprojekt.
Was ist optional Chaining bei JavaScript? Erklären und Beispiel angeben. !!!
Verwendet den Operatior ‘?.’ und funktioniert wie beim normalen chaining mit ‘.’ mit der erweiterung, dass wenn eine Eigenschaft null oder undefined ist, die gesamte Kette nicht als Error z.B.
‘TypeError: Cannot read property’
sondern als undefined zurueckgegeben wird ohne eine Fehler zu werfen.
const adventurer = {
name: ‘Alice’,
cat: {
name: ‘Dinah’,
},
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// Expected output: undefined
Was ist Nullish Coalescing? Erklären und Beispiel geben. !!!
Der Nullish Coalescing-Operator weist einen Standardwerte zu, falls der tatsaechliche Wert null oder undefined ist.
const foo = null ?? ‘default string’;
console.log(foo);
// Expected output: “default string”
Warum gibt es bei JavaScript im Gegensatz zu Java und Kotlin nur eine catch-Klausel?
In JavaScript gibt es keine verschiedenen Error-Typen. Somit kann es immer nur eine catch-Klausel geben, in der dann alle Errors gefangen werden.
Erklären Sie den Unterschied von “null” und “undefined” in JavaScript.
Undefined bedeutet, dass einer Variable noch kein Wert zugewiesen wurde. Bei null wurde einer Variable der Wert null zugewiesen.
Erläutern Sie den Unterschied zwischen const {foo} = bar und const foo ={bar}.
const {foo} = bar
Destructuring, dadurch kann man einzelne Elementen/Properties direkt aus einem Array/Objekt extrahieren und einer Variable zuweisen.
Const foo = {bar}
Beim rechten Beispiel nutzen wir dagegen shorthand properties, um folgenden Code abzukürzen: const foo = {bar: bar}
Nennen Sie drei Fehler die Eslint/ktlint im Code findet.
-imports müssen verwendet werden (unused imports)
-Imports müssen alphabetisch sortiert sein (imports should be sorted
alphabetically).
-Maximale Zeilenlänge überschritten (Max line length)
Was beschreibt ein 3-Way-merge?
3-Way-Merge:
Commit mit 2 Vorgängerknoten
und 1 Ergebnisknoten
Wenn zwei, voneinander abweichende Branches zusammengeführt werden.
Was ist ein Feature Request?
Ist eine Art von Ticket, welche eine Anwendung um ein Feature erweitern oder ändern soll.
Erklären Sie eine BOM in Maven.
BOM = Bill of Materials.
Eine Art von POM, welche Versionen und Abhängigkeiten definiert und aktualisiert. Einfachere handhabung der Softwareversionen.
Erklären Sie den Zusammenhang zwischen POM und BOM.
POM: Project Object Model enthält alle Infos über das Projekt, Dependencies und Konfigurationen. -> wie build.gradle.kts
BOM: Bill of Materials enthält Versionsnummern der Dependencies.
Warum sollte man OWASP einsetzten?
Der OWASP Dependency Check prüft, ob die importierte Fremdsoftware veröffentlichte Sicherheitslücken enthält. Somit wird die Anwendung sicherer.
Wie geht man vor, wenn man einen graphischen Prototyp/ Wireframe z.B. mit Pencil Project
anfertigt?
- Projekt anlegen
- Board anlegen
- Formen/UI-Elemente in Board platzieren
- Komponenten über UI-Elemente verbinden
Was versteht man unter Lazy Loading?
beim Routing werden Komponenten nachgeladen
Warum ist GraphQL eine echte Alternative gegenüber REST?
Nur benötigte Daten werden übergeben -> kein Over-/ Underfetching. Zusätzlich entscheidet der Empfänger welche Daten übergeben werden sollen.
Vergleich einer Testklasse mit Jest (vorgegeben) mit einer in JUnit?
Die Funktion test in Jest ist das Pendant zu der Annotation @Test in JUnit.
Das describe ist das Pendant zu der class in der die Tests definiert sind.
Die Funktion each stellt Werte bereit und ist das Pendant zu @parametrizedTest.