Von Geodaten bis NoSQL
leistungsstarke PHP-Anwendungen

Worum geht es in dem Buch?

Kurz gesagt geht es in dem Buch um 4 Themenbereiche. Localisierung, Interaktive Webseite, Webseite-Optimierung und Datenbanken.

Lang gesagt:
Der Autor beschreibt in seinem Buch 4 Bereiche mit jeweils unterschiedlichen Themen.
Im ersten Kapitel geht es im allgemeinen um Lokalisierung, darunter:
das Abrufen von Geodaten mittels HTML5,
das Speichern und Verarbeiten von GeoDaten,
das Arbeiten mit Zeit und Zeitzonen (mit Anwendungsbeispielen für PHP und MYSQL),
sowie Zeichenkodierung (im speziellen Unicode)

Im zweiten Kapitel wird das Thema interaktive Webseiten behandel. Hier wird näher auf das Themengebiet Ajax, Json und Server-Push eingegangen.

Kapitel drei behandelt das Optimieren von Webseiten. Hier geht der Autor zum beispiel auf Caching, TCP, HTTP-Requests,Web-Storage und Serverseitige Hilfsmittel ein (Varnish,Memcache,etc.)

Datenbanken sind das Thema des vierten und letzten Kapitels. Hier wird näher auf Optimierungen im Bereich Mysql eingegangen und zusätzlich werden die Vorzüge von NOSQL-Datenbanken behandelt (anhand zweier unterschiedliche NOSQL-Systemen).

Für wenn ist das Buch?

Das Buch ist nicht für Anfänger gedacht, und auch nicht für Personen die ein „Jetzt lerne ich Mysql/PHP/HTML“-Buch suchen. Dieses Buch fängt eigentlich dort an, wo verschieden andere Bücher aufhören oder das Thema nur bedingt ansprechen.
Wer sich nicht mit den jeweiligen Programmiersprachen auskennt, wird mit dem Buch leichte Probleme haben. Das bedeutet aber nicht, das Anfänger nichts damit anfangen können.

Ich finde, man sollte das Buch gleichzeitig mit „Jetzt lerne ich xxx“ verwenden, viele Fehler die man in diesen Büchern lernt, kann man mit diesem Buch (besonders Kapitel 2 und 3) gut ausmerzen.
Mit dem Kapitel 4 wird einem gleich noch die ordentliche Datenbank-Verwendung beigebracht.

Kurzum, eigentlich ist das Buch für jeden, der wirklich programmieren will.

Wie ich (also ich, der Autor (also von dieser Seite, nicht vom Buch)) das Buch fand?

Zuerst muss ich sagen, das ich mir das Buch nicht aus einem bestimmten Grund gekauft habe. Ich wollte einfach mal was neues lesen und das war mit dem Buch auch super möglich.
Es gibt immer drei Regeln bei Büchern.
Regel 1: Es muss meine Fragen beantworten, auch ohne diese Frage zu kennen (Also schon alleine der Titel muss zum Inhalt passen, sonst erwartet man Falsches).
Regel 2: Das Buch selbst muss in mir als Leser das Bedürfnis erzeugen, Fragen zu stellen.
Regel 3: Diese eventuelle Frage muss auch beantwortet werden.

Der Autor hat in diesem Buch eigentlich ganze Arbeit geleistet, sobald ein Punkt kam wo ich selbst überlegt habe, Wie? Was? Warum?, wurde dies auch direkt beantwortet. Was interessant ist, ist der Bereich Codebeispiele. Kein Code wird einfach „hingeklatscht“, mit der Behauptung „das geht weil es gehen muss“, sondern der Autor geht schritt für Schritt durch den Code durch und erklärt, was passieren müsste, oder warum man das gerade so macht.

Fazit: Lesen und mitmachen macht bei diesem Buch Spass, wenn man mindestens die Grundlagen kennt. Das Buch ist ein Absolutes muss, selbst wenn nur 1 Kapitel das Interessante ist.

Kapitel 1 im Detail

Sag mal wo kommst du denn her?

