Warum man Nicknamen nicht zur Speicherung nutzen sollte

Wenn man sich Beziehungen zu Nutzern merken möchte, dann liegt es Nahe, dass man zur Identifizierung des Nutzers den Nicknamen nutzt. Hier erkläre ich, aus welchen Gründen ich das nicht für sinnvoll halte und was wir getan haben, um euch dahin zu leiten, es nicht zu tun.

 

In der API gibt es mit der Klasse UserAccess die Möglichkeit auf Nutzer zuzugreifen. Hier könnten wir einfache Abfragen über den Nicknamen möglich machen, haben aber bewusst darauf verzichtet, damit Referenzen zu Nutzern mit der userId, statt mit dem Nicknamen gemacht werden.

Aber warum?

Wir möchten, dass eure Apps zukunftssicher sind. Speichert ihr Referenzen auf Nicknamen, statt auf userIds, dann gibt es zwei größere Probleme, denen ihr begegnen könnt:

  1. NicklöschungWird ein User gelöscht und später ein neuer User mit demselben Nicknamen angelegt, so hat dieser eine neue userId. Wenn ihr den Nicknamen nutzt, um Dinge zu speichern, dann gelten diese Dinge auch für den neu angelegten Nutzer. Beispielsweise könnte ein Nutzer, der bei auch auf einer Blacklist steht, nicht in euren Channel, obwohl ihr ihn noch gar nicht kennt.
  2. NickänderungEin großer Wunsch unserer Nutzer ist es, dass wir ermöglichen, den eigenen Nicknamen für Geld zu ändern. Wir finden, dass das eine gute Idee ist, haben aber derzeit noch das Problem, dass wir viele Informationen über den Nicknamen referenzieren.

    Wir haben also genau den Fehler gemacht, von dem wir euch nun abhalten möchten.

    Sobald wir die Möglichkeit zur Nickänderung implementiert haben, könnte euer Code auch hier komische Dinge machen, weil die Verbindung zum Nutzer verloren geht.

  3. Größe der Daten in Memory & PersistenzDas Speichern und Laden einer userId im Vergleich zu einem Nicknamen ist verhältnismäßig gering. Neben den o.g. Vorteilen ist auch dieser Vorteil bemerkenswert.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s