Buchclub: Handbuch für Fachinformatiker (Teil 6: Webserver und -anwendungen) – Anwendungsentwickler-Podcast #66

This entry is Teil 6 von 14 in the series Buchclub

Die Kapitel 14, 15 und 19 (Server für Webanwendungen, Weitere Internet-Serverdienste und Webserveranwendungen) des IT-Handbuchs für Fachinformatiker sind Thema der sechsundsechzigsten Folge des Anwendungsentwickler-Podcasts.

TL;DR

Im Buchclub zum Handbuch für Fachinformatiker bespreche ich die Kapitel zu Webservern und ihren Anwendungen. Für dich als IT-Azubi gehören die Abläufe von HTTP und die Grundlagen zentraler Serverdienste zum prüfungsrelevanten Wissen; konkrete Einstellungen für Apache oder PHP haben vor allem praktischen Wert. Ein eigener Server und ein kleines Webprojekt helfen dir, die Zusammenhänge zu verstehen. Außerdem geht es um den Einstieg in PHP, Unit-Tests und REST sowie um Begriffe wie Wiki und CMS, die du als Fachinformatiker:in erklären können solltest.

Kapitelmarken

  • [00:20] Buchclub zu Webservern und Webanwendungen
  • [01:24] Kapitel 14 und die Relevanz für die IHK-Prüfung
  • [05:02] HTTP-Kommunikation und Methoden
  • [07:25] HTTP-Header
  • [08:12] HTTP-Statuscodes
  • [09:23] Apache installieren und konfigurieren
  • [11:29] Mit einem eigenen Server Praxiserfahrung sammeln
  • [13:15] Virtuelle Server und Kosten für ein Übungsprojekt
  • [16:57] Virtual Hosts und mehrere Domains
  • [18:53] Weitere Webserver im Überblick
  • [19:51] PHP installieren und einrichten
  • [20:15] Kapitel 15: DNS und wichtige Einträge
  • [23:08] LDAP und zentrale Verzeichnisdienste
  • [25:01] FTP und inetd
  • [25:56] Kapitel 19: Einstieg in PHP und Webanwendungen
  • [28:32] Arrays, Funktionen und objektorientiertes PHP
  • [30:34] Datenbankzugriff mit PHP
  • [31:52] Unit-Tests und Mock-Objekte mit PHPUnit
  • [33:48] REST-APIs und Fragen im Fachgespräch
  • [35:17] Gestrichenes Kapitel zu Ruby on Rails
  • [37:21] CMS, Blogs und Wikis
  • [40:41] Ausblick auf den nächsten Buchclub
  • [41:41] Links und Beispiel einer Projektpräsentation
  • [42:55] Newsletter

Probeabo bei Audible (Affiliate)

Inhalt

Die drei Kapitel enthalten viele sinnvolle und hilfreiche Informationen für die Praxis, z.B. für die Einrichtung eines eigenen Linux-Servers. Für die IHK-Prüfung waren davon aber nicht ganz so viele Bereiche interessant, da dort weniger konkrete Produkte abgefragt werden.

Server für Webanwendungen

  • HTTP im Überblick
    • Erklärung von HTTP ist gut verständlich.
    • HTTP sollte man kennen, insb. die verschiedenen Methoden.
    • Einige Header und Statuscodes gehören zum Grundwissen eines Webentwicklers.
  • Der Webserver Apache
    • DER Webserver schlechthin.
    • Für die Prüfung: Virtual Hosts und .htaccess-Datei.
  • PHP installieren und einrichten
    • Klasse, wenn man damit zu tun hat. Ansonsten wenig prüfungsrelevant.

Weitere Internet-Serverdienste

  • Namens- und Verzeichnisdienste
    • Produktspezifika sind nicht prüfungsrelevant.
    • DNS-Eintragstypen sind wichtig sowie LDAP-Grundwissen.
  • Sonstige Server
    • FTP hat meiner Meinung nach keine Praxisrelevanz mehr.
    • inetd ist unwichtig.

Webserveranwendungen

  • PHP
    • Ich denke, jeder Entwickler sollte mal eine Webanwendung gebaut haben. PHP ist dafür sehr gut geeignet und leicht zu lernen.
    • Konkrete Inhalte für die Prüfung gibt es nicht.
    • PHP-Beispiele verwenden noch „alten“ Datenbankzugriff.
    • HTML direkt aus PHP ausgeben ist auch nicht mehr ganz zeitgemäß.
    • Schön ist die Vorstellung von PHPUnit.
  • Eine REST-API implementieren
    • Aktuelles und praxisrelevantes Thema.
    • Leider zu wenig REST und zu viel PHP.
    • Anstatt XML würde ich heute auf JSON setzen.
  • Ruby on Rails
    • In der neuen Auflage leider gestrichen.
  • Weitere Technologien im Überblick
    • In der neuen Auflage leider gestrichen.

Literaturempfehlungen

Sascha Kersken - IT-Handbuch für Fachinformatiker: Für Fachinformatiker der Bereiche Anwendungsentwicklung und Systemintegration. Inkl. Prüfungsfragen und Praxisübungen (Affiliate)*
(direkt beim Rheinwerk-Verlag bestellen*)

In der nächsten Episode geht es um die Kapitel 18 und 20. Es gibt also die volle Breitseite HTML, CSS und JavaScript. 🙂

Dein eigener Webserver

Hast du auch schon einen eigenen Webserver? Wenn du mit dem Gedanken spielst, empfehle ich für den Einstieg 1blu*. Da bekommst du im ersten Jahr für 53,40 EUR einen kompletten vServer inkl. Domain und SSL-Zertifikat. ACHTUNG: Danach wird es etwas teurer: 7,90 EUR/Monat also 94,80 EUR/Jahr.

Für meine Studierendenprojekte an der PHWT nutze ich das Angebot bereits seit ein paar Jahren und bislang hat immer alles gut geklappt. Jedes Jahr lasse ich die Studierenden eine neue Recherche nach der günstigsten Lösung bei entsprechender Leistung durchführen und wir landen immer wieder bei 1blu*.

Kennst du einen noch besseren Hoster, den du anderen Azubis empfehlen kannst? Dann schreib mir gerne einen Kommentar!

Links

Zusammenfassung

Die Kapitel im Buchclub

Für die 66. Episode habe ich mit meinen IT-Azubis die Kapitel 14 und 15 sowie Kapitel 19 aus Sascha Kerstens Handbuch für Fachinformatiker durchgearbeitet. Sie behandeln Server für Webanwendungen, weitere Internetdienste und Anwendungen auf Webservern. Meine Azubis fanden die Inhalte verständlich, wobei viele Details einzelne Produkte betreffen.

Für die IHK-Prüfung erwarte ich vor allem Fragen zu allgemeinen Abläufen und Konzepten. Die konkreten Schritte, mit denen du Apache installierst oder PHP einrichtest, ordne ich als Praxiswissen ein. HTML und CSS kommen als allgemeine Webgrundlagen auch in Prüfungen vor. Sprachspezifische JavaScript-Fragen halte ich für unwahrscheinlich.

HTTP verstehen

Wenn du im Browser eine URL eingibst, solltest du als Fachinformatiker:in Anwendungsentwicklung erklären können, was im Hintergrund passiert. Das Kapitel zu HTTP beschreibt diesen Ablauf und vermittelt Grundlagen, die auch beim Arbeiten mit REST wichtig sind. REST ist grundsätzlich unabhängig vom Protokoll, wird in der Praxis häufig mit HTTP umgesetzt.

Zum Lernen gehören folgende Bereiche:

  • HTTP-Methoden: Neben GET und POST kommen etwa PUT und DELETE vor, die für CRUD-Operationen bei REST eine Rolle spielen. Auch OPTIONS und HEAD solltest du einordnen können.
  • HTTP-Header: Sie steuern beispielsweise, welches Format eine Anwendung anfordert oder ausliefert. Wenn du Fehler bei Webanwendungen untersuchst, helfen dir Kenntnisse über Header und das Verhalten von Caches.
  • Statuscodes: Zu den Beispielen gehören 200 für eine erfolgreiche Anfrage und 404 für eine fehlende Ressource. 401 betrifft die Authentifizierung; 500 weist auf einen Fehler auf der Serverseite hin.

Die umfangreichen Tabellen im Buch eignen sich zum Nachschlagen. Beim Lernen würde ich mich auf das Verhalten von HTTP und häufige Statuscodes konzentrieren. Versionsangaben zu sämtlichen Methoden und vollständige Headerlisten auswendig zu lernen, geht für die Prüfung zu weit.

Apache einrichten und praktisch lernen

Wenn du Apache selbst betreibst, helfen dir die beschriebenen Direktiven und lauffähigen Beispiele dabei, seine Konfigurationsdateien zu verstehen. Gerade beim Einstieg gibt dir das Buch Orientierung zwischen den vielen möglichen Einstellungen. Für die konkreten Schritte beim Installieren greife ich auf aktuelle Internetquellen zurück, weil gedruckte Anleitungen schnell veralten.

Ich empfehle dir, als kleines Praxisprojekt einen eigenen Server aufzusetzen. Dabei lernst du Linux-Befehle und erfährst, wie du Dienste einrichtest. Achte dabei auch darauf, den Server abzusichern. Mit Apache und PHP kannst du beispielsweise WordPress oder TYPO3 betreiben; eine eigene Domain bietet außerdem die Möglichkeit, einen Mailserver einzurichten.

Ein virtueller Server als Übungsumgebung

Für meine Projekte mit Studierenden suche ich nach günstigen virtuellen Servern, auf denen sich eigene Dienste installieren lassen. Dazu gehören etwa Git-Hosting mit Gogs oder das Projektwerkzeug Redmine. Der Server braucht dafür ausreichend Speicher und Rechenleistung.

In den beschriebenen Projekten fiel die Wahl wiederholt auf 1blu. Das in der Episode genannte Einstiegsangebot kostete in den ersten sechs Monaten jeweils einen Euro, danach 7,90 Euro pro Monat. Für das erste Jahr ergaben sich ungefähr 54 Euro; eine Domain und ein SSL-Zertifikat waren enthalten. Bei dauerhaft 7,90 Euro monatlich liegen die jährlichen Kosten bei ungefähr 100 Euro. Diese Preisangaben beziehen sich auf den Stand der Episode.

Virtual Hosts

Mit Virtual Hosts kannst du mehrere Domains mit unterschiedlichen Inhalten auf einem Webserver betreiben. Über ServerName legst du fest, für welche Domain ein Eintrag gilt. DocumentRoot verweist auf das Verzeichnis, aus dem die Website ausgeliefert wird. Zusätzlich lassen sich beispielsweise Zugriffsrechte oder Logdateien pro Domain einstellen.

Zu Virtual Hosts habe ich bereits eine Frage in einer schriftlichen Abschlussprüfung gesehen. Das Prinzip gibt es auch bei anderen Webservern. Für einen Überblick solltest du neben Apache beispielsweise IIS und Nginx kennen. Das Buch erwähnt außerdem Lighttpd und Tomcat, wobei Tomcat eher als Application Server einzuordnen ist. Nginx fehlt in der besprochenen Auflage.

DNS und zentrale Verzeichnisse

DNS und seine Einträge

Im Kapitel zu weiteren Internetdiensten wird DNS anhand von BIND behandelt. Für die Prüfung steht für mich das Prinzip der Namensauflösung im Vordergrund. Die konkreten BIND-Einstellungen sind produktspezifisch.

Die folgenden DNS-Einträge solltest du erklären können:

  • A: Ordnet einem Domainnamen eine IP-Adresse zu.
  • PTR: Ermöglicht die umgekehrte Zuordnung von einer IP-Adresse zu einem Namen.
  • MX: Gibt den Mailserver einer Domain an.
  • CNAME: Verweist als Alias auf einen anderen Namen. Wenn mehrere Namen darüber auf einen gemeinsamen A-Eintrag zeigen, lässt sich die IP-Adresse an einer Stelle ändern.
  • NS: Benennt den zuständigen Nameserver.

Das Buch führt außerdem SOA als weiteren Eintragstyp auf. Konkrete Prüfungsfragen zu diesen Recordtypen habe ich bislang selbst noch keine gesehen; ihre Bedeutung gehört für mich zum IT-Grundwissen.

LDAP

Für Intranetanwendungen kannst du über LDAP, das Lightweight Directory Access Protocol, auf ein zentrales Verzeichnis zugreifen. Das Kapitel zeigt dies anhand von OpenLDAP. Auch Microsoft Active Directory unterstützt LDAP.

Wenn du deine Anwendung an ein solches Verzeichnis anbindest, kannst du vorhandene Benutzerkonten und Gruppen übernehmen. Administrator:innen pflegen die Daten zentral, sodass etwa ein Passwort an einer Stelle geändert wird. Für Benutzer:innen vereinfacht das den Zugang zu mehreren Anwendungen; im Podcast spreche ich dabei auch Single Sign-on an.

Die grundsätzliche Funktion eines Verzeichnisdienstes und seine Vorteile kommen für Prüfungsfragen infrage. Konkrete LDAP-Attribute und produktspezifische Einstellungen würde ich beim Lernen nachrangig behandeln.

Weitere Dienste

Das Buch behandelt auch FTP-Server und den Linux-Dienst inetd. Für meine Praxis haben beide wenig Gewicht. Da reines FTP unverschlüsselt arbeitet, bevorzuge ich verschlüsselte Wege wie Secure Copy oder Dateiübertragung über SSH. inetd würde ich mir genauer anschauen, sobald ein konkreter Einsatz ansteht.

Mit PHP eine Webanwendung bauen

Kapitel 19 führt von Grund auf in PHP ein. Wenn du bisher wenig mit Webanwendungen gearbeitet hast, empfehle ich dir ein kleines eigenes Projekt. Dabei kannst du nachvollziehen, wie der Browser mit dem Webserver zusammenarbeitet und wie die serverseitige Programmiersprache auf eine Datenbank zugreift. Solche Abläufe werden auch in schriftlichen Prüfungen und Fachgesprächen gefragt.

Mit PHP habe ich selbst während meiner Ausbildung und über mehrere Jahre gearbeitet. Die Sprache eignet sich für den Einstieg und wird beispielsweise von WordPress eingesetzt. Im Kapitel findest du unter anderem:

  • PHP-Code in Verbindung mit HTML sowie den Umgang mit übergebenen Parametern.
  • Arrays, einschließlich mehrdimensionaler und assoziativer Arrays. Bei assoziativen Arrays kannst du beispielsweise über Strings als Schlüssel auf Werte zugreifen.
  • Eigene Funktionen und reguläre Ausdrücke.
  • Klassen mit Zugriffsmodifizierern sowie Vererbung und Magic Methods wie __construct oder __toString.

PHP unterstützt sowohl prozedurale als auch objektorientierte Entwicklung. Die Quelltextbeispiele im Buch geben dir einen ersten Einblick. Für vertiefte PHP-Kenntnisse brauchst du ergänzende Literatur.

Datenbanken und Unit-Tests

Beim Datenbankzugriff beschreibt das Buch zunächst ältere prozedurale Funktionen wie mysql_connect und mysql_query. Für ein eigenes Projekt würde ich die anschließend vorgestellte objektorientierte MySQLi-Schnittstelle wählen.

Am Ende des PHP-Teils geht es um Unit-Tests mit PHPUnit. Als Befürworter von Test-driven Development begrüße ich, dass das Kapitel auch Beispiele für Mock-Objekte zeigt. In der beschriebenen PHPUnit-Version erben Testklassen von einer Basisklasse. Meine Aussagen zu diesem Vorgehen beziehen sich auf die im Buch dargestellte Version.

REST im Fachgespräch

Im Unterkapitel zur REST-API kannst du anhand umfangreicher PHP-Beispiele eine lauffähige API nachvollziehen. Die Grundlagen von REST selbst werden auf wenigen Seiten behandelt. Für ein fundiertes Verständnis würde ich ergänzende Literatur durcharbeiten.

Wenn ich REST in einem Abschlussprojekt lese, frage ich im Fachgespräch danach. Du solltest das Architekturprinzip erklären können, sobald du es in deinem Projekt verwendest.

Gestrichene Inhalte der neuen Auflage

Ruby on Rails

Beim Abgleich mit dem Open Book des Rheinwerk Verlags habe ich festgestellt, dass das Kapitel zu Ruby on Rails gestrichen wurde. Rails bietet einen Zugang zum MVC-Prinzip und zu Konzepten, die dir auch in anderen Frameworks begegnen. In den Shownotes verlinke ich das ältere Kapitel sowie meinen Artikel bei Heise Developer, in dem ich Ruby on Rails mit Java EE vergleiche.

CMS, Blog und Wiki

Auch das Kapitel "Weitere Technologien im Überblick" wurde entfernt. Die darin erläuterten Begriffe sind prüfungsrelevant:

  • Mit einem Content Management System kannst du Inhalte einer Website über ein Backend pflegen. WordPress ist ein Beispiel dafür und entstand ursprünglich als Blogsystem.
  • Ein Blog geht auf den Begriff "Weblog" zurück. Seine Beiträge erscheinen üblicherweise mit dem neuesten Eintrag oben. Aus dem ursprünglichen Webtagebuch entwickelte sich eine Form, um Artikel zu veröffentlichen.
  • In einem Wiki lassen sich Inhalte direkt auf der jeweiligen Seite bearbeiten. Die geänderte Fassung wird anschließend sichtbar. Viele Wikis verwenden eine eigene Syntax; Wikipedia basiert beispielsweise auf MediaWiki.

Zu diesen Anwendungsarten gab es bereits Prüfungsfragen. Als Fachinformatiker:in solltest du ihre Merkmale erklären können.

Weitere Inhalte und Verweise

Für den nächsten Buchclub sind die Kapitel 18 und 20 vorgesehen, in denen es um die Frontend-Technologien geht. Zuvor plane ich eine Episode mit Erfahrungen aus mündlichen Prüfungen.

Unter anwendungsentwicklerpodcast.de/66 findest du die erwähnten Links. Auf meiner Website habe ich außerdem Enrico Bassauers Projektpräsentation veröffentlicht. Seine mündliche Prüfung bei der IHK Aachen wurde einschließlich Fachgespräch mit 100 Prozent bewertet. Die Präsentation zeigt einen klassischen Gestaltungsansatz als weiteres Beispiel für deine eigene Prüfung.

Über anwendungsentwicklerpodcast.de/newsletter kannst du dich für meinen kostenlosen Newsletter anmelden, in dem ich wöchentlich auf neue Inhalte und Links hinweise.

Transkription der gesamten Episode

Automatisch erzeugte Transkription der Episode

[0:01] Herzlich willkommen zum Anwendungsentwickler-Podcast, dem Podcast rund um die Ausbildung zum Fachinformatiker für Anwendungsentwicklung.

[0:09] In dieser Episode geht der Buchclub zum Handbuch für Fachinformatiker weiter. Viel Spaß!

[0:20] Hallo und herzlich willkommen zur 66. Episode des Anwendungsentwickler-Podcasts.

[0:26] Mein Name ist Stefan Macke und heute geht es mit dem Buchclub weiter, bzw. einem Buchclub.

[0:32] Ich habe ja noch ein paar mehr vor in Zukunft, aber aktuell geht es ja um das über 1000 Seiten starke Werk von Sascha Kersten, nämlich das Handbuch für Fachinformatiker.

[0:41] Und der letzte Buchclub ist schon ein paar Monate her heute und jetzt geht es weiter mit den nächsten Kapiteln.

[0:48] Und zwar haben wir heute gleich drei Kapitel vor, oder ich habe die vor, besser gesagt, und möchte die gerne durchsprechen.

[0:54] Und die passen alle ganz gut zu einem großen Themenbereich, deswegen bot sich das auch an, die gemeinsam zu behandeln.

[0:59] Und zwar geht es um die Kapitel 14, 15 und 19. Die heißen im Handbuch Server für Web-Anwendungen, weitere Internet-Server-Dienste und Web-Server-Anwendungen.

[1:11] Das heißt, wie man an den Titeln unschwer erkennt, geht es heute um Web-Server, bzw. alles Mögliche, was auf so einem Web-Server läuft.

[1:17] Oder man kann das Web vielleicht auch streichen, allgemein um Server, aber mit Fokus deutlich, sage ich mal, auf Web-Server-Anwendungen.

[1:24] Ja, ich würde sagen, wir steigen direkt ein, verlieren wir keine Zeit. Wir fangen an mit Kapitel 14, Server für Web-Anwendungen.

[1:32] Und dieses Kapitel hat drei Unterkapitel in der neuen Ausgabe des Handbuchs für Fachinformatiker.

[1:38] Und zwar HTTP im Überblick, der Web-Server Apache und PHP installieren und einrichten.

[1:45] Ich habe die Kapitel heute auch schon wieder mit meinen Azubis durchgesprochen, die eigentlich grundsätzlich der Meinung waren, dass sie alle gut verständlich waren und auch interessante Informationen enthielten.

[1:54] Aber auch einige Sachen, die sehr produktspezifisch sind und die eigentlich zum Beispiel auch für so eine Prüfung irrelevant sind.

[2:01] Also wie man zum Beispiel den Apache und PHP installiert, das wird niemals Teil einer Prüfung sein, weil es viel zu sehr spezifisch eben für diese beiden Produkte ist.

[2:09] Für den Web-Server Apache und die Programmiersprache PHP.

[2:12] Und das ist, ich sage jetzt einfach mal ganz blöd, Nischenwissen. Das wird in so einer IHK-Prüfung nicht abgefragt, weil wir nicht davon ausgehen können, dass jeder Anwendungsentwickler da draußen schon mal mit PHP gearbeitet hat oder damit arbeiten können muss.

[2:24] Oder auch mit dem Apache-Server zum Beispiel arbeitet.

[2:27] Es ist sicherlich der verbreitetste Web-Server der Apache und PHP ist auch eine sehr beliebte und verbreitete Programmiersprache.

[2:33] Aber das heißt halt nicht, dass jeder Anwendungsentwickler da draußen damit arbeiten können muss. Das kann ich also nicht voraussetzen.

[2:39] Es werden zwar in der IHK-Prüfung häufig mal Fragen gestellt rund um Web-Anwendungen.

[2:43] Also wie zum Beispiel grundsätzlich so der Ablauf ist, wenn ich meinetwegen eine PHP-Seite auch aufrufe und wie der Web-Server sich verhält und was er wann wie ausliefert und so weiter.

[2:52] Aber die Details einer konkreten Programmiersprache oder eines konkreten Web-Servers, das würde ich in einer IHK-Prüfung nicht erwarten.

[2:59] Ich weiß natürlich nicht, was die Prüfer sich in Zukunft ausdenken und was sie für Fragen stellen.

[3:03] Aber ich kann es mir nicht vorstellen, dass halt spezifisch für einzelne Technologien dort Fragen gestellt werden.

[3:08] Die einzige Ausnahme, die mir vielleicht spontan einfällt und wo ich auch schon weiß, dass es so ist, ist halt HTML, CSS.

[3:14] Wobei das eben nicht eine konkrete Technologie ist, sondern halt schon im Prinzip allgemein Wissen, sage ich mal.

