bg_image
header

Perl Compatible Regular Expressions - PCRE

Perl Compatible Regular Expressions (PCRE) sind eine Implementierung von regulären Ausdrücken, die sich an der Syntax und Funktionalität der Programmiersprache Perl orientiert. Sie bieten eine sehr mächtige, flexible und erweiterte Syntax, die über einfache reguläre Ausdrücke hinausgeht.

Warum „Perl Compatible“?

Perl war eine der ersten Sprachen, die besonders leistungsstarke reguläre Ausdrücke eingeführt hat. Die PCRE-Bibliothek wurde entwickelt, um diese Funktionen auch in anderen Programmiersprachen und Tools verfügbar zu machen – zum Beispiel in:

  • PHP

  • Python (teilweise, re-Modul ähnelt PCRE)

  • JavaScript (mit leichten Abweichungen)

  • grep-Varianten wie pcregrep

  • Texteditoren wie VS Code, Sublime Text etc.


Wichtige Features von PCRE:

Lookahead & Lookbehind:

  • (?=...) – positive Lookahead

  • (?!...) – negative Lookahead

  • (?<=...) – positive Lookbehind

  • (?<!...) – negative Lookbehind

Nicht-gierige Quantifizierer:

  • *?, +?, ??, {m,n}?

Benannte Gruppen:

  • (?P<name>...) oder (?<name>...)

Unicode-Support:

  • \p{L} für Unicode-Buchstaben usw.

Assertions und Grenzen:

  • \b, \B, \A, \Z, \z

Modifikatoren:

  • (?i) für case-insensitive

  • (?m) für multiline usw.

(?<=\buser\s)\w+

Dieser Ausdruck findet Wörter, die nach "user " stehen (Lookbehind).


Fazit:

PCRE sind die "Deluxe-Version" regulärer Ausdrücke – sie sind leistungsfähig, weit verbreitet und flexibel. Wenn du in einem Tool oder einer Sprache arbeitest, die „PCRE unterstützt“, kannst du dich auf die mächtige Perl-ähnliche Syntax freuen.


Link Juice

„Link Juice“ ist ein Begriff aus der Suchmaschinenoptimierung (SEO) und bezeichnet den Wert oder die Kraft, die ein Hyperlink von einer Webseite auf eine andere überträgt. Diese „Kraft“ beeinflusst, wie gut eine Seite in den Suchmaschinenergebnissen (vor allem bei Google) rankt.

Einfach erklärt:

Wenn eine Webseite A auf Webseite B verlinkt, gibt sie etwas von ihrem „Ruf“ oder ihrer Autorität weiter – das ist der „Link Juice“. Je vertrauenswürdiger und themenrelevanter Seite A ist, desto mehr Link Juice wird übertragen.


Wichtige Faktoren, die Link Juice beeinflussen:

  • Autorität der verlinkenden Seite (z. B. eine große Nachrichtenseite vs. ein kleines Blog)

  • Anzahl der ausgehenden Links: Je mehr Links auf einer Seite sind, desto weniger „Juice“ bekommt jeder einzelne.

  • Follow vs. Nofollow: Nur „dofollow“-Links übertragen Link Juice; „nofollow“-Links (z. B. mit rel="nofollow") tun das in der Regel nicht.

  • Platzierung des Links: Ein Link im Haupttext ist stärker als einer in der Fußzeile oder Seitenleiste.

  • Relevanz: Ein Link von einer thematisch passenden Seite zählt mehr.


Beispiel:

Ein Backlink von Wikipedia auf deine Website gibt dir enorm viel Link Juice – Google wertet das als Zeichen von Vertrauenswürdigkeit. Ein Link von einer unbekannten oder spammy Seite dagegen bringt wenig bis gar nichts oder kann sogar schaden.

 


Scalable Vector Graphics - SVG

SVG steht für Scalable Vector Graphics und ist ein XML-basiertes Dateiformat, das verwendet wird, um 2D-Grafiken zu beschreiben. Es ermöglicht die Darstellung von Vektorgrafiken, die sich ohne Qualitätsverlust skalieren lassen. SVG wird häufig in Webdesigns verwendet, da es eine hohe Auflösung bei jeder Größe bietet und leicht in Webseiten integriert werden kann.

