Meine Ideen um qualitativen Code zu schreiben
Schon seit längerem denke ich über ein Thema für einen neuen Blogeintrag zum Thema Softwarequalität nach. Schlussendlich fiel mir der folgende Kommentar zum Thema “Wie schreibt man guten Code?” in’s Auge, welcher mich dazu brachte, mir ein paar Gedanken über guten Code (vor allem im Team) zu machen. Eins vorweg: dieser Artikel ist gerade in der Entstehungsphase – und wird noch das eine oder andere Update erhalten. Er soll für mich eine Art “Leitfaden” darstellen, in welchem ich meine neuesten Erfahrungen und Best-Practices einfließen lasse.
Dadurch, dass das Thema Softwarequalität auch eine starke Verknüpfung mit strukturiertem, gut wartbarem Code eingeht, spielt dieses Thema eine große Rolle – gerade im Umgang mit der Scriptsprache PHP.
An vielen Stellen in den PHP-Projekten meines aktuellen Arbeitgebers werden sogar in den Controllerklassen und den darin enthaltenen Action-Methoden (wir setzen auf das Zend-Framework) diverse Abfragen und Konstrukte eingebunden, welche sich in einem eigens erstelltem Model-Objekt genauso lösen ließen. Auch werden viele Controller mit verschiedenen Methoden überladen, welche ebenso in andere Controller-Dateien ausgelagert werden könnten.
Doch wie genau bringe ich mein Team dazu, einen hochwertigen und strukturieren PHP-Quelltext zu schreiben?
Weiterlesen »
Typo3 Templateentwicklung *UPDATE*
Seitdem ich davon erfahren habe, dass ich am Mittwoch, 20.07.2011 ein Vorstellungsgespräch bei einem ortsansässigen IT-Dienstleister habe, habe ich angefangen, mich in verschiedene Produkte einzuarbeiten um wenigstens mit etwas Grundlagenkenntnis in das Gespräch einsteigen zu können.
Neben der Entwicklung für Joomla und xt:commerce habe ich mich auch in das “Enterprise Content Management System” Typo3 eingelesen. Ein erster Schritt war da natürlich die Implementierung eines eigenen Templates. Dass Typo3 hier sehr eigen ist, haben neben mir wohl schon einige Web-Developer festgestellt. Auf der Suche nach einem brauchbaren Tutorial bin ich dann tatsächlich über die Dokumentation auf der Typo3-Webseite gestolpert.
Zu finden ist das Tutorial hier: http://typo3.org/documentation/document-library/tutorials/doc_tut_templsel_de/0.0.2/view/1/3/
Die dazu passenden Template-, CSS- und Grafikdateien gibt’s hier: http://typo3.org/extensions/repository/view/doc_tut_templselect/current/
Alles in allem ein sehr umfangreiches und gutes Tutorial für alle, die neu in Typoscript und die Typo3-Entwicklung einsteigen wollen. Einziger Wermutstropfen ist jedoch, dass in der HTML-Version des Tutorials keine farbigen Hervorhebungen von zu verändernden Quellcode-Passagen verfügbar sind.
Leider sind die Screenshots aus dem Backend des Typo3 ein wenig veraltet, sodass sich teilweise deutliche Unterschiede in der Handhabung des Tutorials abzeichnen. Hier muss der (angehende) Entwickler ein wenig Eigeninitiative zeigen und sich etwas in das Backend der aktuellen Typo3-Version einarbeiten. Für jemanden, der sich gern mit der Thematik Webentwicklung beschäftigt, sollte das kein großes Hindernis darstellen und nach wenigen Mausklicks erledigt sein.
Bevor man also loslegt, empfiehlt es sich, einen tieferen Blick in das Backend des Typo3 zu werfen. Speziell die Unterpünkte des Hauptmenüpunktes “Web” sind einen Blick wert, da der Entwickler sich im Laufe des Tutorials durch diese Menüpunkte hangeln wird. Besonders interessant sind die Optionen “Page”, “View”, “Functions” und “Template”.
Viel Spaß beim Entwickeln!
*UPDATE*
Offensichtlich hat man auf den Seiten von Typo3 ein Update des Tutorials durchgeführt. Aktuell existiert keine PDF-Version mehr. Dafür wurde eine Open Office Writer-Variante eingeführt.
Piwik – warum ich es nutze
Ein Beitrag auf redirect301.de hat mich dazu bewegt, einmal kurz nieder zuschreiben, warum ich Piwik nutze.
Bevor ich damit loslege, möchte ich einmal kurz erklären, was Piwik ist. Piwik ist eine kostenfreie Alternative zu Google Analytics. Es dient dazu, das Besucherverhalten auf der eigenen Webseite verfolgen zu können – Einstiegsseiten, Ausstiegsseiten, Besucherherkunft, Auflösung, Browsererweiterungen und noch vieles mehr kann dieses Tool an Daten zur Verfügung stellen. Eingebunden wird es über ein einfaches Element innerhalb des Webseiten-Quelltextes.
Nun aber zum eigentlichen Thema: warum nutze ich Piwik? Piwik bietet in meinen Augen durchaus ein konkurrenzfähiges System zu Googles Analytics. Zum einen nutzt es die (bereits auf dem Server vorhandene) PHP- und MySQL-Installation, zum anderen bietet es mir bereits im Grundzustand einen ordentlichen Überblick über die Besucher meiner Seite und deren Verhalten. Ein weiterer Vorteil der Implementierung auf PHP- und MySQL-Basis ist, dass ich das System an meine Bedürfnisse anpassen und erweitern kann, da ich beide Gebiete gut beherrsche. Würde ich Google Analytics einsetzen, so könnte ich solche Anpassungen gar nicht vornehmen können, da Google das System auf den eigenen Servern hosted – ich an die Software als solches also gar nicht rankomme.
Besonders positiv ist ebenso, dass Piwik kostenfrei (genaugenommen: Open Source) ist. Der Einsatz kostenpflichtiger Software würde sich vermutlich im Großteil meiner kleinen Projekte nicht rentieren.
Das (in meinen Augen) stärkste Argument für Piwik liegt jedoch darin, dass alle Daten auf meinem Server bleiben, in meiner Datenbank und somit auf meiner Festplatte. Vor einiger Zeit gab es große Probleme im Zusammenhang mit Google Analytics-Installationen bezüglich des Datenschutzes. Auf redirect301.de wurde das Thema bereits ausgiebig behandelt und in einem Blogeintrag zusammengetragen.
Ein kurzes Fazit, warum ich Piwik einsetze:
- alle Daten bleiben auf meinem Server
- Piwik ist OpenSource/kostenlos
- ich kann Piwik an meine Bedürfnisse anpassen (es basiert auf PHP und MySQL)
- es gibt mir alle Daten, die ich benötige
PHP 5.4.0 Released
Nachdem ich bereits vor einigen Tagen über die Neuerungen von PHP 5.4 gebloggt habe, war es dann gestern soweit: das finale Release von PHP 5.4 stand an.
Auf php.net ist bereits eine offizielle News zum Release geschrieben worden. In dieser News sind auch weitere Unterseiten verlinkt – unter anderem ein “Migration-Guide”, eine Befehlsübersicht zum neuen (in PHP integrierten) Webserver, das Release-Announcement (in welchem noch einmal grob alle Neuerungen zusammengefasst sind) und auch das komplette Changelog der neuen Version von PHP.
Zum Download der neuen Version von PHP geht es hier entlang:
http://php.net/downloads.php#v5.4.0
Und zusammenfassend noch einmal eine Liste aller Neuerungen (Zitat von php.net):
The key features of PHP 5.4.0 include:
- New language syntax including Traits, shortened array syntax and more
- Improved performance and reduced memory consumption
- Support for multibyte languages now available in all builds of PHP at the flip of a runtime switch
- Built-in webserver in CLI mode to simplify development workflows and testing
- Cleaner code base thanks to the removal of multiple deprecated language features
- Many more improvements and fixes
Changes that affect compatibility:
- Register globals, magic quotes and safe mode were removed
- The break/continue $var syntax was removed
- The ini option allow_call_time_pass_reference was removed
- The PHP default_charset is now “UTF-8″ within the distributed php.ini files, but still defaults to “”
Extensions moved to PECL:
- ext/sqlite (ext/sqlite3 and ext/pdo_sqlite are not affected)
PHP 5.4 – die Neuerungen im Überblick
Nachdem vor wenigen Tagen, am 24.02.2012, der RC8 von PHP 5.4 veröffentlicht wurde, rückt das eigentliche Releasedatum der neuen PHP-Version immer näher. Grund genug, mich einmal durch die Tiefen des Internets zu suchen um nähere Informationen zu der kommenden Version von PHP zusammen zu suchen.
Auf php.net wurden bereits ein Changelog vorbereitet, welches die aktuellen Änderungen explizit aufführt.
Zu den wichtigsten Neuerungen für PHP 5.4 zählen unter anderem:
- Einführung von Traits
- Array Dereferencing Support
- Umstellung von ISO-8859-1 auf UTF-8
- Entfernen von <?= aus den short_open_tags
- Hinzufügen der http_response_code() Methode um für diese Funktionalität nicht mehr auf header() zugreifen zu müssen
- Entfernen verschiedener Funktionen
- Kurzsschreibweise für Arrays
Im Folgenden Text möchte ich ein paar der vielen Änderungen näher Erläutern.