Kategoriearchiv: Technologie

Unsere Bücher – Clean Code – Refactoring, Patterns und Techniken für sauberen Code

Buch "Clean Code"

Schon vor einigen Monaten haben wir euch eine kleine Bücher-Rezension zu einem unserer Bücher aus unserer Bibliothek geliefert, nämlich für das Praxisbuch Usability und UX. Dieses Mal möchten wir euch das Buch „Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code“ von Robert C. Martin näher bringen.

Von wem ist das Buch?

Autor des Buches ist Robert C. Martin. Martin ist ein Softwareentwickler aus den USA und hat bereits einige Bücher zum Thema Softwareentwicklung veröffentlicht. Sein erstes Buch hat er bereits 1995 veröffentlicht, das verspricht doch schon mal einiges. Wir haben das Buch dabei in der deutschen Ausgabe vorliegen.

Herausgebracht wurde das Buch in Deutschland vom mitp-Verlag. Der Verlag bietet eine ganze Reihe Bücher aus IT- und Webentwicklung an, also auch hier können wir einiges erwarten.

Worum geht es in dem Buch?

Wie der Titel bereits verrät, geht es wohl um „Clean Code“, also sauberen Code. Das Buch soll dabei nicht nur ein Leitfaden für Softwareentwickler sein, wie sie sauberen Code schreiben, sondern auch die Augen für das eine oder andere Detail öffnen. Der Entwickler soll verstehen, warum bestimmte (auch durchaus Jahre-lang etablierte) Techniken nicht immer richtig sind und welches die „sauberen Alternativen“ sind. Leider ist die Begründung manchmal etwas dürftig. Man soll hier wohl selbst ein Gefühl für die „richtige Schreibweise“ von Code entwickeln. Allerdings muss man hier auch viel Code lesen und am Ende wird es sehr Java-spezifisch. Wer kein Java beherrscht, ist mit diesem Buch eher nicht so gut beraten.

Wie ist das Buch aufgebaut?

Das Buch beinhaltet über 17 Abschnitte. Dabei geht es los mit grundsätzlichen Informationen zu sauberem Code über Formatierungen, Kommentare, Daten- und Objektstrukturen bis hin zu Unit-Testing und Multithreading. Die Abschnitte sind dann in weitere Kapitel unterteilt, die sich am Thema darüber orientieren.

Sonst besteht das Buch aus viel Text, das ist zu erwarten, aber auch sehr viel Code-Beispielen. Wie sinnvoll es ist, in einem haptischen Buch Code über mehrere Seiten abzubilden, sei dabei dahin gestellt. Viel gravierender ist die Tatsache, dass es sich bei den Code-Beispielen ausschließlich um Java-Code handelt. Hier wäre evtl. Pseudocode oder mal ein Blick in andere Programmiersprachen ganz nett gewesen. In den ersten Abschnitten, z.B. über Funktionen, Klassen, Objekte oder Kommentare, kann man das noch sehr gut auf andere Objekt-orientierte Sprachen abstrahieren, aber zum Schluss hin (z.B. bei Unit-Tests mit JUnit oder Multithreading) wird es zu Java-spezifisch. Teilweise hat das Buch hier auch etwas von einem Schulbuch, z.B. wenn man die Aufgabe bekommt, man möge sich den folgenden Code doch jetzt einfach mal 5 Minuten ansehen und auf sich wirken lassen.

Ist das Buch zu empfehlen?

Wir können das Buch „Clean Code” nur bedingt empfehlen. Das Buch gehört wohl in die Bibliothek eines jeden Entwicklers, vor allem, wenn dieser Objekt-orientierte Sprachen verwendet, allerdings ist es einfach zu spezifisch auf eine Sprache, nämlich Java, ausgelegt. Auch sind die Begründungen für bestimmte Code-Standards teilweise zu dürftig und hat beinahe etwas Oberlehrer-haft. Das ist allerdings nicht immer der Fall, es gibt auch durchaus Beispiele, wo man als Entwickler zustimmen möchte.


Kennt ihr weitere spannende Bücher aus den Bereichen Webentwicklung oder UI/UX? Dann schreibt uns gerne einen Kommentar oder nehmt direkt mit uns Kontakt auf!

Warum man immer Updates machen sollte

Artikelbild Updates

Der typische Webseitenbetreiber nutzt mittlerweile ein Content Management System, z.B. WordPress, Joomla! oder andere. Diese Systeme bieten dann in regelmäßigen Abständen ein Update an. Das kann lästig sein und manchmal zerschießt es einem auch die ein oder andere Funktionalität. Warum man dennoch immer Updates machen sollte, erläutern wir in diesem Artikel.

Updates bringen mehr Sicherheit

Der wichtigste Grund für Updates ist der Punkt Sicherheit. Komplexe Systeme sind nie 100% sicher und werden es wohl auch nie sein. Aber bei weit verbreiteten Systemen hat man auch den Vorteil, dass Sicherheitslücken schnell entdeckt und auch schnell gefixt werden. Diese Fixes werden dann in der Regel über Updates verteilt. Bei besonders wichtigen Fixes, kommen diese meist auch als kleines Update. Diese haben daher oft relativ wenig Einfluss auf die Funktionalitäten der Webseite, erhöhen aber die Sicherheit. Ein solches Update sollte man dann möglichst schnell durchführen, denn spätestens wenn ein Update verfügbar ist und ein oder mehrere Sicherheitslücken repariert, so ist spätestens zu diesem Zeitpunkt die Lücke bekannt. Einige Content Management Systeme, wie z.B. WordPress, bieten dafür sogar auch automatische Updates an. Alternativ kann man auch Dienste wie Infinite WP oder die CMS-Integrationen von Plesk oder cPanel nutzen. Das gleiche gilt übrigens auch für Plugins, Module, Komponenten etc.

Updates bringen mehr Performance

Ein nicht ganz so wichtiger Grund, aber dennoch sehr hilfreich, ist der Gesichtspunkt Performance. Neue Updates bringen hin und wieder auch optimierten Code mit sich. Wer kennt das nicht? Ein Projekt wächst und wächst und da bleiben alte Code-Schnippsel übrig. Daher werden solche Projekte häufig „refactored”, d.h. der Code wird Stück für Stück optimiert und das kann sich positiv auf die Performance auswirken. Also bei Performance-Problemen, probiert zuerst die neueste Version eures CMS‘ bzw. Plugins aus.

Updates bringen neue Features

Updates bringen ab und zu auch neue Features mit. Gerade die größeren Versionen sind vollgetopft mit neuen Funktionen. Möchte man also in den Genuss neuer Funktionen kommen, sollte man ebenfalls ein Update durchführen. Solche neuen Features können z.B. neue Editoren (z.B. Gutenberg von WordPress), neue Kategoriesierungsmöglichkeiten oder einfach neue administrative Tools sein. Hier kann z.B. das Backend Benutzer-freundlicher werden oder neue Möglichkeiten zum Bearbeiten von Themes/Templates geben.

Fazit

Am wichtigsten sind also die Sicherheits-Updates. Diese sollte man möglichst schnell durchführen. In der Regel bringen diese auch keine sog. Breaking Changes (also Änderungen, die bestimmte Funktionen so verändern, dass manuelle Anpassungen nötig sind) mit sich. Performance- oder Feature-Updates sind dagegen nicht ganz so wichtig, hier muss man unter Umständen auch auf Breaking Changes achten und sollte vorher unbedingt testen (das sollte man eigentlich bei jedem Update).


Probleme beim Update von eurem System? Dann meldet euch doch bei uns und wir helfen euch gerne weiter.

Was sind eigentlich diese Cookies?

Artikelbild Cookies

In letzter Zeit sieht man dank der neuen Datenschutzverordnung (kurz DSGVO) immer wieder Hinweise, welche auf „Cookies” hinweisen. Doch was sind Cookies überhaupt?

Was ist ein Cookie?

Wer hier an die leckeren Backwaren denkt, ist leider falsch. Wir sind ja hier keine Bäckerei (Schade eigentlich). Wir sprechen von Cookies, welche uns im Web immer wieder begegnen: Kleine Textdateien, welche bestimmte Informationen lokal im Browser abspeichern. Damit ist es möglich, verschiedene Informationen, z.B. über den Besucher, im Browser – also direkt beim Besucher einer Webseite – zu speichern.
Ein relativ einfaches Beispiel sind z.B. Bestell-Plattformen auf denen man Essen bestellen kann. Denkt hier an euren Lieblingspizza-Lieferservice. Hier müsst ihr eure komplette Adresse angeben, damit die Pizza euch auch findet. Damit ihr das nicht jedes Mal tun müsst, habt ihr meistens die Möglichkeit eure Eingaben zu speichern und das geschieht in der Regel über einen Cookie. Das nächste Mal, wenn ihr wieder eine Pizza bestellt, lädt die Bestellseite den Cookie aus eurem Browser, liest die Werte aus und füllt euch das Bestellformular vor.
Das ist natürlich nur ein Usecase, es gibt noch viele andere nützliche Verwendungen von Cookies.

Woher kommt der schlechte Ruf?

Leider sind Cookies nicht immer besonders gut geschützt. Es gibt Cookies, die nur durch eine Webseite auslesen werden können, aber es gibt auch globale Cookies. Diese wurden und werden gerne missbraucht, um das Surfverhalten eines Nutzers zu überwachen, um dann z.B. personalisierte Werbung schalten zu können. Stellt euch vor, ihr besucht eine Webseite und diese liest all eure Cookies aus und stellt fest, dass ihr Cookies bei Amazon, Ebay und Facebook gesetzt habt. Nun weiß die Webseite also auf welchen Plattformen ihr unterwegs seid. Man sieht, es ist möglich durch das Auslesen von Cookies viel herauszufinden, was der einzelne Nutzer aber vielleicht lieber privat halten möchte. Die Browser-Hersteller haben aber den Schutz von Daten in den letzten Jahren immer weiter verbessert und werden dies auch in Zukunft tun.

Was sind die Vorteile?

Wie bereits beschrieben, können Cookies einem das Leben erleichtern, wenn man z.B. eine Pizza bestellt. Aber es gibt weitere Vorteile. Wenn ihr euch auf einer Webseite registriert und anmeldet, wollt ihr euch nicht jedes Mal neu anmelden oder? Auch hier spielen sie eine wichtige Rolle. Innerhalb von einem Cookie kann so eure Login-Information (verschlüsselt) angelegt sein, welche dafür sorgt, dass ihr bei eurem nächsten Besuch wieder angemeldet werdet. Letztlich erleichtern Cookies einem Webseitenbesucher also die Bedienung von Webseiten. Es können natürlich viele weitere Informationen hier zwischengespeichert werden, z.B. der Stand auf einer Webseite, wo man aufgehört hat zu lesen oder die letzten Sucheingaben in einer Suchmaschine zu speichern. Das alles lokal im eigenen Browser statt auf einem externen Server.  Übrigens können sie auch mit einem Ablaufdatum versehen werden oder sich direkt nach Ablauf einer Session zerstören.

Was sind die Nachteile?

Cookies haben leider auch Nachteile. Wir haben bereits erfahren, dass sie missbraucht werden können, um das Surfverhalten eines Nutzers aufzuzeichnen. Ein weiterer Nachteil von ihnen besteht in ihrer Technologie. Cookies haben eine Maximalgröße, je nach Browser liegt diese bei 4.096 Bytes, das entspricht 4KB. Das ist nicht besonders viel, für kleine Informationen reicht das aus, aber wenn man z.B. umfangreiche Formulareingaben speichern bzw. zwischenspeichern möchte, wird das sehr knapp. Ein weiterer Nachteil ist der fehlende Schutz der Daten. Sie sind standardmäßig nicht verschlüsselt. Speichert man sensible Daten in einem Cookie, sollten diese vorher verschlüsselt werden.

Kann ich Cookies blockieren?

Wie wir sehen sind Cookies etwas sehr hilfreiches und gar nicht so gefährlich. Schaden können Sie eigentlich nicht anrichten, unangenehm wird es nur beim Thema Tracking. Wer Cookies nun trotzdem blockieren möchte, kann dies in seinem Browser tun. Jeder Browser hat in der Regel eine Option, diese zu deaktivieren (Google Chrome, Mozilla Firefox, Microsoft Edge). Empfehlen können wir das aber eigentlich nicht, das Surferlebnis wird auf vielen Webseiten deutlich Spaß-freier.
Noch ein Tipp: Wenn ihr eine Webseite (z.B. euer Online-Banking) nicht in der Chronik haben möchtet oder andersherum vermeiden möchtet, das andere hier zugreifen, verwendet den Privat-Modus eures Browsers.

Was sind Alternativen?

Ein großer Nachteil von Cookies besteht in der Maximalgröße. Für moderne Webapplikationen, welche mehr lokalen Speicher im Browser benötigen, z.B. mehrseitige Formulare, gibt es mittlerweile den sogenannten Local Storage und Session Storage (allgemein auch bezeichnet als Web Storage). Hier können deutlich mehr Informationen abgelegt werden, welche außerdem besser geschützt sind und performanter wieder abgerufen werden können. Der Session Storage leert die Informationen nach der Beendigung einer Session, der Local Storage behält die Daten solange, bis sie wieder manuell oder per Skript gelöscht werden. Inzwischen unterstützen dies alle modernen Webbrowser:

Canisuse.com: Web Storage - Alternative zu Cookies

Quelle: caniuse.com

Fun Fact: Es gibt mittlerweile viele Regeln, um auf Cookies hinzuweisen. Bei Local und Session Storage scheint man da in der Gesetzgebung noch hinterherzuhinken.

PHP im Umbruch und was Du nun tun musst

Artikelbild PHP im Umbruch

Aktuell stolpert man in diversen Tech-und IT-Magazinen über den Begriff PHP7. Gemeint ist damit ein großes Update – und damit einer großer Umbruch – einer der wichtigsten Technologien im Web. Doch was genau ist PHP? Wo kommt es zum Einsatz und was ist neu?

Was ist PHP?

PHP ist eine Programmiersprache, welche insbesondere für Webanwendungen und Webseiten zum Einsatz kommt. Sie wird genutzt um dynamische Inhalte als statische Seiten zu generieren. Die Programmiersprache erfreut sich dabei hoher Beliebtheit, da es eine relativ einfach zu erlernende Sprache ist. Der Nachteil besteht allerdings darin, dass man damit auch sehr unsauberen Code schreiben kann. Die Skriptsprache polarisiert hier ganz gerne. Nichtsdestotrotz ist sie eine der am meisten genutzten Programmiersprachen im Word Wide Web. Laut W3Techs kommt sie auf über 80% der weltweiten Webserver zum Einsatz.

Welche Systeme verwenden PHP?

Es gibt eine Vielzahl an Systemen, welche PHP verwenden. Darunter auch die beliebtesten Content Management Systeme zum Betrieb von Webseiten: WordPress, Joomla!, Drupal und TYPO3 sind die bekanntesten Vertreter dieser CM-Systeme. Ähnlich sieht es bei Shop-Systemen aus: Hier ist unter anderem Magento zu nennen. Daneben gibt es auch diverse Web Frameworks zur Entwicklung von individuellen Webanwendungen: das Zend Framework, Symfony, Laravel und viele mehr.

Was ist neu?

Die Vorgänger-Version 5 gibt es schon seit 2004, die Version 6 wurde übersprungen. Es gab bereits vor einigen Jahren eine Version 6, diese wurde aber eingestellt und nun geht es direkt weiter zu Version 7. Diese Version wird seit 2014 entwickelt und 2015 erfolgte der erste Release. Seitdem ist PHP7 ein heißes Thema in der Webentwicklung. Das liegt vor allem an der deutlich höheren Performance dank diverser Code-Optimierungen und einer direkten Cache-Integration. Außerdem kommen viele nützliche neue Funktionen hinzu. Nebenbei entwickelt sich auch die Sicherheit ständig weiter.

Was fliegt raus?

Die Vorgänger-Version 5 wird bereits seit 2016 nicht mehr aktiv weiterentwickelt. Es gibt bei Version 5.6 noch eine Gnadenfrist bis Dezember 2018, solange wird Version 5.6 offiziell noch mit Sicherheits-Patches ausgestattet. Neue Features bleiben der alten Version aber verwehrt, diese bekommt man nur mit PHP7. Grundsätzlich ist die neue Version abwärtskompatibel, die meisten Skripts und Applikationen sollten also auch noch unter PHP7 laufen. Allerdings wurden auch alte Code-Bausteine entfernt, z.B. wegen mangelnder Performance oder schlechter Sicherheit. Daher sollte jede PHP-Applikation vor einem Upgrade mit der neuen Version getestet werden. Hier verschwinden diverse veraltete (sog. „deprecated“) Funktionen, z.B. Verschlüsselungsfunktionen und alte Schnittstellen.

Was bedeutet das für Webseitenbetreiber?

Als Webseitenbetreiber gilt es hier insbesondere zwei Punkte zu überprüfen:
Punkt 1 ist das Hosting. Hier sollte man recherchieren, inwieweit beim eigenen Hosting PHP7 eingesetzt werden kann oder evtl. sogar bereits eingesetzt wird. Wenn möglich, sollte man hier auf die neue Version wechseln. Wenn der Hoster es nicht anbietet, sollte man sich ggf. nach einem neuen Hoster umschauen.
Punkt 2 ist das aktuell genutzte System (z.B. Content Management System). Die großen Systeme, wie z.B. WordPress, Joomla!, Drupal oder TYPO3 sind in den neuesten Versionen bereits kompatibel. In manchen Fällen ist dann aber wohl ein Upgrade oder eine Migration fällig. Wer hier inkompatible Systeme im Einsatz hat, sollte bis spätestens Ende diesen Jahres handeln. Die Gründe für einen Wechsel sind einfach: Die Seite wird hinterher deutlich schneller sein und sicherer. Alternativ kann man natürlich auch auf Systeme auf Basis anderer Programmiersprachen (z.B. NodeJS, Ruby etc.) wechseln.


Benötigt Ihr Unterstützung beim Wechsel auf PHP7? Dann nehmt Kontakt mit uns auf. Wir helfen euch gerne beim Umstieg auf die schnellere und sicherere Version.