[3:20] Ja, JavaScript wäre vielleicht auch noch so eine Ausnahme.

[3:23] Da könnte ich eventuell mir überlegen, dass das ganz sinnvoll wäre, weil es halt die einzige Möglichkeit ist, um im Frontend irgendwas programmieren zu können.

[3:31] Im Backend haben wir die Wahl zwischen 197 verschiedenen Programmiersprachen, PHP, Java, C-Sharp, Ruby, weiß der Geier was.

[3:37] Aber im Frontend gibt es halt heute nur JavaScript und es gibt keine Alternativen dazu.

[3:42] Zumindest keine, die so weit verbreitet sind, dass sie in irgendeiner Weise relevant wären.

[3:46] Von daher könnte ich mir auch vorstellen, dass irgendwann mal was zu JavaScript vielleicht gefragt wird.

[3:50] Aber ich halte das auch eher für unwahrscheinlich.

[3:53] In der Abschlussprüfung werden halt eher allgemeine Programmierkenntnisse abgefragt und nicht, wie man es konkret mit einer Programmiersprache umsetzt.

[4:00] Auch wenn es vielleicht eine sehr wichtige Programmiersprache ist.

[4:02] Aber man muss ja auch sehen, es gibt noch einen ganzen Haufen Leute, die noch nicht mal irgendwas mit Webanwendungen machen.

[4:07] Und das ist ja auch völlig in Ordnung.

[4:08] Ja, Web ist zwar natürlich ein super interessantes Medium, keine Frage.

[4:12] Aber es gibt so viele Backend-Systeme meinetwegen noch in Kobol da draußen, wo Leute überhaupt wirklich gar nichts mit JavaScript oder HTML zu tun haben.

[4:20] Ich bin der Meinung, dass man HTML heute können muss.

[4:23] Das ist einfach eine Frontend-Technologie, die so weit verbreitet ist, da gibt es auch keine Ausrede, das nicht zu beherrschen.

[4:28] Aber bei JavaScript zum Beispiel, naja, das würde ich mal in Frage stellen.

[4:33] Also ich würde niemals in der Prüfung spezifische Fragen in Richtung Programmiersprachen stellen.

[4:38] Deswegen würde ich einfach mal sagen, dass das PHP-Kapitel zum Beispiel in diesem Fall des Handbuchs für Fachinformatiker für die Prüfung nicht ganz so relevante Inhalte enthält.

[4:48] Und insbesondere auch im ersten Kapitel Server für Webanwendungen jetzt, da geht es halt um die Installation, das Einrichten von PHP.

[4:55] Das sind Dinge, die meiner Meinung nach definitiv niemals in einer Abschlussprüfung abgefragt werden.

[5:00] Aber gehen wir vielleicht jetzt mal der Reihe nach durch.

[5:02] Das Kapitel beginnt ja mit HTTP im Überblick.

[5:05] Und HTTP, das ist ein so wichtiges Protokoll heute, das ganze Internet quasi basiert ja darauf.

[5:10] Ja, ich weiß, es gibt noch mehrere Protokolle, aber ich sag das jetzt einfach mal so.

[5:13] Der zentrale Bestandteil des World Wide Web ist wahrscheinlich über HTTP bzw. HTTPS geregelt.

[5:20] Deswegen ist das auch ein ganz wichtiges Kapitel meiner Meinung nach und auch für jeden Anwendungsentwickler ganz wichtig zu wissen, wie das funktioniert und was die Hintergründe da sind.

[5:29] Die allgemeine Erklärung zum Thema HTTP fanden meine beiden Azubis auch ganz gut verständlich, haben sie gesagt.

[5:35] Und wenn ich mal so in das Kapitel wirklich reinschaue, was da an Inhalten präsentiert wird, würde ich sagen, sind auch einige prüfungsrelevante Sachen dabei.

[5:44] Es geht zum Beispiel direkt los mit dem Ablauf bei der HTTP-Kommunikation.

[5:48] Und ich denke, das sollte jeder Prüfling erklären können.

[5:51] Zum Beispiel, was passiert, wenn ich halt so ein Get-Request an eine Website stelle.

[5:54] Also ganz klassisch, wenn ich im Browser eine URL eingebe und drücke Enter, was passiert dann eigentlich im Hintergrund?

[5:59] Das sollte ich als Anwendungsentwickler auf jeden Fall können, gerade wenn ich auch in aktuelle Entwicklungen schaue und bei den Anwendungen heute überall REST, REST, REST lese.

[6:08] Ja, als Architekturprinzip, das basiert ja auch eigentlich auf HTTP, ist zwar unabhängig vom Protokoll grundsätzlich, aber wird halt häufig mit HTTP umgesetzt.

[6:17] Und deswegen ist es, glaube ich, sehr wichtig zu verstehen, was da passiert.

[6:21] Und ich glaube auch, dass es durchaus prüfungsrelevant ist, sowas mal beschreiben zu können.

[6:26] Auf der anderen Seite auch super praxisrelevant, allein die ganzen HTTP-Methoden, die es gibt, zu kennen.

[6:31] Es gibt halt eben nicht nur GET und POST, was zum Beispiel viele PHP-Entwickler auch standardmäßig verwenden, weil es so einfach in die Sprache eingebaut ist und so gut dort verwendet werden kann.

[6:41] Aber es gibt halt eben noch mehrere. Es gibt noch PUT und DELETE mindestens mal, um die CRUD-Operationen zu vervollständigen, die wir für REST brauchen.

[6:48] Aber es gibt halt eben auch noch andere, sowas wie zum Beispiel OPTIONS oder HEAD und so weiter.

[6:53] Kommen in der Praxis jetzt nicht ganz so oft vor, aber man darf ruhig wissen, dass es da mehrere gibt.

[6:57] Wir wollen ja auch eine fundierte Ausbildung haben und wir gucken nicht nur auf die Oberfläche, was ich im Browser immer sehen kann,

[7:03] sondern ich muss vielleicht auch mal ein bisschen dahinter gucken und wissen, was es denn noch so gibt und wofür die Sachen da sind.

[7:07] Würde ich mir also durchaus anschauen. Ich finde es jetzt nicht ganz so sinnvoll, die Sachen auswendig zu leeren, was es denn alles gibt und seit welcher HTTP-Version und so.

[7:14] Da steht hier zum Beispiel als Tabelle im Kapitel. Das finde ich dann wieder ein bisschen zu viel.

[7:18] Aber grundsätzlich das Verhalten und die Möglichkeiten von HTTP, die sollten eigentlich jedem Anwendungsentwickler geläufig sein.

[7:25] Die nächsten Seiten, da sehen wir dann einen ganzen Haufen an HTTP-Headern, die es gibt.

[7:29] Auch das finde ich für die Praxis super wichtig, gerade wenn wir zum Beispiel in REST unterwegs sind und zwischen JSON, XML und HTTP-Output unterscheiden wollen.

[7:38] Dann funktioniert das in einer vernünftigen Applikation eigentlich ausschließlich über das Setzen des entsprechenden HTTP-Headers, wie zum Beispiel EXCEPT.

[7:45] Ich kann mir jetzt mal nicht vorstellen, dass die ganzen Header irgendwo in der Prüfung mal abgefragt werden,

[7:49] aber ich finde es für die Praxis sehr wichtig, die zu kennen, um zum Beispiel bei solchen Web-Anwendungen auch mal verstehen zu können,

[7:55] warum die zum Beispiel nicht richtig funktionieren oder warum vielleicht ein Cache ausgeliefert wird,

[7:59] anstatt das richtige Dokument, was ich angefordert habe oder wie auch immer.

[8:02] Diese ganzen Sachen kann man sich ruhig mal anschauen.

[8:04] Ich würde sie jetzt nicht auswendig lernen für die Prüfung, das finde ich ein bisschen zu viel.

[8:07] Aber vom Verständnis her finde ich es schon sehr wichtig, dass es, sage ich mal, einem bekannt ist.

[8:12] Genauso das Nächste, was jetzt kommt, das sind die ganzen HTTP-Status-Codes.

[8:16] Auch die würde ich nicht auswendig lernen.

[8:18] Wenn ich hier mal drüber gucke, das sind drei Seiten allein mit Tabellen, welche Status-Codes es so gibt.

[8:22] Ich denke, da sollte man so ein paar wichtige kennen, wie den allseits berühmten 404, Not Found.

[8:27] Aber es gibt zum Beispiel auch den 200er für OK, der eigentlich immer zurückkommt, wenn irgendwas sauber funktioniert hat.

[8:33] Aber eben auch so ein paar Sachen wie zum Beispiel 401 für Unauthorized.

[8:38] Also wenn ich eine Website aufrufe, wo ich mich anmelden muss und ich habe die falschen Daten zum Beispiel angemeldet, eingegeben und so weiter.

[8:46] Da gibt es so ein paar Codes, die kann man sich angucken.

[8:49] 500 zum Beispiel hat man vielleicht auch schon mal gesehen, wenn der Server die Grätsche gemacht hat.

[8:52] Das heißt, es ist ein Fehler, der auf Server-Seite passiert und nicht auf Client-Seite.

[8:55] Und so ein paar Sachen kann man sich da rauspicken.

[8:57] Ich kann mir nicht vorstellen, dass sie so im Detail in der Prüfung abgefragt werden.

[9:01] Aber ich finde es einfach für die Praxis sehr, sehr wichtig, das zu kennen.

[9:05] Auf den nächsten Seiten gibt es dann nochmal wieder ganz viele oder lange Tabellen, sage ich mal, mit allen möglichen HTTP-Headern, die es gibt und wo drin die enthalten sein können.

[9:12] Also im Request und im Response und so weiter.

[9:14] Geht mir auch ein bisschen zu sehr ins Detail und auswendig lernen würde ich die auch nicht.

[9:18] Aber einmal drüber lesen und wissen, was es da gibt, ich glaube, das finde ich ganz sinnig.

[9:23] Das nächste Kapitel, der Web-Server Apache.

[9:25] Da muss ich sagen, das finde ich für die Praxis total wichtig und total interessant.

[9:29] Wenn du zum Beispiel selber einen Web-Server betreibst, dann ist das ganz wichtig zu wissen, wie der Apache sauber zu konfigurieren ist.

[9:35] Keine Frage, das ist natürlich dann das Herzstück deines Web-Servers, falls du mit dem Apache arbeitest.

[9:40] Es gibt natürlich noch Alternativen wie Nginx oder wenn du mit .NET arbeitest, zum Beispiel in IIS.

[9:45] Trotzdem ist der Apache immer noch der verbreitetste Web-Server da draußen.

[9:49] Ganz viele Seiten im Internet laufen darauf.

[9:51] Ich habe keine Ahnung, wie viel genau, aber man hört immer irgendwas von 50 Prozent oder so.

[9:56] Also der ist schon wirklich sehr verbreitet, der Web-Server.

[9:58] Vielleicht sind es sogar noch mehr als 50 Prozent.

[10:01] Von daher hat er schon seine Berechtigung, auch dass hier im Handbuch für Fachinformatiker darauf eingegangen wird.

[10:06] Auch wenn es sehr detailliert ist, sage ich mal.

[10:10] Da sind also sehr viele Konfig-Einstellungen drin und was man machen muss, um den zu installieren.

[10:14] Inklusive des Endpackings, des TAR-Files und so weiter.

[10:18] Und welche Sachen ich angeben muss, wenn ich ihn selber kompilieren will und so.

[10:22] Also das ist schon wirklich fast eine echte Installationsanleitung.

[10:25] Da muss ich sagen, würde ich im Zweifel auch nicht das Handbuch zur Hand nehmen, sondern da würde ich im Internet gucken.

[10:30] Weil die wahrscheinlich schon mit Drucklegung nicht mehr aktuell ist, weil sich da so schnell auch Sachen ändern.

[10:36] Von daher ist eine ganz nette Sache, das mal gelesen zu haben und wie das grundsätzlich funktioniert.

[10:41] In der Praxis, glaube ich, würde ich auf Internetquellen zurückgreifen dafür.

[10:46] Die Apache-Konfiguration, die jetzt als nächstes beschrieben wird, finde ich dann allerdings wieder ganz sinnig.

[10:51] Denn hier sind einfach wichtige Direktiven, die man in der Config-Data eintragen kann, mal zusammengefasst und auch gut erklärt und wofür die da sind.

[10:58] Das finde ich immer ganz gut, denn der Apache hat natürlich gefühlte 2000 Konfig-Einstellungen.

[11:03] Und da weiß ich als Anfänger überhaupt gar nicht, wo ich anfangen soll und was überhaupt wichtig ist.

[11:07] Und dafür finde ich das Buch allerdings sehr gut geeignet hier.

[11:10] Das gibt mir einen guten Überblick über die wichtigsten Sachen, die ich da einstellen kann.

[11:13] Und auch ein paar Beispiele, wie es denn in der Praxis aussehen könnte.

[11:17] Und da habe ich also wirklich lauffähige Beispielblöcke, die ich so in der Config-Datei kopieren könnte oder eintippen könnte.

[11:24] Und dann läuft das Ding eben.

[11:26] Das finde ich also schon sehr, sehr hilfreich.

[11:29] Wenn du übrigens noch keinen eigenen Web-Server betreibst, dann würde ich dir raten, versuch es doch einfach mal.

[11:34] Denn meiner Meinung nach oder meiner Erfahrung nach auch, ist es so, dass du zum Beispiel den Umgang mit Linux-Systemen am besten lernst, wenn du einfach selber einen Server am Laufen hast und dich um so ein Kram kümmern musst.

[11:43] Wie zum Beispiel Web-Server einrichten, PHP installieren, Datenbank aufsetzen und so weiter.

[11:48] Das kann man toll aus dem Buch lesen und auch lernen, aber verstanden hat man es dann glaube ich nicht.

[11:52] Und vor allen Dingen findet man halt nicht raus, was in der Praxis denn wirklich relevante Befehle sind oder wie du zum Beispiel den Server in der Praxis absichern solltest.

[12:00] Das findest du vielleicht dann auch zu spät raus, wenn dein Server dann mal gehackt wurde oder so.

[12:05] Das soll natürlich dann vielleicht nicht passieren.

[12:07] Schau dann, dass du irgendwie ein bisschen auf die Sicherheit auch achtest.

[12:12] Und ich glaube, ich mache auch mal in Zukunft nochmal so eine kleine Podcast-Episode zum Thema, wie richte ich mir einen Server ein.

[12:16] Denn ich finde das eigentlich relativ wichtig, dass man auch als Azubi schon mal anfängt und damit so ein bisschen Praxiserfahrung sammelt.

[12:23] Denn ich finde das ganz normal heutzutage eigentlich, gerade wenn ich IT-Lehrer bin, dass ich zum Beispiel meine eigene Domain betreibe.

[12:29] Und wenn dann nur ein Mail-Server draufläuft, dann will ich eine tolle E-Mail-Adresse admakerit zum Beispiel habe und nicht adgmail oder so.

[12:35] Wo von heute auf morgen der Dienst abgeschaltet werden könnte oder Google liest meine Mails mit, was die sowieso machen.

[12:41] Da finde ich es eigentlich sinnvoller, wenn ich zum Beispiel meine eigene Domain betreibe.

[12:45] Und das ist eine schöne Möglichkeit, um sowas mal umzusetzen.

[12:48] Ich schaffe mir einen Server an, installiere da Mail-Server, Web-Server und so weiter.

[12:52] Und genau für diesen Anwendungsfall finde ich hier das Kapitel sehr gut geeignet, weil da wirklich mal schön erklärt wird und gut zusammengefasst wird,

[12:58] auch wie gesagt die wichtigsten Sachen, um den Apache-Server ans Laufen zu kriegen.

[13:02] Und dann eben gleich auch im Folgekapitel noch PHP drüber zu installieren, sodass ich also wirklich eine vollständige Web-Anwendung,

[13:08] wie zum Beispiel WordPress oder Typo3 oder was auch immer ich da laufen lassen will, dort eben installieren und laufen lassen kann.

[13:15] Falls du jetzt übrigens tatsächlich auf den Geschmack gekommen bist und willst vielleicht mal mit einem Server rum-experimentieren,

[13:21] dann weiß ich natürlich, dass Azubis da jetzt nicht die richtige Kohle in der Tasche haben, um da einen riesen Server zu kaufen.

[13:27] Wenn ich mir jetzt einen echten Root-Server zum Beispiel, also ein richtiges Stückchen Hardware irgendwo im Rechenzentrum kaufe,

[13:31] da bin ich locker 60 Euro im Monat los.

[13:34] Es gibt sicherlich auch günstigere, aber wenn ich einen vernünftigen haben will, sage ich mal um die 50 Euro im Monat.

[13:38] Und das ist natürlich schon eine Stange Geld, wenn ich gerade vielleicht noch ein bisschen Ausbildungsvergütung bekomme.

[13:42] Deswegen, wenn ich zum Beispiel mit meinen Studierenden Projekte mache, was ich eigentlich jedes Jahr immer wieder tue,

[13:48] so ein kleines Web-Projekt, wo sie ein bisschen was programmieren müssen,

[13:50] dann suchen wir eigentlich jedes Jahr immer nach dem günstigsten, echten Server, in Anführungszeichen.

[13:55] Also wir wollen jetzt nicht so ein bisschen Webspace haben, wo ich ein PHP-Script hochlade und dann bin ich fertig,

[14:00] sondern wir brauchen natürlich einen echten Web-Server, wo man zum Beispiel auch ein eigenes Git-Hosting installieren kann,

[14:04] wo ich Ruby on Rails zum Beispiel für das Projekt-Management-Werkzeug Redmine installieren kann,

[14:09] wo ich mir alles Mögliche installieren kann, was ich so brauche, um eben so ein kleines Projekt dabei durchzuführen.

[14:15] Und deswegen suchen wir dann immer nach einem V-Server, also einem Virtual-Server,

[14:19] jetzt nicht den richtigen echten Root-Server, der als Hardware irgendwo rumsteht, der ist einfach viel zu teuer und das braucht man auch nicht,

[14:25] sondern nach einem kleinen virtuellen Server, der möglichst günstig ist und trotzdem eine gute Leistung bringt,

[14:29] sodass ich da also auch ein paar Anwendungen drauf laufen lassen kann.

[14:31] Es reicht halt nicht, wenn ich irgendwie eine statische HTML-Seite damit ausliefern kann,

[14:34] sondern ich brauche zum Beispiel jetzt für unser klassisches Setup, was wir aktuell immer benutzen,

[14:38] oder was ich immer benutze in den Projekten, dass wir halt zum Beispiel Go für den GOGS, den Go-Git-Service,

[14:44] also ein Git-Server, der da läuft, das ist eine eigene Programmiersprache, ein eigener Server,

[14:47] dann haben wir einen Apache-Web-Server, vielleicht auch noch einen Java-Application-Server im Hintergrund

[14:52] und all solche Sachen, da braucht man schon ein bisschen Leistung.

[14:55] Wir ziehen jetzt auch nicht so viel Speicher und CPU, aber ein bisschen braucht man halt schon

[14:59] und wir gucken dann immer jedes Jahr, was ist denn die günstigste Alternative für einigermaßen vernünftige Leistung

[15:04] und in den letzten Jahren, ich sag mal in den letzten, ja ich glaub fünf Jahren bestimmt schon,

[15:08] sind wir eigentlich immer wieder bei 1Blue gelandet.

[15:10] Von daher, wenn du mit etwas günstigem anfangen willst, einfach nur so ein bisschen rumexperimentieren willst vielleicht,

[15:15] dann kann ich dir auf jeden Fall diesen Einstieg wie Server von 1Blue empfehlen.

[15:19] Der ist aktuell, aber ehrlich gesagt auch schon seit Jahren haben die dieses Angebot,

[15:23] ist das so, dass der in den ersten sechs Monaten 1€ im Monat kostet, also wirklich lächerlich

[15:28] und dann in den nächsten sechs Monaten kostet er, ich glaub den Normalpreis von 7,90€,

[15:33] aber wenn ich das halt rumrechne auf ein Jahr, dann lande ich so, ich glaub bei 54€ oder so.

[15:39] Für ein Jahr einen echten V-Server, mit dem ich alles machen kann für 50€, sag ich mal,

[15:43] ich glaub das ist ein ganz gutes Angebot und der hat auch einigermaßen Power.

[15:47] Da ist übrigens sogar eine Domain und ein vernünftiges SSL-Zertifikat schon mit drin,

[15:51] also nicht hier dieses Let's Encrypt Zeug, ich will das gar nicht schlecht reden, ich benutze das selber auch,

[15:55] aber für eine echte Website könnte ich sogar das vernünftige SSL-Zertifikat für ein Jahr da benutzen

[16:00] und für 50€, ich glaube das bietet sich an, um da mal ein bisschen rumzuexperimentieren.

[16:05] Meine beiden Azubis haben den Server übrigens auch gebucht, weil er einfach eben so günstig ist.

[16:09] Danach, wenn man ihn weiter betreibt, wird er dann ein bisschen teurer, er kostet 7,90€ im Monat,

[16:13] das sind ungefähr so 100€ im Jahr, immer noch relativ günstig,

[16:17] aber vielleicht nur fürs Rumexperimentieren für einen Azubi dann auch wieder ein bisschen zu teuer,

[16:21] aber kannst du dir mal überlegen, vielleicht ist es was für dich und ich mach demnächst auf jeden Fall nochmal

[16:25] eine Episode, wie man denn einen Webserver vernünftig aufsetzt oder woran man denken muss,

[16:29] denn das mach ich eigentlich immer als kleines Mini-Projekt, sowohl mit meinen Studierenden als auch mit meinen Azubis immer,

[16:34] damit sie mal in der Praxis ein bisschen was machen müssen.

[16:36] Dann lernt man halt auch schön Linux und wie man Sachen installiert und entpackt

[16:39] und alle diese Dinge, die in Windows zum Beispiel selbstverständlich sind,

[16:42] Rechtsklick und dann bin ich fertig, das ist auf Linux halt eben ein bisschen schwieriger

[16:45] und das lernt man meiner Meinung nach am besten, wenn ich das mal wirklich machen muss

[16:48] mit einem konkreten Projekt im Hintergrund.

[16:50] Okay, das war der Ausflug zum Thema Webserver, dann kommen wir mal zurück zum Inhalt,

[16:54] das eigentliche Inhaltshäuser, nämlich dem Buchclub.

[16:57] Ich bin jetzt mal die ganzen Seiten durchgegangen hier mit der Apache-Konfiguration,

[17:01] wie gesagt, ist eine nette Sache, für die Prüfung allerdings irrelevant,

[17:04] bis auf einen Bereich, der dann am Ende noch kommt, und zwar die Virtual Hosts.

[17:08] Das habe ich tatsächlich auch schon mal in der schriftlichen Abschlussprüfung gesehen,

[17:11] dass da eine Frage zu dran kam, was das ist und wofür man das braucht und so weiter.

[17:15] Kurze Erklärung, ein Virtual Host ist, wie der Name schon sagt, ein virtueller Host,

