Lehrsätze der Webentwicklung (1): Externe Bibliotheken stehen immer zur Verfügung

— Erste Ableitung des ersten Gesetzes der verteilten Anwendungen („Das Netzwerk ist ausfallsicher.“)

Es ist immer eine gute Idee, davon auszugehen, dass nachzuladende Bibliotheken immer zur Verfügung stehen (und auch stets mit Null Verzögerung geladen werden). Netzwerke sind schließlich so designed, dass sie nie ausfallen können.

Daher sollte man beim Einbinden externer Bibliotheken immer direkt voraussetzen, dass die darin enthaltenen Funktionalitäten immer zur Verfügung stehen und niemals blockierende Effekte beim Anwender auftreten.

Ein gutes Beispiel wäre ein Linktracking aller Links einer Website, das auf Google Analytics beruht. Hier sollte man unbedingt bei jedem Link das Click-Event entführen und die Standard-Aktion per  preventDefault()  unterbinden, um das Linktracking synchron auszuführen und den Anwender erst nach erfolgreichem Speichern des Klicks weiterleiten. Google Analytics funktioniert schließlich immer und überall. Auch hinter beliebigen Proxys und Firewalls. Was soll da schon schief gehen?

Fazit

Das obenstehende ist natürlich totaler Unsinn. Die „Gesetze der verteilten Anwendungen“ sind eigentlich die „Irrtümer der verteilten Datenverarbeitung“1. Das Beispiel habe ich leider aus der freien Wildbahn. Der Effekt war natürlich, dass überall dort, wo Google Analytics z.B. auf dem Proxy gesperrt wurde, die Website nicht mehr benutzbar war, weil kein Link „funktioniert“ hat.

Und nein, ich sage nicht auf welcher Website.

  1. Nachzulesen unter anderem in der Wikipedia: http://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing