zeig mir deinen Network Trace

und ich sage Dir warum Du Scheisse bist. Beinahe mit Gier habe ich schon darauf gewartet, das das Projekt einer Österreichischen Behörde  online geht- der Spritpreisrechner. Nichts ist schöner als das Bashing von ungeliebter Fremdtechnologie, mit der ich mich zwar kaum auskenne, aber fundiert Salz in die Wunden streuen kann. Tool der Wahl HTTPFiddler. Er erste Website Aufruf mit IE9 und inprivate Browsen.

image

sieht soweit ganz ordentlich aus. Warum ein CSS 26 KB haben muss, weis wohl nur der Diplom Designer. Ein Blick in den Response Header offenbart, das die Entwickler tief in Caching Trickkiste gegriffen haben müssen. Wobei das Lastmodified eher nach Caching Verhinderung aussieht. Man wird sehen.

image

Apache aha- habe ich mir doch gleich gedacht.

Wenn man drei mal refresh drückt erscheint das Caching recht inkonsequent. Ein Blick in den http Header offenbart, das mindestens 2 verschiedene Etags ausgeliefert werden für das header_bg.jpg. Meine Mutmaßung- ein Load Balancer. Das liese sich mit ASP.NET Webfarm und einem Stateserver besser lösen.

image

Dann auf zur Tankstellensuche. Noch hat die Web Anwendung nicht offenbart, mit was es programmiert wurde.

Die Suche nach billiger Tankstelle dauert gefühlte Ewigkeiten und liefert Null Ergebnisse. Dafür braucht es aber auch gute 7 Sekunden. Kein Wunder ist ja mit JSP *ironie*.

image

The Good the bad and the ugly

Also gut ist, das sie von CDN ( Content Delivery Network)   gebrauch machen. Die 1 MB Große OpenLayer.js Library kommt so nicht vom Spritpreisrechner, sondern von den Openlayers.org. Ähnliches mit den JQuery librarys. Schlimm ist allerdings, das man hier rund 2 Mb Script laden muss wovon wahrscheinlich kaum etwas wirklich verwendet wird. Zumindest eine Karte sehe ich im Browser nicht.

image

Während meines Test wurde dann der Service auch gleich mit falschen Encoding wieder deaktiviert

Preisservice steht momentan nicht zur Verf�gu

Ich hätte ja gerne noch etwas zu dem dahinterliegenden Service Ansatz geschrieben, muss aber wohl noch zuwarten. BTW nach Medienangaben soll die Programmierung 60.000 Euro gekostet haben.

[Update1]

nun tut der Service kurz wieder. Ich gebe also oben in  die Zeile meine Postleitzahl ein und die Webservice ruft adhoc per autocomplete (ohne Return) eine Vorschlagliste von passenden Adressen auf

image

Wer so Programmiert, braucht sie über mangelnde Last nicht wundern. Als Belohnung bekomme ich auch 28 KB Fehlermeldung, die nie ein Benutzer lesen wird (der bekommt gar keine Fehlermeldung). Nur eine Zeile davon ist wirklich relevant Postgre als Datenbank Server und Single Point of Failure hisst die weisse Fahne. Man mag ja halten was man will von dem kostenlosen Zeugs aus dem LAMP Stack, aber sollte man damit wirklich eine solche Anwendung bauen? Und ist das bei pgsql der User?

1f63
string(29) "pgsql://mqmgr@:5433/gazetteer"
object(DB_Error)#2 (8) {
  ["error_message_prefix"]=>
  string(0) ""
  ["mode"]=>
  int(1)
  ["level"]=>
  int(1024)
  ["code"]=>
  int(-24)
  ["message"]=>
  string(24) "DB Error: connect failed"
  ["userinfo"]=>
  string(196) " [nativecode=pg_connect() [<a href='function.pg-connect'>function.pg-connect</a>]: Unable to connect to PostgreSQL server: FATAL:  sorry, too many clients already] ** pgsql://mqmgr@:5433/gazetteer" …

Darüber hinaus wird im Querystring so allerlei mit übermittelt was nicht nötig ist. Z. B. der countrycode AT. Das kostet Taffic und jede Wette der PHP Code ist kopiert, was nie ein guter Start für Performance ist.

/nominatim/v1/search?json_callback=autocompleteLoaded&format=json&countrycodes=AT&addressdetails=0&limit=6&q=wien HTTP/1.1

Am Ende doch noch das Erfolgserlebnis. Spritpreisrechner tut was

image

Nun kann man auf eine Tankstelle clicken. Leider haben die Entwickler schon mal prophylaktisch alle Detaildaten im Gasstationservlet bis hin zu den Öffnungszeiten vorgeladen.

image

Um dann per Jscript Orgie in der Liste alle Einträge durch clicken zu können (nur wer macht das schon?) und im Detailfeld alle Infos zu sehen.

image

Ganz böses Charma.

Am Ende bekommt die Spritpreisrechner Anwendung von mir 3 Punkte auf der 10 teiligen Skala. Man könnte es noch schlimmer lösen, aber nicht viel.

Kommentare (1) -

  • Ich habe zwar mit der Bude nix am Hut, aber wozu so ein Flamepost? IMHO mischt du hier Programmierfehler (nobody is perfect) mit deiner Abneigung zu den verwendeten Technologie.


Kommentar schreiben