[17:20] das heißt, ich kann auf einem Webserver, dem Apache, den ich auf meinem Server installiert habe,

[17:24] mehrere Hosts, also mehrere Domains zum Beispiel, laufen lassen.

[17:28] Wenn ich meinetwegen, wie in meinem Beispiel, stefanmacke.de und macke.it habe,

[17:33] und ich möchte auf beiden Domains unterschiedlichen Inhalt veröffentlichen,

[17:36] dann kann ich das mit solchen Virtual Hosts machen.

[17:38] Ich sage dem Webserver einfach, lausche bitte an meinetwegen jeder IP auf Port 80

[17:43] und wenn dann ein Request reinkommt für die Domain macke.it, dann lieferst du bitte das eine aus

[17:48] und für die andere Domain lieferst du das andere aus.

[17:51] Sieht im einfachsten Fall einfach so aus, dass ich in der Virtual Host-Datei sage,

[17:55] dein Server Name ist zum Beispiel macke.it und dein Document Root,

[18:00] da wo also die Website auf der Festplatte liegt und von wo sie ausgeliefert wird,

[18:04] das ist dann ein entsprechendes Verzeichnis.

[18:06] Das sind im Prinzip meine beiden wichtigen Einstellungen.

[18:08] Damit verdrate ich also im Prinzip einen Domain-Namen mit einer konkreten Website,

[18:13] die auf meinem Server irgendwo im Dateisystem liegt.

[18:16] Und das ist eigentlich ein Virtual Host.

[18:18] Ich kann jetzt in diesem Kontext noch ein bisschen mehr konfigurieren,

[18:20] zum Beispiel Log-Files und Zugriffsrechte und weißt ja geil was.

[18:23] Also alles, was ich, nicht alles, aber das meiste, was ich auch im normalen Apache-Server so konfigurieren würde,

[18:28] könnte ich hier selektiv für diese eine Domain zum Beispiel einstellen.

[18:32] Und dieses Prinzip, das gibt es eigentlich bei allen Webservern,

[18:35] das heißt dann vielleicht hier und da mal ein bisschen anders,

[18:37] aber ich habe tatsächlich schon mal genau zu diesem Bereich Virtual Host in der Prüfung eine Frage gesehen.

[18:41] Also das könnte man sich mal angucken, auch warum das sinnvoll ist

[18:45] und worauf man vielleicht achten muss bei der Konfiguration.

[18:47] Und dafür finde ich dieses Kapitel eigentlich ganz gut.

[18:49] Da ist also auf ein paar Seiten auch erklärt, was das bringt und wie das funktioniert.

[18:53] Übrigens auch am Ende des Kapitels noch mal ein kurzer Überblick über andere

[18:57] Webserver, die es so gibt, also den IIS oder zum Beispiel den Tomcat, wobei der

[19:01] eigentlich schon eher ein Application Server ist. Was ich hier noch vermisse in

[19:04] der aktuellen Auflage ist allerdings der Nginx, denn der hat schon N-G-I-N-X

[19:10] geschrieben. Nginx, ja, da wird Nginx ausgesprochen, der inzwischen auch schon

[19:15] relativ verbreitet, oder verbreitet will ich nicht sagen, aber der auf jeden Fall

[19:18] so ein bisschen Hype gerade ist für viele Projekte, die nutzen den

[19:23] als Host, weil er einfach vielleicht auch ein bisschen schneller ist oder

[19:25] für bestimmte Konfigurationen besser reichen ist als der Apache. Den vermisse

[19:29] ich hier noch in der Liste und es sind auch nur ein paar Sätze, um auf die

[19:32] Webserver einzugehen, aber so einen groben Marktüberblick sollte man schon

[19:35] haben. Das könnte ich mir auch gut vorstellen in der Abschlussprüfung, sowas

[19:38] wie, nennen sie ein paar Webserver. Da müsste dann halt sowas kommen wie IIS,

[19:42] Nginx, Lite, HTTPD zum Beispiel steht hier noch drin oder der Tomcat und so

[19:47] weiter. Gut, dann haben wir das Kapitel Webserver bzw. Apache abgehakt und das

[19:51] Nächste ist dann eben die Installation oder das Einrichten von PHP.

[19:55] Hatte ich eben schon gesagt, finde ich nicht ganz so sinnvoll, deswegen will ich

[19:59] da auch gar nicht im Detail darauf eingehen, die ganzen Einstellungsmöglichkeiten

[20:02] in der PHP-INI und so weiter und es sind insgesamt auch nur ein paar Seiten zur

[20:06] PHP-Installation. Von daher, das halte ich für die Prüfung, finde ich

[20:11] nicht so relevant, sage ich mal, von daher gehe ich da mal drüber hinweg. Und schon

[20:15] sind wir beim nächsten Kapitel, das ist Kapitel 15, das sind die weiteren

[20:18] Internet-Server-Dienste. Ja, was könnte denn noch dazugehören, außer so einem

[20:22] Webserver, was läuft denn da noch? Mail-Server zum Beispiel, der wird hier

[20:25] allerdings nicht behandelt im Kapitel und ja, was fällt einem da noch so ein im

[20:29] Internet? Hm, DNS, jawohl! Und das ist auch gleich das, womit es hier in dem Kapitel

[20:33] losgeht, nämlich Namens- und Verzeihungsdienste. Und das geht direkt

[20:36] los mit dem DNS-Server Bind, das ist der Berkeley Internet Naming Domain, das ist

[20:41] der Standard-DNS-Server, sage ich mal, der auf Linux immer benutzt wird. Alles, was zu

[20:46] diesem konkreten Produkt wieder im Kapitel steht, finde ich nicht

[20:50] prüfungsrelevant, würde ich mir auch nicht unbedingt im Detail anschauen oder

[20:53] lernen, aber die Konzepte dahinter und das grundsätzliche Prinzip von DNS-Servern,

[20:58] das sollte dir auf jeden Fall geläufig sein, auch für die Prüfung.

[21:01] DNS ist ein zentrales Werkzeug, was nicht nur im Internet, sondern auch im

[21:05] Internet eigentlich überall benutzt wird zur Namensauflösung und das muss man

[21:09] beherrschen, meiner Meinung nach. Das ist absolutes Grundwissen für jeden IT-ler,

[21:12] auch für Anwendungsentwickler. Das Kapitel enthält natürlich konkrete

[21:17] Hinweise jetzt, wie ich sowas im Bind konfiguriere, aber es gibt zum Beispiel

[21:20] auch eine schöne Liste der erlaubten oder möglichen DNS-Einträge, die es

[21:25] überhaupt so gibt. Zum Beispiel den A-Eintrag oder den PTR oder den SOA oder

[21:30] den CNAME und MX-Record und solche Sachen. Die muss man eigentlich schon

[21:34] kennen und auch wissen, wofür die da sind. Gehen wir die mal ganz kurz durch. Der

[21:38] A-Eintrag, das ist der Standard-Eintrag, sage ich mal, von Domain auf IP-Adresse

[21:44] auflösen. Der umgekehrte Part von IP wieder zurück zu Domain wäre der PTR,

[21:50] der Pointer-Eintrag. Dann haben wir noch den MX-Record, das steht für einen Mail-

[21:54] Server. Das heißt, wenn meine Domain keinen MX-Record hat im DNS, dann kann

[21:59] man mir keine Mails zustellen. Das wäre doof. Ein CNAME-Eintrag ist ein Alias für

[22:03] einen A-Eintrag. Das heißt, schauen wir uns vor, ich habe einen Server mit einer IP-Adresse,

[22:07] da habe ich 70 Domains drauflaufen, dann hätte ich 70 A-Einträge, die alle auf

[22:11] diese IP-Adresse zeigen. Wechsle ich jetzt meinen Server, muss ich 70 Einträge ändern

[22:16] und die IP-Adresse anpassen. Stattdessen könnte ich einen Eintrag machen, einen

[22:20] A-Eintrag, der auf eine IP-Adresse zeigt und dann könnte ich 69 Einträge vom

[22:27] Typ CNAME machen, also Alias-Einträge, die einfach auf den ersten A-Eintrag

[22:31] zeigen. Das heißt, ich habe eigentlich eine Zuordnung zwischen Name und Name,

[22:35] also einen Namen, der auf einen anderen Namen zeigt und das wäre halt ein Alias.

[22:40] Das hat jetzt den Vorteil, dass ich diese IP-Adresse nur noch an einer Stelle ändern

[22:43] muss, wenn ich das denn irgendwann tatsächlich mal tun muss, was jetzt nicht so häufig ist

[22:47] wahrscheinlich. Dann gibt es noch einen NS-Eintrag, das wäre der Name-Server. Das

[22:51] heißt, welcher DNS-Server ist denn überhaupt zuständig für meine Domain? Das kann ich

[22:55] natürlich auch im DNS hinterlegen und so weiter. Also die sollte man schon mal

[22:58] gehört haben und vielleicht auch erklären können. Ob sie konkret in der

[23:01] Prüfung abgefragt werden, weiß ich nicht, habe ich so noch nicht gesehen, finde ich

[23:04] aber absolutes Grundwissen muss man beherrschen, meiner Meinung nach.

[23:08] Das nächste Kapitel, das ist der Verzeichnisdienst LDAP, also Lightweight

[23:12] Directory Access Protocol und hier wird es am Beispiel von OpenLDAP gezeigt.

[23:17] Auch hier wieder gleicher Hinweis, das konkrete Produkt würde ich mir nicht

[23:21] angucken, aber die allgemeine Funktionalität von LDAP finde ich auch

[23:24] sehr, sehr wichtig, gerade wenn wir zum Beispiel Anwendungen fürs Intranet

[23:28] entwickeln. Da ist es eigentlich so, dass keiner mehr eine eigene Benutzerverwaltung

[23:31] schreibt. Das ist, wenn wir zum Beispiel einen Active Directory haben, um in

[23:34] dem Microsoft-Umfeld, dann binde ich meine Anwendung ans LDAP an, nämlich an

[23:37] das Active Directory, was nur eine Implementierung von LDAP ist,

[23:40] beziehungsweise das Protokoll unterstützt und dann brauche ich nicht

[23:43] selber irgendwelche Tabellen und Rechte und Gruppen und weiß der Geier pflegen,

[23:46] sondern ich ziehe mir das einfach aus dem Active Directory und das ist wirklich

[23:49] super praxisrelevant. Also ich glaube alle unsere Internetanwendungen, die wir

[23:52] gebaut haben oder die wir im Einsatz haben, hängen am LDAP und alles andere

[23:56] wäre in der heutigen Zeit meiner Meinung nach völlig bescheuert, weil ich

[23:59] halt eben 57 Benutzerverwaltungen pflegen muss, anstatt wenn ich zum

[24:03] Beispiel ein Passwort ändern will, ich das eben nur noch an einer Stelle ändere.

[24:06] Und so habe ich natürlich einen großen Vorteil, sowohl als Admin, ich muss das

[24:10] nur noch an einer Stelle pflegen, aber auch die Benutzer natürlich haben so ein

[24:12] Single-Sign-On, müssen sich nur ein Passwort merken und so weiter. Also finde

[24:16] ich heute absoluten Standard, seine Anwendung ans LDAP anzubinden.

[24:19] Ob es jetzt ein Microsoft Active Directory ist oder irgendeine andere

[24:22] Implementierung, wie hier zum Beispiel das OpenLDAP, ist eigentlich wurscht. Aber wie

[24:25] das grundsätzlich funktioniert und wie man dann zum Beispiel so eine LDAP-Abfrage

[24:28] gestaltet mit diesen ganzen komischen Attributen und Namen und so weiter, das

