Dev Notes

Notizen, Quick Tips und längere Artikel.

#01

std::string vs. std::string_view

C++

PROBLEM  Unnötige Kopien beim Übergeben von Strings als Funktionsparameter.

LÖSUNG  Wenn der String nur gelesen wird, std::string_view statt const std::string& nutzen. Kein Ownership, kein Copy-Overhead.

void log(std::string_view msg) {
    std::cout << msg;
}
#02

dict.get() statt dict[]

Python

PROBLEM  KeyError beim Zugriff auf einen Key, der nicht existieren könnte.

LÖSUNG  .get() gibt None (oder einen Default) zurück, statt zu crashen.

val = data.get("key", "default")
#03

Falschen Commit-Message fixen

Git

PROBLEM  Commit abgeschickt, Message falsch.

LÖSUNG  --amend vor dem Push. Danach wird's komplizierter.

git commit --amend -m "Richtige Message"
#04

Vergessenes virtual im Destruktor

C++

PROBLEM  Basisklassen-Destruktor ist nicht virtual → Derived-Objekte werden nicht korrekt zerstört.

LÖSUNG  Sobald eine Klasse als Basisklasse gedacht ist:

class Base {
public:
    virtual ~Base() = default;
};
#05

Optional Chaining statt verschachteltem if

JavaScript

PROBLEM  Tief verschachtelte Objekte ohne Garantie, dass jede Ebene existiert.

LÖSUNG  ?. und ?? kombinieren. Kürzer, kein TypeError, kein 3-stöckiges if.

const city = user?.address?.city ?? "Unbekannt";
#Nintendo3DS

Introduction to 3DS Homebrew Development

How to start programming homebrew for the Nintendo 3DS.

homebrew 3DS C++
Read More
#Backend

Account-Verwaltung

Accounts handhaben, ohne Angst zu haben, Passwörter zu leaken.

Python Security Webserver
Lesen
#Backend

Email-Authentifizierung

Emails im Backend verschicken, Benutzer über Login-Code verifizieren.

Python Backends Webserver
Lesen
#Backend

Passwörter hashen & salzen

Auswirkung eines Datenbankleaks minimieren, so geht's richtig.

Python Security Backends
Lesen
#Backend

Datenbanken

Daten, Benutzer und Accounts in einer Datenbank speichern.

Python Backends Webserver
Lesen