Geolokalisierung in HTML 5 vs GeoIP, bzw die Lokalisierung via IP. Es wird ganz interessant auf das Thema HTML5 eingegangen und am Ende wird auf die Möglichkeiten eingegangen, diese Daten zu speichern und zu verwenden. Ich persönlich fand das Thema schon früher sehr trocken, aber das liegt daran das ich bis dato mit Karten/Location noch nix gemacht habe. Von dem, was ich aber gelesen hab muss ich sagen, das es mir unbewusst etwas beigebracht hat, da sich das Thema ganz genau mit dem Speichern und verarbeiten von geografischen Daten befasst.

Morgens,Warning: mktime() [function.mktime]: It is not safe to rely on the system’s timezone settings. in Deutshland

Jeder hatte diesen Fehler schon mindestens einmal. In dem Buchabschnitt behandelt der Autor viele Aspekte rund um das Arbeiten mit Zeit- und Datumsangaben. Er beschränkt sich dabei nicht nur auf PHP, sondern behandelt auch das richtige Verabreiten in MYSQL. Meines Erachtens ein Thema, welches als Ergänzung zu anderen Büchern perfekt ist. (An die Leser die sich angesprochen fühlen: „Ja genau, genau du hast immer Probleme mit Datumsangaben.“)
Aber es wird nicht nur mit gregorianischem Kalender wird gearbeitet, ein kompletter Abschnitt bezieht sich auf das Arbeiten mit nicht-gregorianischen Kalendern (Ok, die meisten nutzt man nicht, aber Spass macht es trotzdem).

Ich m?chte diesen Teppich nicht kaufen!

Der letzte Abschnitt in diesem Buch behandelt das Thema Zeichenkodierung, im genaueren Unicode. Es wird nicht nur erklärt, was Unicode ist, es wird auch Step by Step das Arbeiten mit Unicode erklärt. Ok Das Thema ist trocken, da es hauptsächlich aus Erklärung besteht, aber wichtige Punkte, wie zum Beispiel der BOM und verschiedene Filterfunktionen in PHP werden behandelt. In Mysql wird entsprechend auch die Sortierreihenfolge behandelt (ich hatte dazu ja mal ein Video gemacht).

Das war eigentlich schon alles im ersten Kapitel. Aber schon mindestens 2 Sachen, warum sich das Buch lohnt.

Kapitel 2 im Detail

JSON und die Ajaxnauten

Das Kapitel Interaktive Websites befasst sich hauptsächlich mit dem Thema Ajax und JSON, teilweise wird auch XML angesprochen. Was ich gut finde ist, das hier auch nochmal die Hintergründe von JSON erklärt werden sowie die Vorteile in Verwendung mit Ajax. In diesem Kapitel wird viel Wert auf Beispielcode gelegt, so werden auch mögliche Verwendungen von HTML5-Session und verschiedene Ajax-Tricks aufgezeigt. Es wird mit reinen javascriptlösungen gearbeitet, so erlernt man auch unabhängig von Jquery wie ein Ajax-Request erstellt wird.

ServerPush und SSE

Im weiteren Verlauf wird auch der Serverpush erklärt, dabei geht es um die permanente Aktualisierung zwischen Server und Webseite, ohne permanentem Reload der Seite, via Long Pooling oder SSE. Ein PHP-Eventserver wird hier als Beispiel programmiert.

Websocken

Der letzte Abschnitt in diesem Kapitel befasst sich mit WebSockets, also die permanente Kommunikation zwischen Server und Browser. Dies ist ein längers Thema, befasst sich dafür aber explizit mit diesem Thema. Am Ende hat man eine eigene WebsocketKlasse und kann Server und Browser gleichermassen komunizieren lassen.

Sowohl ServerPush, als auch Websockets sind ein sehr interessanter Bereich für mich gewesen, und ich arbeite bis dato immernoch mit ähnlichen Lösungen.

Kapitel 3 im Detail

alte.schnecke.de