[24:32] ist hier ganz nett erklärt im Kapitel. Das würde ich mir mal angucken. Finde ich

[24:36] nicht ganz so relevant für die Prüfung, habe ich jetzt noch nie was zu gehört,

[24:39] gerade auch zu den konkreten Attributnamen zum Beispiel. Aber die

[24:43] grundsätzliche Funktionalität von LDAP sollte dir schon bekannt sein und da kann

[24:47] ich mir auch gut vorstellen, dass es dazu Prüfungsfragen gibt. Zum Beispiel, was ist

[24:51] denn der Vorteil von einem zentralen Verzeichnisdienst? Warum mache ich so

[24:54] was wie Active Directory? Und da haben wir ja gerade schon drüber geredet, zentrale

[24:57] Verwaltung spart natürlich Ressourcen, Single-Sign-On und so weiter.

[25:01] Ja und der Rest des Kapitels, das letzte Unterkapitel ist sonstige Server. Da

[25:07] wird hier zum Beispiel von FTP-Servern geredet und dem INET-D finde ich für die

[25:11] Prüfung relevant und auch für die Praxis ehrlich gesagt nicht ganz so

[25:15] interessant. FTP-Server, wer die noch einsetzt? Ja, also ich setze es nicht mehr

[25:19] ein. Ich weiß nicht, wer es noch tut. Es ist unsicher, es ist nicht verschlüsselt.

[25:22] Ich würde auf jeden Fall zu was anderem tendieren, zum Beispiel Secure Copy oder

[25:28] FTP-Over-SSH oder wie auch immer. Aber einen reinen FTP-Server zu betreiben, würde ich

[25:33] heute einfach nicht mehr machen. Und der INET-D, das ist ein toller Dienst unter

[25:36] Linux. Den muss ich vielleicht auch mir mal angeguckt haben, wenn ich den

[25:40] tatsächlich brauche. Aber in der Praxis, glaube ich, ist er nicht mehr allzu weit

[25:44] verbreitet und auch für die Prüfung ist er jetzt nicht unbedingt so interessant.

[25:48] Also von daher, die beiden Sachen würde ich oder könnte man, glaube ich, getrost

[25:52] überspringen. Da verpasst man nicht allzu viel. So, dann kommen wir schon zum

[25:56] letzten großen Kapitel. Na ja, schon ist gut. Wir haben ja schon einiges hier

[25:59] durchgesprochen heute. Aber das nächste Kapitel, Nummer 19, das ist jetzt

[26:04] Web-Server-Anwendungen und das hat eigentlich nur einen wichtigen Inhalt,

[26:08] nämlich PHP. Das geht jetzt also rauf und runter mit PHP. Ist jetzt also so ein

[26:12] bisschen so eine, wie soll man sagen, Programmiersprachenschulung. Also

[26:16] wirklich eine Einführung in PHP, wo es bei Null losgeht. Und da muss ich jetzt

[26:20] sagen, hatte ich am Anfang schon gesagt, ich finde es jetzt nicht ganz so relevant.

[26:24] Also man muss nicht PHP beherrschen als Anwendungsentwickler. Man muss

[26:28] vielleicht das Prinzip von Web-Anwendungen beherrschen. Und wenn man

[26:31] jetzt zum Beispiel noch nie eine Web-Anwendung gebaut hat, würde ich auch

[26:33] jedem Entwickler mal empfehlen, das zu tun. Und wenn es auch nur ein kleines

[26:36] Spielprojekt ist, einfach um mal zu verstehen, wie solche Anwendungen

[26:39] funktionieren. Denn dafür kann natürlich auf jeden Fall auch, oder dazu kann es

[26:44] auch Fragen geben im Fachgespräch und natürlich auch in der schriftlichen

[26:47] Prüfung. Gab es auch schon ganz oft, wie oft halt so, wie oft, wie genau zum

[26:51] Beispiel der Ablauf ist, wenn ich so eine Website aufrufe. Wie arbeiten da zum

[26:54] Beispiel die Programmiersprache, die Datenbank, der Web-Server und der Browser

[26:57] zusammen? Solche Sachen muss man schon erklären können. Das ist Allgemeinwissen.

[27:00] Wie es in der konkreten Programmiersprache aussieht, ist dann für die Prüfung, wie

[27:05] gesagt, nicht relevant. Aber ich finde PHP ist eine schöne Einstiegssprache. Ich

[27:09] habe selber auch jahrelang PHP programmiert, auch gerade meine Ausbildung

[27:11] zum Beispiel. Und die kann man wirklich gut lernen, die Sprache. Die ist super

[27:16] verbreitet. Also auch hier wieder eine ausgedachte Zahl, 50 Prozent oder noch

[27:20] mehr. Also hier würde ich sogar sagen, noch mehr Prozent des Internets läuft auf

[27:24] PHP. Wenn man sich alleine mal die großen Anwendungen, wie zum Beispiel WordPress

[27:27] anguckt, wo wirklich fast, ich glaube, 80 oder 90 Prozent aller Blogs weltweit

[27:30] drauf laufen. Allein das ist schon einfach eine riesengroße Hausnummer. Und auch

[27:35] große Firmen, wie zum Beispiel Facebook, setzen auf PHP. Also es ist einfach eine

[27:39] super verbreitete Programmiersprache im Web. Und von daher, wenn du dir irgendwas

[27:43] angucken willst, wo die Chance besteht, dass du das irgendwann mal tatsächlich

[27:46] in der Praxis auch nutzen wirst, dann guck dir PHP an. Also ich glaube, ein

[27:49] größeren Marktanteil an Programmiersprachen im Internet wirst du

[27:52] tatsächlich nicht finden. Und genau dafür ist das Kapitel auch super geeignet.

[27:56] Da gibt es also einen schönen Einstieg, wie PHP funktioniert und wie man

[28:01] die Tags schreibt, damit man den PHP-Code in HTML einblenden kann und

[28:04] umgekehrt und so weiter. Also alle diese Sachen sind da drin.

[28:07] Es ist auch ein Datenbankzugriff drin beschrieben, wie man HTML erzeugt halt

[28:11] und einfach so ein paar Standardsachen, Parameterübergabe und so weiter. Das

[28:14] findet man dort alles. Das heißt, es ist eine schöne, kompakte Einführung in PHP.

[28:18] Kann man gut benutzen, um mal so ein bisschen rumzuexperimentieren und so

[28:21] einen kleinen Einstieg in die Sprache zu finden, wie ich meine. Also mir hat das

[28:26] ganz gut gefallen, auch wenn es für mich natürlich jetzt nicht mehr ganz so viele

[28:29] Neuigkeiten gab. Ich kannte den ganzen Kram halt schon von früher, sage ich mal.

[28:32] Aber ich sage mal, alle wichtigen Sachen sind drin. Ich scrolle nochmal hier kurz

[28:36] durch das Kapitel durch. Was haben wir da? Arrays sind da betrachtet und auch

[28:41] natürlich mehrdimensionale Arrays und also assoziative Arrays werden in PHP

[28:46] häufig benutzt. Assoziative Arrays, das heißt, dass ich ein beliebiges Objekt

[28:51] als Schlüssel in einem Array benutzen kann. Also habe ich im Prinzip so eine

[28:54] Art HashMap, wenn du das aus Java vielleicht kennst, wo halt ein Schlüssel

[28:57] einem Wert zugewiesen wird und die Dinger heißen halt in PHP assoziative

[29:03] Arrays. Da kann ich zum Beispiel Strings als Schlüssel benutzen, um dann eben auf

[29:06] die Werte zuzugreifen. Ja, es werden verschiedene ganz wichtige

[29:11] Funktionen vorgestellt. Es wird ein bisschen auf reguläre Ausdrücke

[29:15] eingegangen, wie man Kommentare schreibt und selber Funktionen programmiert und

[29:19] so weiter. Das ist da drin. Da gehen wir mal ein bisschen schneller drüber jetzt

[29:22] hier. Und es gibt auch ein kleines Kapitel zu Klassen und Objekten. Finde

[29:25] ich auch sehr wichtig. PHP, wenn du dich jetzt noch nicht so intensiv mit der

[29:28] Sprache auseinandergesetzt hast, die hat mehrere Paradigmen, sage ich mal. Das ist

[29:32] so eine Multiparadigma-Sprache. Die kommt auf jeden Fall aus der

[29:36] prozeduralen Entwicklung. Im Hintergrund läuft auch, glaube ich, C. PHP war

[29:40] ursprünglich einfach nur so ein Aufsatz auf C, damit man ein bisschen netter

[29:43] programmieren kann und eben nicht mit C seine Web-Anwendungen bauen muss. Aber

[29:48] im Laufe der Zeit kam da schon einiges dazu und inzwischen kann man auch auf

[29:51] jeden Fall sauber objektorientiert mit PHP entwickeln. Man muss das nicht, aber

[29:55] man kann das. Und hier gibt es auch eine kleine Einführung, wie ich das dann mit

[30:00] PHP tun würde. Also wie ich eine Klasse definiere, wie die Zugriffs-

[30:03] modifizierer sind und so weiter. Das wird dann hier einmal vorgestellt. Und auch

[30:07] wirklich mit viel Quelltext als Beispiel. Also ich scrolle hier auch mal durch. Da habe ich

[30:11] schon ein, zwei, drei Seiten, wo mal so eine Klasse im Quelltext dargestellt ist.

[30:14] Also da kann man schon einiges rausholen, sage ich mal. Wird auch auf Vererbung

[30:18] noch eingegangen und so ein bisschen so Besonderheiten von PHP, wie zum Beispiel

[30:21] die Magic Methods, wo also sowas wie unterstrich unterstrich construct und

[30:26] unterstrich unterstrich toString von solche Sachen beschrieben werden. Also

[30:30] es gibt schon wirklich einen guten Überblick über die Sprache. Es gibt dann

[30:34] auch noch eine Einführung in die Arbeit mit Datenbanken. Das hat mir auch erst

[30:39] mal ganz gut gefallen. Ich hätte jetzt aber auf, ich hätte es ein bisschen anders

[30:43] gemacht. Also im Buch ist es jetzt so, dass noch die in Anführungszeichen

[30:47] klassische Methode beschrieben wird, wie ich auf die Datenbank zugreife mit

[30:51] Funktionen. Das heißt prozedural. Ich habe also so ein paar Funktionen, wie zum

[30:55] Beispiel MySQL Connect, MySQL Select Database, MySQL Query und so weiter.

[31:01] Das ist so das, was ich noch, ja wie lange ist das her? Zehn Jahre? Noch länger

[31:06] wahrscheinlich. Wo ich PHP gelernt habe, war das noch der Standard, wie das halt

[31:09] in den PHP-Büchern damals beschrieben wurde. Würde ich heute aber nicht mehr so

[31:12] machen. Ich würde heute die objektorientierten Möglichkeiten von PHP

[31:16] ausschöpfen, wie es andere Programmiersprachen halt auch umsetzen.

[31:19] Das ist in PHP heute schon sehr ähnlich möglich und da würde ich also nicht mehr

[31:22] auf diese Funktional, Funktional ist es ja gar nicht, sondern auf diese prozedurale

[31:26] Programmierweise eingehen. Von daher, das Kapitel würde ich vielleicht ein bisschen

[31:30] überarbeiten. Prozeduralen Kram würde ich wegschmeißen und gleich auf die

[31:33] objektorientierte Geschichte gehen, was übrigens dann auch im nächsten

[31:38] Unterkapitel gemacht wird. Da gibt es die MySQL-I-Schnittstelle und die ist

[31:42] objektorientiert und damit würde ich dann auf jeden Fall versuchen, mein Projekt

[31:46] umzusetzen und nicht mit der prozeduralen Variante. Die ist dann doch