Ein paar wichtige Merkmale von SVG:

  • Vektorbasiert: SVG-Grafiken bestehen aus Linien, Kurven und Formen, die mathematisch definiert sind, im Gegensatz zu Rastergrafiken (wie JPEG oder PNG), die aus Pixeln bestehen.

  • Skalierbarkeit: Da SVG-Grafiken auf Vektoren basieren, können sie ohne Verlust der Bildqualität auf jede Größe skaliert werden, was sie besonders für responsive Designs geeignet macht.

  • Interaktivität und Animation: SVG unterstützt Interaktivität (z. B. durch JavaScript) und Animationen (z. B. durch CSS oder SMIL).

  • Suchmaschinenfreundlich: Der Inhalt einer SVG-Datei ist textbasiert und kann von Suchmaschinen indexiert werden, was SEO-Vorteile bieten kann.

  • Kompatibilität: SVG-Dateien können in den meisten modernen Webbrowsern angezeigt werden und eignen sich hervorragend für Logos, Icons und Diagramme.


Happy Path

Der "Happy Path" (auch "Happy Flow" genannt) bezeichnet in der Softwareentwicklung oder im Testing den idealen Ablauf eines Prozesses oder Programms, bei dem alles wie geplant funktioniert, keine Fehler auftreten und alle Eingaben gültig sind.

Beispiel:

Wenn du z. B. ein Online-Formular zur Registrierung entwickelst, sieht der Happy Path so aus:

  1. Der Benutzer gibt alle Daten korrekt ein (z. B. gültige E-Mail, sicheres Passwort).

  2. Er klickt auf „Registrieren“.

  3. Das System erstellt erfolgreich einen Account.

  4. Der Benutzer wird zur Willkommensseite weitergeleitet.

➡️ Keine Validierungsfehler, keine Serverprobleme, kein unerwartetes Verhalten.


Wozu dient der Happy Path?

  • Erstes Testziel: Beim Entwickeln oder Testen schaut man sich oft zuerst den Happy Path an, um sicherzugehen, dass das Grundgerüst funktioniert.

  • Basis für Use Cases: In der Dokumentation von Anforderungen oder Prozessen ist der Happy Path oft der zentrale Anwendungsfall, bevor man Sonderfälle beschreibt.

  • Abgrenzung zu Edge Cases / Error Paths: Alles, was vom Happy Path abweicht (z. B. leeres Passwortfeld, Serverfehler), gehört zu den „unhappy paths“ oder „alternate flows“.

 


Second Level Domain - SLD

Die SLD (Second Level Domain) ist der Teil eines Domainnamens, der direkt links von der Top-Level-Domain (TLD) steht.

Beispiel:

In der Domain
👉 example.com

  • .com ist die TLD (Top-Level-Domain).

  • example ist die SLD (Second-Level-Domain).


Aufbau einer Domain (von rechts nach links):

Ebene Beispiel
Top-Level-Domain .com
Second-Level-Domain example
Subdomain (optional) www. oder z. B. blog.

Weitere Beispiele:

Domain SLD TLD
google.de google .de
wikipedia.org wikipedia .org
meinshop.example.com example .com

Bedeutung:

Die SLD ist meist der individuell gewählte Teil, z. B. der Name eines Unternehmens, einer Marke oder eines Projekts – also der wichtigste Teil für die Wiedererkennung.

 


Vite

Vite ist ein modernes Build-Tool und Entwicklungsserver für Webanwendungen, das von Evan You, dem Schöpfer von Vue.js, entwickelt wurde. Es ist darauf ausgelegt, die Entwicklungs- und Build-Prozesse schneller und effizienter zu gestalten. Der Name "Vite" stammt vom französischen Wort für "schnell" und spiegelt das Hauptziel der Software wider: eine blitzschnelle Entwicklungsumgebung.

