Ein Internationalized Resource Identifier (IRI) ist eine erweiterte Version eines Uniform Resource Identifier (URI), die Unicode-Zeichen außerhalb des ASCII-Zeichensatzes unterstützt. Dadurch können auch nicht-lateinische Schriftzeichen (z. B. chinesische, arabische oder kyrillische Zeichen) sowie Sonderzeichen in Webadressen und anderen Identifikatoren verwendet werden.
A-Z
, 0-9
, -
, .
und _
) beschränkt sind, erlauben IRIs Zeichen aus dem gesamten Unicode-Zeichensatz.https://de.wikipedia.org/wiki/Überblick
https://de.wikipedia.org/wiki/%C3%9Cberblick
Ü
als %C3%9C
kodiert)IRIs sind in RFC 3987 definiert und werden in modernen Webtechnologien wie HTML5, XML und RDF unterstützt.
IRIs machen das Internet sprachlich inklusiver, indem sie Webseiten und Ressourcen mit nicht-lateinischen Zeichen leichter zugänglich machen.
Ein Backlink ist ein Link, der von einer externen Website auf deine eigene Website verweist. Man kann sich das wie eine Empfehlung oder einen Verweis vorstellen: Wenn eine andere Website auf deine Seite verlinkt, signalisiert das den Suchmaschinen, dass deine Inhalte relevant und vertrauenswürdig sein könnten.
SEO-Ranking-Faktor:
Suchmaschinen wie Google bewerten Backlinks als eines der wichtigsten Kriterien für die Relevanz und Autorität einer Website. Je mehr hochwertige Backlinks eine Seite hat, desto besser kann sie in den Suchergebnissen ranken.
Traffic-Quelle:
Backlinks bringen direkten Traffic auf deine Seite, wenn Nutzer auf den Link klicken.
Reputation und Vertrauen:
Links von bekannten und vertrauenswürdigen Seiten (z. B. Nachrichtenportalen oder Branchenführern) stärken die Glaubwürdigkeit deiner Website.
DoFollow-Backlinks:
Diese übertragen Linkjuice (Linkkraft), der das SEO-Ranking positiv beeinflusst.
NoFollow-Backlinks:
Diese signalisieren den Suchmaschinen, dass sie dem Link nicht folgen sollen. Sie beeinflussen das Ranking weniger, können aber trotzdem Traffic bringen.
In der Softwareentwicklung bezeichnet Semantik die Bedeutung oder den Zweck von Code oder Daten. Es geht darum, was ein Programm tun soll, im Gegensatz zur Syntax, die beschreibt, wie der Code geschrieben wird.
1. Programmiersprachen:
a = 5
b = 0
print(a / b)
2. HTML-Semantik:
<header> statt <div> für die Kopfzeile einer Webseite.
3. Semantische Modelle:
In der Softwareentwicklung bezeichnet Syntax die formalen Regeln, die vorschreiben, wie Programmcode geschrieben werden muss, damit er von einem Compiler oder Interpreter korrekt interpretiert wird. Diese Regeln umfassen die Struktur, die Anordnung und die Verwendung von Sprachelementen wie Schlüsselwörtern, Operatoren, Klammern, Variablen und mehr.
1. Sprachspezifische Regeln
Jede Programmiersprache hat ihre eigene Syntax. Was in einer Sprache gültig ist, kann in einer anderen zu Fehlern führen.
Beispiel:
Python verlangt Einrückungen, während Java geschweifte Klammern verwendet.
Python:
if x > 0:
print("Positive Zahl")
Java:
if (x > 0) {
System.out.println("Positive Zahl");
}
2. Syntaxfehler
Syntaxfehler treten auf, wenn der Code nicht den Regeln der Sprache entspricht. Sie verhindern, dass das Programm ausgeführt wird.
Beispiel (Syntaxfehler in Python):
print "Hello, World!" # Fehlende Klammern
3. Bedeutung vs. Struktur (Syntax vs. Semantik)
4. Werkzeuge zur Überprüfung der Syntax
Variablenbenennung: Variablennamen dürfen keine Leerzeichen oder Sonderzeichen enthalten.
my_variable = 10 # korrekt
my-variable = 10 # Syntaxfehler
Schließen von Blöcken:
{ ... }
Syntax ist in der Softwareentwicklung essenziell, um Code verständlich, fehlerfrei und ausführbar zu machen. Sie definiert die "Grammatik" der Programmiersprache, während die Logik (Semantik) bestimmt, wie der Code arbeitet.
Duplicate Code (auf Deutsch: "doppelter Code" oder "Code-Duplizierung") bezeichnet das mehrfache Vorhandensein identischer oder sehr ähnlicher Codeabschnitte in einem Programm. Es wird als schlechte Praxis angesehen, weil es zu Problemen in der Wartbarkeit, Lesbarkeit und Fehleranfälligkeit des Codes führen kann.
1. Exakter Duplikat: Der Code ist vollständig identisch. Dies tritt häufig auf, wenn ein Entwickler denselben Code kopiert und an mehreren Stellen einfügt.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius * radius
def calculate_area_sphere(radius):
return 3.14 * radius * radius # Identischer Code
2. Strukturelle Duplikate: Der Code ist nicht exakt gleich, aber in seiner Struktur und Funktionalität ähnlich. Lediglich Variablen oder Namen wurden geändert.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius * radius
def calculate_area_square(side):
return side * side # Ähnlich strukturiert
3. Logische Duplikate: Der Code macht funktional das Gleiche, sieht aber syntaktisch unterschiedlich aus.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius ** 2
def calculate_area_circle_alt(radius):
return 3.14 * radius * radius # Funktional gleich, aber anderer Stil
1. Refactoring: Ähnlichen oder identischen Code in eine gemeinsame Funktion oder Methode auslagern.
Beispiel:
def calculate_area(shape, dimension):
if shape == 'circle':
return 3.14 * dimension * dimension
elif shape == 'square':
return dimension * dimension
2. Modularisierung: Funktionen und Klassen verwenden, um Wiederholungen zu reduzieren.
3. DRY-Prinzip anwenden: "Don't Repeat Yourself" – Entwickle so, dass keine Information oder Logik doppelt implementiert wird.
4. Tools verwenden: Tools wie SonarQube oder CodeClimate können Duplicate Code automatisch erkennen.
Duplicate Code zu reduzieren, verbessert die Codequalität, erleichtert die Wartung und minimiert das Risiko von Fehlern in der Software.
"Lines of Code" (LOC) ist eine Metrik in der Softwareentwicklung, die die Anzahl der geschriebenen Codezeilen in einem Programm oder einer Anwendung zählt. Diese Metrik wird oft zur Einschätzung des Umfangs, der Komplexität und des Entwicklungsaufwands eines Projekts verwendet. LOC wird auf verschiedene Arten eingesetzt:
Code-Komplexität und Wartbarkeit: Eine höhere Anzahl von LOC kann auf ein komplexeres oder schwer wartbares Projekt hinweisen. Entwickler versuchen oft, den Code schlank und effizient zu halten, weil weniger Zeilen potenziell weniger Fehlerquellen und einfachere Wartung bedeuten.
Produktivitätsbewertung: In manchen Organisationen wird LOC genutzt, um die Produktivität von Entwicklern zu messen, wobei jedoch die Qualität des Codes und nicht nur die Quantität berücksichtigt werden sollte. Denn viele Zeilen Code könnten auch durch ineffiziente Lösungen oder Redundanzen entstehen.
Projektfortschritt und Schätzungen: LOC kann helfen, den Fortschritt eines Projekts zu messen oder eine grobe Schätzung des Entwicklungsaufwands für zukünftige Projekte zu erstellen.
Obwohl LOC eine einfache und weitverbreitete Metrik ist, hat sie ihre Grenzen, da sie nichts über die tatsächliche Effizienz, Lesbarkeit oder Qualität des Codes aussagt.
Die zyklomatische Komplexität ist eine Kennzahl zur Bewertung der Komplexität eines Programmcodes oder eines Softwaremoduls. Sie misst die Anzahl der unabhängigen Ausführungspfade in einem Programm, basierend auf seiner Kontrollflussstruktur. Diese Metrik wurde von Thomas J. McCabe entwickelt und hilft, die Testbarkeit, Wartbarkeit und Fehleranfälligkeit eines Programms einzuschätzen.
Die zyklomatische Komplexität V(G)V(G) lässt sich mithilfe des Kontrollflussgraphen eines Programms berechnen. Dieser Graph besteht aus Knoten (für Anweisungen oder Blöcke) und Kanten (für die Kontrollflusswege zwischen den Blöcken). Die Formel lautet:
V(G)=E−N+2PV(G) = E - N + 2P
In der Praxis wird oft eine vereinfachte Berechnung verwendet, bei der die Anzahl der Verzweigungspunkte (wie If-, While-, For-Schleifen) addiert wird.
Die zyklomatische Komplexität gibt Auskunft darüber, wie viele Testfälle mindestens nötig sind, um jeden Pfad im Programm einmal zu durchlaufen. Eine höhere zyklomatische Komplexität deutet auf einen komplexeren und möglicherweise fehleranfälligeren Code hin.
Durch die Messung der zyklomatischen Komplexität können Entwickler frühzeitig potenzielle Wartungsprobleme identifizieren und gezielt Bereiche des Codes für Vereinfachung und Refactoring auswählen.
Ein False Positive (falsch-positiv) ist ein Begriff aus der Statistik und wird oft in Bereichen wie Maschinelles Lernen, Datenanalyse oder Sicherheit verwendet. Er bezeichnet eine Situation, in der ein Test oder ein System fälschlicherweise anzeigt, dass ein bestimmtes Ereignis oder eine Bedingung eingetreten ist, obwohl das in Wirklichkeit nicht der Fall ist.
Es ist das Gegenteil eines False Negative, bei dem ein eigentlich vorhandenes Ereignis oder eine Bedingung übersehen wird.
Quellcode (auch Quelltext oder Code genannt) ist die für Menschen lesbare Anweisungssammlung, die von Programmierern geschrieben wird, um die Funktionsweise eines Programms zu definieren. Er besteht aus einer Abfolge von Befehlen und Anweisungen, die in einer bestimmten Programmiersprache geschrieben sind, wie z. B. Java, Python, C++, JavaScript und vielen anderen.
Menschlich lesbar: Quellcode wird von Entwicklern geschrieben und ist so gestaltet, dass er für Menschen lesbar und verständlich ist. Oft wird er mit Kommentaren und gut strukturierten Anweisungen versehen, um seine Logik nachvollziehbar zu machen.
Programmiersprachen: Quellcode wird in verschiedenen Programmiersprachen geschrieben, die unterschiedliche Syntax und Regeln haben. Jede Programmiersprache hat spezifische Zwecke und Anwendungsbereiche.
Maschinenunabhängig: Quellcode ist in seiner Rohform nicht direkt ausführbar. Er muss in eine maschinenlesbare Form (Maschinencode) übersetzt werden, damit der Computer ihn verstehen und ausführen kann. Diese Übersetzung erfolgt durch einen Compiler oder Interpreter.
Bearbeitung und Wartung: Entwickler können Quellcode bearbeiten, erweitern und verbessern, um neue Funktionen hinzuzufügen oder Fehler zu beheben. Der Quellcode bildet die Grundlage für alle weiteren Entwicklungs- und Wartungsarbeiten eines Softwareprojekts.
Ein einfaches Beispiel in Python, das zeigt, wie Quellcode aussieht:
# Ein einfacher Python-Quellcode, der "Hello, World!" ausgibt
print("Hello, World!")
Dieser Code besteht aus einer einzigen Anweisung (print
), die den Text "Hello, World!" auf dem Bildschirm ausgibt. Obwohl es nur eine Zeile ist, muss der Interpreter (in diesem Fall der Python-Interpreter) den Quellcode lesen, verstehen und in Maschinencode umwandeln, damit der Computer die Anweisung ausführen kann.
Quellcode ist das Herzstück jeder Softwareentwicklung. Er definiert die Logik, das Verhalten und die Funktionalität einer Software. Einige wichtige Aspekte des Quellcodes:
Quellcode ist der grundlegende, menschenlesbare Text, aus dem Softwareprogramme bestehen. Er wird von Entwicklern geschrieben, um die Funktionalität eines Programms zu definieren und muss von einem Compiler oder Interpreter in Maschinencode umgewandelt werden, bevor ein Computer ihn ausführen kann.
Ein Batch bezeichnet in der Informatik und Datenverarbeitung eine Gruppe oder einen Stapel von Aufgaben, Daten oder Prozessen, die gemeinsam und in einem Durchlauf verarbeitet werden. Es handelt sich um eine gesammelte Menge von Einheiten (z. B. Dateien, Aufträgen oder Transaktionen), die als ein Paket bearbeitet werden, anstatt jede Einheit einzeln und sofort zu verarbeiten.
Hier sind einige typische Merkmale eines Batches:
Sammlung von Aufgaben: Mehrere Aufgaben oder Daten werden gesammelt und dann gemeinsam verarbeitet.
Einheitliche Verarbeitung: Alle Aufgaben im Batch durchlaufen denselben Prozess oder werden auf die gleiche Weise verarbeitet.
Automatische Ausführung: Ein Batch wird oft zu einem bestimmten Zeitpunkt oder bei Erreichen bestimmter Kriterien automatisch gestartet, ohne menschliches Eingreifen.
Beispiele:
Ein Batch dient der Effizienzsteigerung, indem Aufgaben gebündelt und gemeinsam bearbeitet werden, oft zu Zeiten, in denen das System weniger ausgelastet ist, wie nachts.