[31:49] schon, wie ich finde, etwas veraltet. Die würde ich heute jetzt nicht mehr

[31:52] unbedingt einsetzen. Was ich sehr schön fand an dem Kapitel ist, dass ganz am Ende

[31:56] nochmal auf Unit-Tests eingegangen wird. Das finde ich richtig klasse. Ich bin ja

[31:59] so ein leidenschaftlicher Verfechter vom Test-Driven-Development und das kann man

[32:03] auch in PHP machen. Ist vielleicht nicht ganz so schön und so einfach wie zum

[32:06] Beispiel in Java, aber es gibt zum Beispiel eine PHP-Unit, ein tolles Framework, um

[32:10] ganz normal Unit-Tests schreiben zu können. Ist vom Einsatz her, so wie es

[32:15] jetzt auch im Kapitel beschrieben wird, so ein bisschen auf dem Stand von JUnit 3.

[32:18] Das heißt, ich muss zum Beispiel meinen Test-Case von einer Klasse erben lassen,

[32:22] anstatt dass ich zum Beispiel wie in JUnit 4 mit so Annotationen arbeiten

[32:26] kann. Oder wenn du zum Beispiel NUnit im .NET-Umfeld kennst, dann machst du ja an

[32:30] die Klasse so ein Attribut dran. Zum Beispiel Test-Fixture schreibt man dann

[32:34] als Attribut an die Klasse und das geht hier in PHP-Unit noch nicht. Zumindest

[32:37] nicht in der Version, die hier im Buch beschrieben wird. Ich habe da aber auch

[32:40] keinen Überblick. Ich weiß nicht, ob sowas heutzutage schon mit Kommentaren oder so

[32:43] vielleicht in PHP auch möglich ist. Im Buch wird auf jeden Fall noch mit

[32:47] der Basisklasse PHP-Unit-Framework-Test-Case gearbeitet. Ist so ein

[32:53] bisschen einschränkend. Es geht halt mit Annotationen und so in Java ein bisschen

[32:56] schöner. Aber Hauptsache, wir können überhaupt testen in PHP. Unit-Tests sind

[33:00] super wichtig und von daher finde ich es eine tolle Sache, dass das hier auch im

[33:03] Kapitel behandelt wird und auch ein paar Beispiele gezeigt werden. Zum Beispiel

[33:06] auch wie man Mock-Objekte erzeugt. Das finde ich auch ein wichtiges Konzept, was

[33:10] ich häufig in Unit-Tests brauche. Von daher insgesamt also eine runde Nummer.

[33:14] Ich glaube, man kann mit dem Kapitel schon mal die wichtigsten Funktionen und

[33:18] die Funktionsweise von PHP nachvollziehen und auch schon

[33:22] ein bisschen in die Tiefe reingehen mit den Unit-Tests. Also von daher, ich kann

[33:26] das als Einstieg gut empfehlen. Wenn du jetzt wirklich PHP lernen willst, reicht

[33:29] das natürlich nicht aus. Das ist klar, das ist dann zu dünn. Da brauchst du ein

[33:32] separates Buch für PHP. Kann ich dir jetzt aktuell auch nichts empfehlen, weil

[33:35] das schon ein paar Jahre her ist, dass ich damit gearbeitet habe. Aber für

[33:38] so einen ersten Einstieg, glaube ich, tolle Sache. Wenn du mal eben so ein

[33:41] bisschen über PHP lernen willst, dann arbeite das mal durch. Dafür ist es

[33:45] wirklich gut geeignet. Dann kommt das nächste Unterkapitel. Das

[33:48] heißt, eine REST-API implementieren. REST ist super wichtig heute, würde ich

[33:54] mir unbedingt angucken. Allerdings ist mir da das Kapitel, muss ich sagen, ein

[33:57] bisschen zu dünn. Da ist sehr viel PHP-Kram wieder drin. Es geht hier also

[34:01] wirklich darum, wie man eine REST-API implementiert mit PHP. Man hat also

[34:05] wirklich auch einen Praxisansatz und sieht nachher auch eine lauffähige

[34:08] Applikation oder sage ich mal die API. Aber da geht mir das Buch ein bisschen zu

[34:13] wenig auf REST an sich ein. Dafür, dass das heute so ein wichtiges

[34:16] Architekturprinzip auch ist in der Softwareentwicklung und so gut wie jedes

[34:20] zweite Projekt magischerweise heute REST benutzt, angeblich, wobei die meisten

[34:24] Prüflinge das auch nicht richtig erklären können. Dafür ist mir das Thema

[34:27] zu wichtig, als dass es irgendwie hier auf ein, zwei Seiten abgehandelt wird. Also

[34:31] das reicht mir nicht. Der Rest des Kapitels ist dann tatsächlich wirklich

[34:34] Programmierung, wie man es jetzt umsetzt mit PHP. Und da kommen jetzt wirklich auch

[34:38] seitenweise Quellcode-Beispiele, wie man es mit PHP macht. Ist eine nette Sache, um

[34:44] das mal auszuprobieren. Ich glaube, zum Verständnis und um REST sauber

[34:47] erklären zu können, reicht es nicht. Da brauchst du irgendwie noch andere

[34:50] Literatur und ich glaube, REST ist heute ein so wichtiges Thema. Das lohnt sich

[34:55] auf jeden Fall, sich das noch mal in einem anderen Buch anzugucken, weil das

[34:59] auch sehr prüfungsrelevant ist. Also wenn irgendwo in einem Abschlussprojekt, wenn

[35:03] ich da irgendwo REST nur lese, da wird auf jeden Fall im Fachgespräch dazu

[35:07] eine Frage gestellt, weil ich einfach weiß, dass die meisten Leute das so ein

[35:10] bisschen als Hype-Wort benutzen, aber eigentlich gar nicht genau verstehen,

[35:13] was dahinter steht. Von daher unbedingt mal angucken. Für mich Grundwissen im

[35:17] Rahmen der Anwendungsentwicklung. Damit wären wir jetzt auch mit den drei

[35:21] Kapiteln schon durch. Ich habe allerdings, weil ich in den Shownotes zu den

[35:24] Episoden immer die entsprechenden Kapitel aus dem Open Book beim

[35:28] Rheinwerk Verlag verlinke, noch festgestellt, dass in der neuen Auflage

[35:32] des Handbuchs zwei Kapitel gestrichen wurden. Und zwar Ruby on Rails und weitere

[35:38] Technologien im Überblick. Und das finde ich eigentlich ganz schade. Ruby on Rails,

[35:42] ich kann mir vorstellen, warum der Herr Kersten das gestrichen hat. PHP ist

[35:46] sicherlich im Webumfeld verbreiteter als Ruby on Rails. Und wenn man sich das

[35:50] Open Book anguckt zu Ruby on Rails, da ist jetzt auch nicht so viel drin. Wird so ein

[35:54] bisschen beschrieben, wie das funktioniert und was das Prinzip ist und

[35:56] so weiter. Also von daher, das tut mir jetzt auch nicht unbedingt weh, dass das

[36:00] gestrichen wurde. Aber ich finde es irgendwo schade, denn Ruby on Rails ist

[36:02] halt einfach so ein cooles Framework. Also wenn man so ein bisschen damit mal

[36:06] gearbeitet hat, dann sieht man, dass das das Prinzip von MVC total cool umsetzt

[36:11] und man da wirklich schnell mit arbeiten kann und da einfach ganz tolle Konzepte

[36:14] auch drin sind, die man in der Architektur, in der Softwareentwicklung

[36:19] beherrschen muss, wie eben zum Beispiel das MVC. Da gibt es sicherlich auch

[36:23] PHP-Frameworks, die das umsetzen, aber in Ruby on Rails ist es quasi fest

[36:26] eingebaut. Man kann gar nicht anders als sauber entwickeln. Und von daher

[36:30] finde ich es schade, dass es jetzt rausgenommen wurde, weil es sich glaube ich als

[36:33] Anwendungsentwickler absolut lohnt, sich damit mal auseinanderzusetzen. Denn dann

[36:37] wirst du auch in vielen anderen Frameworks, Java EE zum Beispiel oder im

[36:40] MVC, im .NET-Umfeld, wirst du die Prinzipien aus Ruby on Rails eigentlich

[36:44] wiederfinden, weil die das damals schon vor über zehn Jahren eigentlich, sag ich

[36:48] mal, fast eingeführt haben. Und von daher, ja, guck da auf jeden Fall noch mal rein.

[36:52] Finde ich auf jeden Fall sehr spannend. Ich habe das Kapitel halt in den

[36:56] Shownotes verlinkt. Übrigens habe ich auch vor kurzem bei

[36:59] Heise Developer dazu einen kleinen Artikel geschrieben. Da habe ich nämlich

[37:01] genau Java EE mit Ruby on Rails verglichen. Und da sieht man noch mal, wie

[37:05] die beiden Frameworks, ja, wie sehr sie sich ähneln. Den Artikel habe ich auch

[37:10] in den Shownotes verlinkt. Guck einfach mal rein. Link wie immer

[37:14] www.anwendungsentwicklerpodcast.de slash 6 6 für die 66. Episode. Und dann zum

[37:21] Schluss wurde auch noch das weitere Unterkapitel Weitere Technologien leider

[37:26] gestrichen. Finde ich auch sehr schade, weil da noch mal so ein paar allgemeine

[37:29] Sachen aus dem Internet so ein bisschen erklärt wurden, wie zum Beispiel Wikis

[37:32] und Blogs. Und da gibt es durchaus auch in der schriftlichen Abschlussprüfung

[37:35] mal eine Frage dazu. Was ist das denn überhaupt? Was ist denn ein Blog? Was ist

[37:39] denn ein Wiki? Damit arbeiten wir wahrscheinlich oder viele von uns jeden

[37:42] Tag, wenn ich nach irgendwas suche, ist fast immer Treffer Nummer eins die

[37:46] Wikipedia. Ja und viele, wenn man die dann fragt, was ein Wiki ist, sagen dann, ja

[37:49] das ist eine Online-Enzyklopädie. Halt eben die Wikipedia. Aber das ist halt nicht

[37:55] richtig. Die Wikipedia ist eben nur ein Wiki. Und das Prinzip eines Wikis ist

[38:00] ein ganz anderes. Und ich habe jetzt extra noch mal in meiner PDF-Datei von

[38:04] dem Handbuch gesucht. Es wird tatsächlich nirgends wo mehr erklärt,

[38:08] was ein Blog oder ein Wiki ist. Und das finde ich eigentlich sehr schade. Denn

[38:11] das muss ich als Fachinformatiker auf jeden Fall wissen. Denn das kann

[38:13] tatsächlich auch in der Prüfung abgefragt werden. Und auch so andere

[38:16] Sachen, wie zum Beispiel ein CMS, ein Content Management System. Das wurde

[38:20] vorher hier schön erklärt. Waren jetzt auch nicht super viele Seiten in der

[38:23] alten Variante, aber es wurde wenigstens angesprochen. Und das fand ich eigentlich

[38:27] schon ganz wichtig, dass man sich damit auseinandersetzt und dass man diese

[38:30] Begriffe auch erklären kann. Also ein Webblog, gehen wir die Sachen doch

[38:33] vielleicht mal kurz durch. Ein CMS, ein Content Management System, das ist ein

[38:37] Backend-System, womit ich quasi meine Website administrieren kann und pflegen

[38:41] kann. Ein Beispiel dafür wäre WordPress. Wobei WordPress eigentlich ursprünglich

[38:46] ein Blog-System ist. Was ist ein Blog? Ein Blog ist eigentlich so eine

[38:49] Wortneuschöpfung, früher gewesen aus dem Begriff Weblog.