Caching und Gewschindigkeitsoptimierungen sind bereits bei kleinen Webseiten von vorteil. Und genau das wird in diesem Bereich detailiert erklärt. Warum sollte man CSS und Javascript zusammenführen? Warum läd eine Seite mit vielen Bildern so langsam? All das, und noch viel mehr, sind Fragen, die in diesem Kapitel behandelt werden. Ebenfalls Punkte die in diesem Bereich angesprochen werden, sind dynamisches Nachladen und optimiertes Laden von Webseiten.

Besonders hier hab ich einige Tricks gelernt, die viel in meinen aktuellen Arbeiten auftauchen.

Wo soll ich mir was Merken?

Der Webstorage ist ja bekanntlich ein Feature in HTML5 und was man damit so alles machen kann, erfährt man direkt mit kleinen Beispielen. Und am Ende von dem Abschnitt weis man, wie man mit Webstorage arbeitet und hat dazu noch einen hilfreichen Notizzettel programmiert.

Der Server rockt das Haus

Manchmal ist es nur der Server, der lahm ist. Oder man hat einfach zuviel Besuch auf der Seite. Dafür hat der Autor ein kompletten Bereich geschrieben (zirka 80 Seiten), der sich auschliesslich mit der Serveroptimierung befassen. Man lernt hier:
das Installieren
das Verwenden
und das Optimieren
von Varnish, Edge Side Includes, APC und Memcache.
Systeme die meines Erachtens viele Positive Aspekte mit sich führen, um den Server zu optimieren.

Kapitel 4 im Detail

Altbewährt und immer noch am Start: MYSQL

Optimierung fängt ja bekanntlich in der Datenbank an. Und in diesem Bereich lernt man, was es heist Indexe anzulegen und zu verwenden,richtige Datentypen zu nutzen und Abfragen entsprechend zu optimieren. Neben Join’s und Transaktionen wird unter anderem auch der Lockmeschanismus von Inno erklärt. Ein perfekter Beitrag zu „Jetzt lerne ich MYSQL“.

110mal NO-SQL

Der Rest des Buches befasst sich nun eigentlich nur noch mit Redis und MongoDB. Beides NoSQL-Datenbanken, Redis ist dabei ein K/V-Datenbank und Mongo eine Dokumentendatenbank. Dieses Thema ist für Programmierer interessant, die mit extrem unterschiedlichen oder vielen Daten arbeiten müssen, da ich mich mit dem Kapitel aber noch nicht richtig befasst hab, kann ich dazu leider auch nichts genaueres dazu sagen.

Fazit

Das Buch hat für jeden etwas dabei, zum dazulernen verschiedene Bereiche ist es perfekt geschrieben und man schläft beim lesen auch nicht ein. Wer etwas neues lernen möchte, ist mit diesem Buch gut beraten und Neulinge sollten sich das Buch schon von anfang an mit ans Herz legen.


Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Warning: SimpleXMLElement::__construct(): ^ in /www/htdocs/w0109f9f/netzwerkdcms/wp-content/plugins/amazonsimpleadmin/lib/Asa/Service/Amazon/Request/Abstract.php on line 62

Der Autor

Geschrieben wurde das Buch von Arno Hollosi, dieser forscht und lehrt an der Fachhochschule CAMPUS 02 in Graz zum Thema Web und Informationssicherheit.

Inhaltsverzeichnis

  • Kapitel I: Den Benutzer im Fokus: Geodaten, Zeitzonen und Schriftzeichen
    1. Geodaten
    2. Geodaten speichern
    3. Zeit und Zeitzonen
    4. Unicode
  • Kapitel II: Interaktive Websites: Kommunikation zwischen Client und Server
    1. Interaktive Websites
    2. Servergesteuerte Aktualisierung (Server Push)
  • Kapitel III: Immer schneller: Leistungsstarke Webseiten
    1. Frontend optimieren
    2. Caching von Inhalten
    3. Varnish und Edge Side Includes
    4. Alternative PHP Cache (APC)
    5. Memcached
  • Kapitel IV: Datenbanken à la carte: MySQL und NoSQL
    1. MySQL für Fortgeschrittene
    2. Redis
    3. MongoDB
  • Bildnachweise
  • Index

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

You may use these HTML tags and attributes

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

But, it will became readable code