Die Hauptmerkmale von Vite sind:

  1. Schneller Entwicklungsserver: Vite nutzt die modernen ES-Module (ESM) und bietet durch diese Technik einen ultraschnellen Entwicklungsserver. Es wird nur das neueste Modul geladen, was die Initialisierung deutlich schneller macht als traditionelle Bundler.

  2. Hot Module Replacement (HMR): Der HMR funktioniert extrem schnell, indem er nur die geänderten Module aktualisiert, ohne die gesamte Anwendung neu zu laden.

  3. Modernes Build-System: Vite verwendet Rollup unter der Haube, um die endgültige Produktion zu bundeln, was optimierte und effizientere Builds ermöglicht.

  4. Zero-Konfiguration: Vite ist sehr benutzerfreundlich und erfordert keine umfangreiche Konfiguration. Es funktioniert sofort mit der Standard-Konfiguration, wobei es viele gängige Web-Technologien out-of-the-box unterstützt (z. B. Vue.js, React, TypeScript, CSS-Preprozessoren usw.).

  5. Optimierte Produktion: Für die Produktion wird Rollup verwendet, das für seine effizienten und optimierten Bundles bekannt ist.

Vite richtet sich hauptsächlich an moderne Web-Anwendungen und ist besonders beliebt bei Entwicklern, die mit Frameworks wie Vue, React oder Svelte arbeiten.

 


Partial Mock

Ein Partial Mock (teilweises Mocking) ist eine Technik beim Testen von Software, bei der nur ein Teil eines Objekts durch ein Mock ersetzt wird, während der Rest der echten Implementierung erhalten bleibt. Dies ist besonders nützlich, wenn du nur bestimmte Methoden eines Objekts stubben oder mocken möchtest, während andere Methoden normal ausgeführt werden.

Wann wird ein Partial Mock verwendet?

  • Wenn du eine Klasse testen möchtest, aber bestimmte Methoden von ihr isolieren musst.

  • Wenn einige Methoden schwer zu testen sind (z. B. weil sie externe Abhängigkeiten haben), aber andere weiterhin mit ihrer echten Logik arbeiten sollen.

  • Wenn du nur einige Methoden stubben möchtest, um den Testablauf zu steuern.

Beispiel in PHP mit PHPUnit

Angenommen, du hast eine Klasse Calculator, aber möchtest die Methode multiply() mocken, während add() normal funktioniert.

class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }

    public function multiply($a, $b) {
        return $a * $b;
    }
}

// PHPUnit Test mit Partial Mock
class CalculatorTest extends \PHPUnit\Framework\TestCase {
    public function testPartialMock() {
        // Partial Mock von Calculator
        $calculator = $this->getMockBuilder(Calculator::class)
                           ->onlyMethods(['multiply']) // Nur diese Methode mocken
                           ->getMock();

        // Definiere Verhalten für multiply()
        $calculator->method('multiply')->willReturn(10);

        // Teste echte Methode add()
        $this->assertEquals(5, $calculator->add(2, 3));

        // Teste gemockte Methode multiply()
        $this->assertEquals(10, $calculator->multiply(2, 3));
    }
}

Hier bleibt add() unverändert und arbeitet mit der echten Implementierung, während multiply() immer 10 zurückgibt.

Fazit

Partial Mocks sind nützlich, wenn du Teile einer Klasse isolieren möchtest, ohne sie vollständig zu ersetzen. Sie helfen, Tests stabiler und effizienter zu machen, indem nur bestimmte Methoden gemockt werden.


Salesforce Apex

Salesforce Apex ist eine objektorientierte Programmiersprache, die speziell für die Salesforce-Plattform entwickelt wurde. Sie ähnelt Java und wird hauptsächlich verwendet, um benutzerdefinierte Geschäftslogik, Automatisierungen und Integrationen in Salesforce zu implementieren.