[38:53] Also Web-Tagebuch im Prinzip. Und das ist so ein bisschen so eine Abkürzung dafür.

[38:58] Und was einen Web-Blog kennzeichnet, ist, dass die neuesten Beiträge immer oben stehen.

[39:03] Das heißt, es ist chronologisch sortiert, aber eben nicht, dass die neuesten Sachen unten angehängt werden,

[39:08] sondern immer nach oben verfrachtet werden.

[39:10] Und standardmäßig historisch war es so, dass halt Leute da ihre privaten Sachen online gestellt haben,

[39:15] halt wie so eine Art Tagebuch.

[39:16] Aber ich denke mal, du kennst genug Blogs, wenn du irgendwo im Web unterwegs bist,

[39:20] wie zum Beispiel auch meinen eigenen übrigens auf der Website zum Podcast.

[39:23] Da habe ich ja auch einen Blog.

[39:24] Das ist heute nicht mehr sowas wie ein privates Tagebuch,

[39:27] sondern einfach eine Möglichkeit, wo ich halt Artikel online stellen kann.

[39:30] Aber ursprünglich hat es halt diesen Ansatz.

[39:34] Und ein Wiki kommt aus dem Hawaiianischen.

[39:36] Wiki-Wiki heißt schnell.

[39:39] Und was bedeutet das?

[39:41] Ein Wiki ist auch so eine Art Content-Management-System und hat aber den zentralen Vorteil,

[39:48] dass ich meine Website quasi inline bearbeiten kann.

[39:51] Ich kann also die Inhalte der Website direkt verändern und die Änderung ist auch sofort wieder sichtbar.

[39:56] Das ist der große Vorteil von Wikis.

[39:58] Ich muss mich da also nicht in einem Backend irgendwo einloggen und dann irgendwo in einem Seitenbaum meine Seite suchen und die bearbeiten,

[40:04] sondern ich kann, wie du es auch von der Wikipedia zum Beispiel kennst,

[40:07] auf jeder Seite auf den Bearbeiten-Knopf drücken und dann kann ich die Seite sofort inline editieren.

[40:12] Meistens gibt es dafür auch so eine gewisse Syntax, wie zum Beispiel die Media-Wiki-Syntax in der Media-Wiki halt,

[40:18] auf der die Wikipedia basiert, wo ich dann zum Beispiel Sternchen einfügen kann und dann wird der Text fett und solche Sachen.

[40:24] Und diese grundsätzlichen Programmarten, sage ich mal, die sollte man als Software-Entwickler durchaus kennen

[40:31] und auch in der Prüfung abgrenzen können.

[40:33] Da gab es, wie gesagt, auch schon mal eine Prüfungsfrage zu.

[40:35] Von daher schade, dass dieses Kapitel jetzt in der neuen Auflage gestrichen wurde.

[40:41] Okay, dann wären wir für heute aber durch.

[40:43] Ich habe schon wieder die 30-Minuten-Marke gesprengt, aber die drei Kapitel passen ganz gut zusammen.

[40:49] Deswegen drücke ich da jetzt heute mal ein Auge zu und mache da jetzt nicht noch eine weitere Episode zu.

[40:53] Wir haben aber schon ein paar mehr Kapitel inzwischen besprochen, meine Azubis und ich.

[40:57] Von daher geht es auch direkt weiter mit dem Buchclub, allerdings nicht nächste Woche.

[41:01] Da geht es noch mal einmal wieder um die mündliche Prüfung.

[41:04] Ich habe ja noch die Präsentation und die Fachgespräche, aus denen ich einige Sachen dieses Jahr mitgenommen habe.

[41:08] Da wollte ich ein bisschen was zu erzählen. Das kommt dann nächste Woche.

[41:10] Aber die Woche danach geht es dann weiter mit unserem Buchclub hier.

[41:15] Und dann geht es quasi um das Frontend von Web-Anwendungen.

[41:18] Heute haben wir so ein bisschen über das, was im Hintergrund läuft, gesprochen.

[41:21] Und beim nächsten Mal geht es dann um HTML, CSS und JavaScript.

[41:26] Und das sind die Kapitel 18 und 20 im Handbuch für Fachinformatiker.

[41:31] Das heißt, wenn du noch mitmachen willst beim Buchclub oder noch Fragen hast oder mitlesen willst,

[41:34] dann bis in zwei Wochen müsstest du die Kapitel 18 und 20 dir anschauen.

[41:39] Die würde ich dann mal besprechen.

[41:41] Alle Links, die ich heute erwähnt habe, meine Artikel und die Handbuchkapitel und so weiter,

[41:48] die sind wie immer in den Shownotes verlinkt.

[41:50] Unter anderem sind wir clubpodcast.de slash 66, also die beiden Ziffern 6 und 6.

[41:55] Und da findest du dann auch, wenn du da schon bist, im Blog zum Beispiel einen netten Artikel.

[42:00] Denn letzte Woche habe ich da wieder eine mit 100% bewertete Projektpräsentation veröffentlicht von Enrico Bassauer.

[42:06] Der hat mir die zur Verfügung gestellt.

[42:08] Die kannst du dir gerne mal anschauen.

[42:10] Ist ein schönes Beispiel für eine Projektpräsentation, denn die sieht überhaupt gar nicht so aus, wie ich das hier immer erzähle.

[42:15] Wenn du vielleicht schon meinen Blog kennst und meine Beispielarbeiten, die ich da immer hoch packe,

[42:19] gerade auch von meinen ehemaligen Azubis, dann wirst du feststellen, dass die sehr visuell geprägt sind, sag ich mal.

[42:24] Und so erzähle ich es ja auch immer im Podcast.

[42:25] Also viele Bilder, wenig Text und so weiter.

[42:28] Und die Präsentation von Enrico, die sieht doch ein bisschen anders aus.

[42:31] Sie sieht eher, sag ich mal, wie so eine klassische Präsentation aus und wurde von der IHK Aachen aber mit 100% bewertet.

[42:38] Natürlich inklusive Fachgespräch.

[42:39] Das heißt, Enrico hat auch im Fachgespräch natürlich eine super Leistung gebracht.

[42:43] Aber das kann man natürlich nicht im Blog zeigen, wie das funktioniert hat oder wie das gelaufen ist.

[42:47] Deswegen gucken wir uns nur die Präsentation an.

[42:49] Und wenn du ein gutes Beispiel brauchst für deine eigene Präsentation, wenn du die vielleicht noch vor dir hast,

[42:53] dann schau doch mal vorbei.

[42:55] Wenn dir die Inhalte hier in meinem Podcast und auf der Website gefallen und du regelmäßig informiert werden möchtest,

[43:01] wenn es was Neues gibt, dann hast du die Möglichkeit, dich in meinen Newsletter einzutragen.

[43:05] Unter anwendungsentwicklerpodcast.de slash Newsletter kannst du das absolut kostenfrei tun.

[43:10] Wenn dir das nicht mehr gefällt, kannst du dich auch jederzeit austragen.

[43:13] Bin ich auch nicht böse drum.

[43:14] Hauptsache ist, dass du irgendwie was mitbekommst, was dich weiterbringt.

[43:18] Und von daher melde dich einfach an, wenn du möchtest.

[43:20] Dann sage ich dir immer einmal die Woche, wenn es was Neues gibt.

[43:23] Und meine Links der Woche zum Beispiel, die gibt es auch immer schon vorab.

[43:26] Damit wäre ich jetzt für heute aber auch wirklich durch.

[43:29] Ich sage vielen, vielen Dank fürs Zuhören und bis zum nächsten Mal. Tschüss.

Buchclub

Buchclub: Handbuch für Fachinformatiker (Teil 5: Betriebssysteme, Windows und Linux) – Anwendungsentwickler-Podcast #61 Buchclub: Handbuch für Fachinformatiker (Teil 7: HTML und CSS) – Anwendungsentwickler-Podcast #68
Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker:innen Anwendungsentwicklung, IHK-Prüfer und ehemaliger Hochschuldozent für Programmierung und Software-Engineering.

4 comments on “Buchclub: Handbuch für Fachinformatiker (Teil 6: Webserver und -anwendungen) – Anwendungsentwickler-Podcast #66”

  1. Hi Stefan,

    Let’s Encrypt ist ja nicht gerade ungeschoren davon gekommen in Deinem Podcast 😉
    Kannst du das noch ein bisschen ausführen, warum das kein „vernünftiges SSL-Zertifikat“ (bei Minute 16) ist?
    Geht es dir darum, dass man bei Let’s Encrypt eventuell nicht mehr lernt, wie das mit CSR und formate Konvertieren und ablaufenden Zertifikaten so ist? SSL ist übrigens eine alte Bezeichnung. TLS ist der Nachfolger.

    Für das Thema Webserver konfigurieren habe ich noch eine kleine Vortagsempfehlung: Zeitgemäße Webserver-Konfiguration — Ein Serviervorschlag

    Danke übrigens für die Hosting Empfehlung. Ich bin selbst gerade etwas am suchen.

    Gruß Robin

  2. Stefan Macke sagt:

    Hallo Robin,

    ich habe nichts gegen let’s encrypt und setze es auch selbst ein. Es ist nur nervig, dass die Laufzeit der Zertifikate so kurz ist. Und irgendwie habe ich immer noch Bedenken, dass sie nicht überall akzeptiert werden. Aber das ist wohl unbegründet 🙂

    SSL/TLS kenne ich. Ist nur die alte Gewohnheit…

    Das Video werde ich mir mal anschauen. Ich suche immer gute Tutorials für meine Studenten. Danke!

    Viele Grüße!
    Stefan

  3. Hallo Stefan,

    die Gültigkeit eines Zertifikats ist so eine Sache.

    Pro (kurze Gültigkeit):

    Weniger Probleme mit dem zurückziehen von Zertifikaten. Beispiel certificate revocation list (CRL) und Heartbleed. Aber das kann man mit OCSP und OCSP stapling in den Griff bekommen.
    Erhöhte Sicherheit. Kontrolle über den privaten Schlüssel wird öfter geprüft.
    Admins werden zur Automatisierung erzogen 😉

    Contra (kurze Gültigkeit):

    Das einzige Problem was ich hier sehe ist bei embedded systems. Denn Falle hatte ich vor kurzem mit einer alten IP-Kamera. Die kann (noch) kein ACME. Da müsste man das Zertifikat also entweder alle 90 Tage manuell erneuern, sich ein Skript dafür schreiben oder ein Zertifikat mit längerer Gültigkeit beschaffen. Aber bei Servern über die man die Kontrolle hat spielt das keine Rolle. Hierfür gibt es genug gute Möglichkeiten, die Zertifikats Erneuerung zu automatisieren (ich arbeite selbst an so einer Möglichkeit mit Ansible, siehe debops.pki).

    „Und irgendwie habe ich immer noch Bedenken, dass sie nicht überall akzeptiert werden.“

    Meines Wissens wird es von jedem Endgerät anerkannt das halbwegs vernünftige Krypto unterstützt. Ich meine mich zu erinnern, dass sogar für Windows XP SP3 noch Anstrengungen unternommen wurden und es jetzt selbst da noch funktioniert (falls das noch jemand benutzt → keine gute Idee).

    Zum Vortag: Gerne geschehen 🙂

    Gruß Robin

  4. Stefan Macke sagt:

    Hallo Robin,

    schöne Diskussion der Vor- und Nachteile! Danke dafür.

    Die Automatisierung sollte für keinen halbwegs kompetenten Admin ein Problem sein. Und wenn sogar Uraltsysteme damit laufen, nehme ich meine Bedenken hiermit zurück 🙂

    Viele Grüße!
    Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert