Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Dort einfach die Aktivity-Feed-Einstellungen anpassen wie du es gerne hättest
Z.B. "Veröffentlicht einen Screenshot?" kannste den Haken raus machen und schon siehste keine Screenshots mehr von anderen in den Aktivitäten
Für spezielle Spiele den Feed anpassen geht meines Wissens nach leider nicht
Ich schau mal nach und melde mich wenn ich was finde
Nope entweder ganz oder garnicht :D
Also er bleibt auf der FL aber die Kommunikation ist blockiert
Keiner hat die Schwierigkeit davon angesprochen?
Ich sag ja nur das ich mir nicht vorstellen kann das es ein großes oder schwerer Vorhaben ist diese Funktion einzubauen.
Das kann von mittelmäßig aufwendig (Anpassung des Datenmodells, des Konfigurations-Frontends, des Aktivitätenfeed-Backends, verschiedener APIs, diverser Datenbankqueries) bis sehr komplex (das vorher genannte + z.B. Optimierung der Datenbankpartitionierung & -indexierung, neue Stored Procedures in der Datenbank anlegen, Migration von eventuell in der einen Datenbankinstanz gar nicht vorhandenen Datensätzen in eine andere, Synchronisierung der Einstellungen zwischen unabhängigen Systemen / Microservices, Zusammenarbeit verschiedener unabhängiger Teams, eventuelle Nebeneffekte mit anderen Systemen, Implementierung diverser Unit & Integration Tests).
Einfach so mit einem Fingerschnipsen ist es so oder so nicht getan :>
Der Activity-Feed ist eine in sich geschlossene API die genauso wie andere Dienste von Steam oder in Kooperation mit Steam/Valve (zum Beispiel SteamDB) auf die selben Datenbanken zugreifen, lediglich die Daten die nicht dargestellt werden sollen filtert und die die dargestellt werden sollen interpretiert.
Zum überprüfen dieser These kannst du dir gerne mal den Source-Code des Feeds ansehen und dir genauer die Verlinkungen und Verweise auf Scripts anschauen.
Somit wäre die Implementierung an der Stelle wo gesagt wird "Alles anzeigen außer..." anstelle zu sagen "... außer Screenshots" eine weitere Überprüfung einzubauen um daraus "... außer Screenshots von [Liste gefilterter IDs]" zu machen.
Schwer wäre das ganze nicht, es wäre nur Zeit- und Geldaufwand der sich für Valve nicht rentieren würde, da die Nachfrage für eine solche Funktion zu gering ist als dass sie darauf ihre Entwickler ansetzen würden.
Die Datenbank steht fest und wird lediglich bezüglich Laufzeiten / Latenzen optimiert ist aber ebenfalls ne unabhängige Instanz.
Nur weil du mit Fachbegriffen um dich wirfst von denen du eventuell selbst nur die Hälfte verstehst wie die Meisten die das tun, sind das noch lange keine Fakten. (Keine Offense nur ne These)
Danke für dein Hintergrundwissen, die These dass ich nicht wüsste wovon ich rede will ich aber nicht so stehen lassen ;)
Du hast den Teil "Anpassung des Aktivitätenfeed-Backends" beschrieben.
Eine saubere Filterung nimmt man normalerweise auf Datenbankebene vor und nicht im Frontend oder Programmcode (außer man will die Datenbank entlasten und die Datenmenge ist nicht all zu groß, wäre hier durchaus also auch eine Option, trotzdem müssen die Filtereinstellungen abgefragt werden) -> Anpassung von Datenbank-Queries und/oder Stored Procedures.
Die zu filternden Nutzer-IDs, und zwar gruppiert nach Objekttyp (z.B. Screenshot) müssen irgendwo abgespeichert werden -> Anpassung des Datenmodells
Ebenso müssen die Einstellungen vom Nutzer irgendwo vorgenommen werden -> Anpassung des Konfigurations-Frontends sowie mindestens der API zum Abspeichern der Konfiguration.
Das waren also die von mir genannten Minimalaufwände aufgeschlüsselt, das was du als "schwer wäre das nicht, kostet aber Zeit & Geld" bezeichnet hast habe ich halt als "mittelmäßig aufwändig" beschrieben, ansonsten sind wir uns einig.
Und nein, ich werfe nicht nur so mit Begriffen um mich, hier mögliche Gründe warum die weiteren genannten Aufwände anfällen könnten - was wie gesagt unter Spekulation fällt, da ich die Architektur nicht kenne:
- Optimierung der Datenbankpartitionierung & -indexierung : Wir sprechen hier von einer Datenbank die sicherlich einige Milliarden an Einträgen hat. Wenn du dort ein weiteres Filterkriterium und eventuell neue Join-Klauseln (siehe unten) hinzufügst, kann es durchaus sein dass man einen Index hinzufügen muss oder gar die Partitionierung überdenken. Dabei ist es egal ob die Instanz unabhängig ist oder nicht, gemacht werden muss es trotzdem.
Migration von eventuell in der einen Datenbankinstanz gar nicht vorhandenen Datensätzen in eine andere: Je nachdem wie Valve den Feed aufgesetzt hat, kann es z.B. sein dass der Objekttyp erst nach ein paar Joins, einem aufwändigen Parsen von Strings oder erst im Frontend erfolgenden Queries verknüpfter Datenquellen ersichtlich ist. So wie du die API beschreibst wird das vermutlich aber eher nicht so sein, war aber eine theoretische Möglichkeit.
Synchronisierung der Einstellungen zwischen unabhängigen Systemen / Microservices: Wenn der Activity-Feed die wie dir beschriebene geschlossene API ist, dann fällt das vermutlich auch weg. Ein mögliches Szenario wäre aber z.B. gewesen dass die Einstellungen in einem seperaten Dienst verwaltet werden, somit hätte hier eine Synchronisierung stattfinden müssen. Außerdem heißt eine nach außen hin geschlossen aussehende API ja nun auch nicht unbedingt dass im Hintergrund nicht doch eine Vielzahl verschiedener Systeme miteinander kommunizieren müssen.
Zusammenarbeit verschiedener unabhängiger Teams: Es wird erstmals die gesamte Freundesliste auf der Einstellungsseite des Activity Feeds angezeigt. Hierfür kann es durchaus möglich sein, dass das hypothetische "Friendslist-Team" mit dem hypothetischen "Activity Feed"-Team reden muss, je nachdem welche Qualität die bisher vorhandenen APIs haben.
Eventuelle Nebeneffekte mit anderen Systemen: Bei einer sauberen Architektur eher unwahrscheinlich, aber sind wir ehrlich - bei einem großen System mit einer Vielzahl an Entwicklern, wie wahrscheinlich ist es dass die Architektur da noch zu 100% sauber ist?
Implementierung diverser Unit & Integration Tests: Standard-Qualitätssicherungsmaßnahmen.
Bleibt die Quintessenz: Wenn die Architektur entsprechend flexibel ist ist das alles ganz gut machbar, trotzdem entstehen Aufwände die nicht einfach per Bauchgefühl abschätzbar sind.
Ich hoffe, ich konnte etwas mehr Licht in meine Thesen bringen und du hältst mich nicht für einen Quacksalber
Wenn jemandem wie z.B. dem lieben B34tZ mal langweilig ist darf er den Code gerne sauber schreiben, um weitere Medientypen erweitern und in ein Browserplugin gießen - dann klappt das auch ohne Zutun von Valve, zumindest im Webbrowser :-P
Disclaimer: Das hat nix mit sauberer Programmierung zu tun und fällt beim kleinsten Windstoß auseinander, aber laufen tut's solange bis Valve ihren Code zu sehr ändert xD Das Script ist nicht reloadsicher und muss nach jedem Seitenreload neu ausgeführt werden.
/Edit: Jetzt auch mit Möglichkeit Spiele auszuschließen und weniger Overblocking!
Pro-Tipp: Wenn man die Konsole am Anfang so groß macht dass man nix vom Feed sieht spoilert man sich auch nicht beim Einfügen des Codes. Danach kann man die Konsole bis zum nächsten Reload schließen ;)
/edit²: Wenn man fremden Browserplugins vertraut, kann man das Script auch ganz einfach mit einem Plugin wie diesem hier kombinieren und hat eine vollautomatische & reloadsichere Lösung: https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija - da sage ich aber, wie bei allen Browserplugins, "auf eigene Gefahr".