Wichtige Merkmale von Apex:

  • Cloud-basiert: Läuft ausschließlich auf den Servern von Salesforce.

  • Syntaxähnlichkeit zu Java: Wer Java kennt, kann Apex schnell lernen.

  • Eng mit der Salesforce-Datenbank (SOQL & SOSL) verknüpft: Ermöglicht direkte Datenabfragen und Manipulationen.

  • Ereignisgesteuert: Wird oft durch Salesforce-Trigger (z. B. Änderungen an Datensätzen) ausgeführt.

  • Governor Limits: Salesforce begrenzt Ressourcenverbrauch (z. B. maximale Anzahl von SOQL-Abfragen pro Transaktion), um die Performance der Plattform zu sichern.

Verwendung von Apex:

  • Triggers: Automatische Aktionen bei Änderungen an Datensätzen.

  • Batch-Prozesse: Verarbeitung großer Datenmengen in Hintergrundjobs.

  • Web Services & API-Integrationen: Kommunikation mit externen Systemen.

  • Custom Controllers für Visualforce & Lightning: Steuerung von Benutzeroberflächen.

 


Memcached

Memcached ist ein verteiltes In-Memory-Caching-System, das häufig zur Beschleunigung von Webanwendungen eingesetzt wird. Es speichert häufig abgefragte Daten temporär im Arbeitsspeicher, um teure Datenbankabfragen oder API-Aufrufe zu vermeiden.

Wichtige Eigenschaften von Memcached:

  • Schlüssel-Wert-Speicher: Daten werden als Key-Value-Paare gespeichert.

  • In-Memory: Läuft vollständig im RAM, daher extrem schnell.

  • Verteilt: Unterstützt mehrere Server (Cluster), um die Last zu verteilen.

  • Einfach: Bietet eine minimalistische API mit grundlegenden Operationen wie set, get, delete.

  • Eviction (Ablaufstrategie): Verwendet LRU (Least Recently Used), um alte Daten bei Speicherüberlastung zu löschen.

Typische Anwendungsfälle:

  • Caching von Datenbankabfragen: Reduziert die Last auf Datenbanken wie MySQL oder PostgreSQL.

  • Session-Management: Speichert Benutzersitzungen bei skalierbaren Web-Apps.

  • Temporäre Datenspeicherung: Z.B. für API-Rate-Limiting oder kurze Zwischenspeicher.

Memcached vs. Redis:

  • Memcached: Schneller bei einfachen Key-Value-Speichern, skaliert gut horizontal.

  • Redis: Bietet mehr Features wie persistente Speicherung, Listen, Hashes, Sets und Pub/Sub.

Installation & Nutzung (Beispiel für Linux):

sudo apt update && sudo apt install memcached
sudo systemctl start memcached

Mit PHP oder Python kann Memcached über entsprechende Libraries verwendet werden.

 


Crawler

Ein Crawler (auch Webcrawler, Spider oder Bot genannt) ist ein automatisiertes Programm, das das Internet durchsucht und Webseiten analysiert. Es folgt Links von Seite zu Seite und sammelt dabei Informationen.

Einsatzgebiete von Crawlern:

  1. Suchmaschinen (z. B. Googlebot von Google) – Indizieren Webseiten, damit sie in Suchmaschinen-Ergebnissen erscheinen.

  2. Preisvergleichsportale – Durchsuchen Onlineshops nach aktuellen Preisen und Produkten.

  3. SEO-Tools – Analysieren Webseiten auf technische Fehler oder Verbesserungspotenzial.

  4. Datenanalyse & Monitoring – Beobachten Webseiteninhalte, z. B. für Marktforschung oder Konkurrenzanalysen.

  5. Archivierung – Speichern Webseiten für spätere Referenzen (z. B. Internet Archive).

Funktionsweise eines Crawlers:

  1. Startet mit einer Liste von URLs.

  2. Ruft Webseiten auf und speichert Inhalte (Text, Metadaten, Links).

  3. Folgt den Links auf den Seiten und wiederholt den Vorgang.

  4. Speichert oder verarbeitet die gesammelten Daten je nach Zweck.

Viele Webseiten setzen die robots.txt-Datei ein, um zu steuern, welche Inhalte von Crawlern besucht oder ignoriert werden sollen.

 


Zufalls-Technologie

Elastic Compute Cloud - EC2


0 zcbqxnKdL5MN74T5.png