Introduction to 3DS Homebrew Development
How to start programming homebrew for the Nintendo 3DS.
Read MoreNotizen, Quick Tips und längere Artikel.
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;
}
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")
PROBLEM Commit abgeschickt, Message falsch.
LÖSUNG --amend vor dem Push. Danach wird's
komplizierter.
git commit --amend -m "Richtige Message"
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;
};
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";
How to start programming homebrew for the Nintendo 3DS.
Read MoreEmails im Backend verschicken, Benutzer über Login-Code verifizieren.
LesenAuswirkung eines Datenbankleaks minimieren, so geht's richtig.
Lesen