We have declared war on error!



Ähnliche Dokumente
Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

.NET Code schützen. Projekt.NET. Version 1.0

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Upgrade von Starke Praxis

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Handbucherweiterung Zuschlag

Patch Management mit

Internet Explorer Version 6

Nachricht der Kundenbetreuung

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Das Leitbild vom Verein WIR

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Reporting Services und SharePoint 2010 Teil 1

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Lizenzen auschecken. Was ist zu tun?

Print2CAD 2017, 8th Generation. Netzwerkversionen

Microsoft Update Windows Update

Leitfaden zur Installation von Bitbyters.WinShutdown

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inkrementelles Backup

Wann benötigen Sie eine neue Lizenz-Datei mit der Endung.pkg?

Erstellen einer in OWA (Outlook Web App)

Terminabgleich mit Mobiltelefonen

Leichte-Sprache-Bilder

MetaQuotes Empfehlungen zum Gebrauch von

Erfahrungen mit Hartz IV- Empfängern

Kurzanleitung Installation der Zend Studio Sprachpakete

Vodafone Conferencing Meeting erstellen

Installation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP

Versionsverwaltung mit SVN

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1. License Borrowing Verfahren

Kommunikation mit Entwicklern. von Marc Reimann Contao Konferenz 2015

Netzwerkversion PVG.view

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Professionelle Seminare im Bereich MS-Office

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung

Einzelplatz - USB-Lizenz

Rillsoft Project - Installation der Software

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Anleitung für die Lohnmeldung via ELM-Standard mittels PartnerWeb

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Übung: Verwendung von Java-Threads

Alle Jahre wieder... Eckard Brandt. Regionales Rechenzentrum für Niedersachsen Eckard Brandt Gruppe Systemtechnik

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Installationsanleitung WSCAD Elektrohandwerk

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

Verarbeitung der Eingangsmeldungen in einem Callcenter

Agile Software Verteilung

Installationsanleitungen

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Was bringt TDD wirklich?

Internet online Update (Internet Explorer)

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Lokale Installation von DotNetNuke 4 ohne IIS

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Printserver und die Einrichtung von TCP/IP oder LPR Ports

Erstellen einer PostScript-Datei unter Windows XP

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Cisco AnyConnect Client installieren

AutoCAD Dienstprogramm zur Lizenzübertragung

GeoPilot (Android) die App

Tipps und Tricks zu Netop Vision und Vision Pro

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Checkliste für die Behebung des Problems, wenn der PC Garmin USB GPS-Geräte nicht erkennt.

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Updatehinweise für die Version forma 5.5.5

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Installationsleitfaden zum Fakturierungsprogramm

Plugins. Stefan Salich Stand

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

BMW TREUE SERVICE. SRP MARKETING MODUL. ANLEITUNG ZUM EINSPIELEN DER LEUCHTTURMKAMPAGNEN IN DIE KSD.

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

KEIL software. Inhaltsverzeichnis UPDATE. 1. Wichtige Informationen 1.1. Welche Änderungen gibt es?

Erstellen einer digitalen Signatur für Adobe-Formulare

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Konzept Projekt Lisa

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Handbuch USB Treiber-Installation

Wie erreiche ich was?

Was meinen die Leute eigentlich mit: Grexit?

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

Task: Nmap Skripte ausführen

Transkript:

We have declared war on error! Christian Schiffler Contao Konferenz 2015 29. Mai 2015 1 / 26

Xtra oder - der mit m Hut. Wers n das? Christian Xtra Schiffler trägt meistens einen Hut und seltsame T-Shirts Seit 2004 selbständig Seit 2008 bei Contao Hauptentwickler von u.a.: MetaModels DcGeneral Composer-Plugin div. anderer CCA Komponenten bastelt an Contao 4. fummelt den Contao Package Manager (fka composer-client) c.schiffler@c-c-a.org http://cyberspectrum.de http://twitter.com/discordier http://github.com/discordier 2 / 26

War on error? Was erwartet uns? Ablauf Welche tools helfen uns? Welche online Dienste helfen uns? 3 / 26

War on error? Was erwartet uns? Ablauf Welche tools helfen uns? Welche online Dienste helfen uns? 3 / 26

War on error? Was erwartet uns? Ablauf Welche tools helfen uns? Welche online Dienste helfen uns? 3 / 26

Definition http://de.wikipedia.org/wiki/kontinuierliche_ Kontinuierliche (auch fortlaufende oder permanente ; englisch continuous integration) ist ein Begriff aus der Software-Entwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt. Das Ziel der kontinuierlichen ist die Steigerung der Softwarequalität. [..] Üblicherweise wird dafür nicht nur das Gesamtsystem neu gebaut, sondern es werden auch automatisierte Tests durchgeführt und Softwaremetriken erstellt. Der gesamte Vorgang wird automatisch ausgelöst durch Einchecken in die Versionsverwaltung. 4 / 26

Definition http://de.wikipedia.org/wiki/kontinuierliche_ Kontinuierliche (auch fortlaufende oder permanente ; englisch continuous integration) ist ein Begriff aus der Software-Entwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt. Das Ziel der kontinuierlichen ist die Steigerung der Softwarequalität. [..] Üblicherweise wird dafür nicht nur das Gesamtsystem neu gebaut, sondern es werden auch automatisierte Tests durchgeführt und Softwaremetriken erstellt. Der gesamte Vorgang wird automatisch ausgelöst durch Einchecken in die Versionsverwaltung. 4 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Bedingungen Bedingungen und Voraussetzungen Entwickler integrieren Arbeitsschritte in gemeinsame Codebasis (ggf. git flow). Jeder check-in durchläuft im Vorfeld definierte Tests und Überprüfungen. Tests als Teil der Entwicklung (Seltener: TDD). so oft wie möglich, nur so gross wie nötig - Fehlervermeidung und gemeinsam arbeiten. Transparenz - Zahlen, Werte, Kompilate bereit stellen (Nicht nur eyecandy für Chefs!). Automatisierte Bereitstellung der Ergebnisse, jeder kann sie einsehen. Optional - Erfolgreiche builds automatisiert in Produktivsysteme einspielen. 5 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Was haben wir davon? Warum wir CI wollen Probleme und viele Fehler laufend entdecken und beheben - nicht erst beim Kunden Tests stellen sicher dass Fehler gefixt bleiben Ständige Verfügbarkeit eines lauffähigen Standes (erfolgreicher Build gilt als stabilste Version die wir haben ) Erziehung der Entwickler zu funktionalen Commits - Selbstdisziplin Geringerer Merge-Aufwand durch kurze Intervalle Geringerer Auditing-Aufwand bei PRs durch Unit tests 6 / 26

Code Style Software metriken Unit tests. 7 / 26

Code Style Software metriken Unit tests. 7 / 26

Code Style Software metriken Unit tests. 7 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Code Style Warum? Vorteile? 40% 80% der Lebenszeit einer Software entfällt auf maintenance. Kaum eine software wird während ihrer Lebenszeit von demselben Entwicklerstamm betreut. Code Styles erhöhen die Lesbarkeit des Quellcodes. Gebräuchlichste Code-Styles PSR-1/PSR-2 ZEND PEAR 8 / 26

Software Metriken Nach Thomas J. McCabe, 1976 Besagt die Anzahl der zu testenden unabhängigen Programmpfade zyklomatische Zahl eines in sich abgeschlossenen Teilprogramms max. 10 Programm sonst zu komplex und zu schwer zu testen Umstritten, da lediglich eine Aussage über den Testaufwand getroffen wird 9 / 26

Software Metriken Nach Thomas J. McCabe, 1976 Besagt die Anzahl der zu testenden unabhängigen Programmpfade zyklomatische Zahl eines in sich abgeschlossenen Teilprogramms max. 10 Programm sonst zu komplex und zu schwer zu testen Umstritten, da lediglich eine Aussage über den Testaufwand getroffen wird 9 / 26

Software Metriken Nach Thomas J. McCabe, 1976 Besagt die Anzahl der zu testenden unabhängigen Programmpfade zyklomatische Zahl eines in sich abgeschlossenen Teilprogramms max. 10 Programm sonst zu komplex und zu schwer zu testen Umstritten, da lediglich eine Aussage über den Testaufwand getroffen wird 9 / 26

Software Metriken Nach Thomas J. McCabe, 1976 Besagt die Anzahl der zu testenden unabhängigen Programmpfade zyklomatische Zahl eines in sich abgeschlossenen Teilprogramms max. 10 Programm sonst zu komplex und zu schwer zu testen Umstritten, da lediglich eine Aussage über den Testaufwand getroffen wird 9 / 26

Software Metriken Beispiel 1 function wochentag ($nummer) { 2 switch ($nummer) { 3 case 1 : return Montag ; 4 case 2 : return Dienstag ; 5 case 3: return Mittwoch ; 6 case 4: return Donnerstag ; 7 case 5: return Freitag ; 8 case 6: return Samstag ; 9 case 7: return Sonntag ; 10 } 11 return ( unbekannter Wochentag ) ; 12 } Analyse Viele Pfade. Möglichkeiten side-effects einzubauen. 10 / 26

Software Metriken Beispiel 1 function wochentag ($nummer) { 2 switch ($nummer) { 3 case 1 : return Montag ; 4 case 2 : return Dienstag ; 5 case 3: return Mittwoch ; 6 case 4: return Donnerstag ; 7 case 5: return Freitag ; 8 case 6: return Samstag ; 9 case 7: return Sonntag ; 10 } 11 return ( unbekannter Wochentag ) ; 12 } Analyse Viele Pfade. Möglichkeiten side-effects einzubauen. 10 / 26

Software Metriken Beispiel 1 function wochentag ($nummer) { 2 $tage = [ Montag, Dienstag, Mittwoch, Donnerstag, F r e i ta g, Samstag, Sonntag ] ; 3 i f ( isset ( $tage [$nummer 1 ] ) ) { 4 return $tage [$nummer 1 ] ; 5 } 6 7 return ( unbekannter Wochentag ) ; 8 } Analyse Nur noch zwei Pfade. Keine Möglichkeiten side-effects einzubauen. 11 / 26

Software Metriken Beispiel 1 function wochentag ($nummer) { 2 $tage = [ Montag, Dienstag, Mittwoch, Donnerstag, F r e i ta g, Samstag, Sonntag ] ; 3 i f ( isset ( $tage [$nummer 1 ] ) ) { 4 return $tage [$nummer 1 ] ; 5 } 6 7 return ( unbekannter Wochentag ) ; 8 } Analyse Nur noch zwei Pfade. Keine Möglichkeiten side-effects einzubauen. 11 / 26

Unit Tests Unit Tests - http://de.wikipedia.org/wiki/modultest Ein Modultest (auch Komponententest oder oft vom engl. unit test als Unittest bezeichnet) wird in der Softwareentwicklung angewendet, um die funktionalen Einzelteile (Module) von Computerprogrammen zu testen, d. h. sie auf korrekte Funktionalität zu prüfen. [...] Die Spezifikation der Software wird lediglich für die Bestimmung der Soll-Ergebnisse benutzt. Prinzipiell müssen alle Quellcode-Teile mindestens einmal ausgeführt werden. 12 / 26

Unit Tests Warum? Vorteile? Fehler können ohne deployment erkannt werden. Verhindert das Fehler wieder eingebaut werden (Regression Bugs). Warum? Nachteile? Aufwendig zu erstellen. Sinnlose Tests bringen ausser coverage nichts. 13 / 26

Unit Tests Warum? Vorteile? Fehler können ohne deployment erkannt werden. Verhindert das Fehler wieder eingebaut werden (Regression Bugs). Warum? Nachteile? Aufwendig zu erstellen. Sinnlose Tests bringen ausser coverage nichts. 13 / 26

Unit Tests Warum? Vorteile? Fehler können ohne deployment erkannt werden. Verhindert das Fehler wieder eingebaut werden (Regression Bugs). Warum? Nachteile? Aufwendig zu erstellen. Sinnlose Tests bringen ausser coverage nichts. 13 / 26

Unit Tests Warum? Vorteile? Fehler können ohne deployment erkannt werden. Verhindert das Fehler wieder eingebaut werden (Regression Bugs). Warum? Nachteile? Aufwendig zu erstellen. Sinnlose Tests bringen ausser coverage nichts. 13 / 26

Code style (phpcs - github.com/squizlabs/php_codesniffer) Analysiert Code style Basiert auf sogenannten Sniffs Seit Version 2 auch automatisches fixen Kann PHP und Javascript analysieren Kann mit eigenen Sniffs erweitert werden 14 / 26

Code style (phpcs - github.com/squizlabs/php_codesniffer) Analysiert Code style Basiert auf sogenannten Sniffs Seit Version 2 auch automatisches fixen Kann PHP und Javascript analysieren Kann mit eigenen Sniffs erweitert werden 14 / 26

Code style (phpcs - github.com/squizlabs/php_codesniffer) Analysiert Code style Basiert auf sogenannten Sniffs Seit Version 2 auch automatisches fixen Kann PHP und Javascript analysieren Kann mit eigenen Sniffs erweitert werden 14 / 26

Code style (phpcs - github.com/squizlabs/php_codesniffer) Analysiert Code style Basiert auf sogenannten Sniffs Seit Version 2 auch automatisches fixen Kann PHP und Javascript analysieren Kann mit eigenen Sniffs erweitert werden 14 / 26

Code style (phpcs - github.com/squizlabs/php_codesniffer) Analysiert Code style Basiert auf sogenannten Sniffs Seit Version 2 auch automatisches fixen Kann PHP und Javascript analysieren Kann mit eigenen Sniffs erweitert werden 14 / 26

Mess-detector (phpmd - github.com/phpmd/phpmd) Komplexitätsanalyse Länge von Klassen und Methoden Naming von Variablen, Methoden, Klassen, Interfaces Erkennt toten Code 15 / 26

Mess-detector (phpmd - github.com/phpmd/phpmd) Komplexitätsanalyse Länge von Klassen und Methoden Naming von Variablen, Methoden, Klassen, Interfaces Erkennt toten Code 15 / 26

Mess-detector (phpmd - github.com/phpmd/phpmd) Komplexitätsanalyse Länge von Klassen und Methoden Naming von Variablen, Methoden, Klassen, Interfaces Erkennt toten Code 15 / 26

Mess-detector (phpmd - github.com/phpmd/phpmd) Komplexitätsanalyse Länge von Klassen und Methoden Naming von Variablen, Methoden, Klassen, Interfaces Erkennt toten Code 15 / 26

Copy paste detector (phpcpd - github.com/sebastianbergmann/phpcpd) Sucht Code Duplikate 16 / 26

Copy paste detector (phpcpd - github.com/sebastianbergmann/phpcpd) Sucht Code Duplikate (That s it!) 16 / 26

Unit testing (phpunit - github.com/sebastianbergmann/phpunit) Meistgebrauchtes unit testing framework Tests sind PHP Klassen Mehrere Tests zu Suites zusammen fassen Isolierte Ausführung nur CLI SAPI, kein cgi! 17 / 26

Unit testing (phpunit - github.com/sebastianbergmann/phpunit) Meistgebrauchtes unit testing framework Tests sind PHP Klassen Mehrere Tests zu Suites zusammen fassen Isolierte Ausführung nur CLI SAPI, kein cgi! 17 / 26

Unit testing (phpunit - github.com/sebastianbergmann/phpunit) Meistgebrauchtes unit testing framework Tests sind PHP Klassen Mehrere Tests zu Suites zusammen fassen Isolierte Ausführung nur CLI SAPI, kein cgi! 17 / 26

Unit testing (phpunit - github.com/sebastianbergmann/phpunit) Meistgebrauchtes unit testing framework Tests sind PHP Klassen Mehrere Tests zu Suites zusammen fassen Isolierte Ausführung nur CLI SAPI, kein cgi! 17 / 26

Unit testing (phpunit - github.com/sebastianbergmann/phpunit) Meistgebrauchtes unit testing framework Tests sind PHP Klassen Mehrere Tests zu Suites zusammen fassen Isolierte Ausführung nur CLI SAPI, kein cgi! 17 / 26

phpcq (github.com/phpcq/phpcq) Vormals C-C-A Buildsystem (CCABS) Alle vorgenannten in einer chain Apache ant basiert Konfigurierbar via build.xml und ini style Datei Zu sehen bei MetaModels und der C-C-A 18 / 26

phpcq (github.com/phpcq/phpcq) Vormals C-C-A Buildsystem (CCABS) Alle vorgenannten in einer chain Apache ant basiert Konfigurierbar via build.xml und ini style Datei Zu sehen bei MetaModels und der C-C-A 18 / 26

phpcq (github.com/phpcq/phpcq) Vormals C-C-A Buildsystem (CCABS) Alle vorgenannten in einer chain Apache ant basiert Konfigurierbar via build.xml und ini style Datei Zu sehen bei MetaModels und der C-C-A 18 / 26

phpcq (github.com/phpcq/phpcq) Vormals C-C-A Buildsystem (CCABS) Alle vorgenannten in einer chain Apache ant basiert Konfigurierbar via build.xml und ini style Datei Zu sehen bei MetaModels und der C-C-A 18 / 26

phpcq (github.com/phpcq/phpcq) Vormals C-C-A Buildsystem (CCABS) Alle vorgenannten in einer chain Apache ant basiert Konfigurierbar via build.xml und ini style Datei Zu sehen bei MetaModels und der C-C-A 18 / 26

phpcq (Verwenden) 1 <?xml version = " 1. 0 " encoding ="UTF 8"?> 2 <project name="my project " default=" build " description="automated build of my project "> 3 <! import the main tasks > 4 <import f i l e ="vendor /phpcq /phpcq /phpcq. main. xml" /> 5 </ project > 19 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

travis travis (travis-ci.org) Buildservice mit echten Linux rechnern Eigene Buildscripte Rootzugriff um zu installieren Build matrix mit Environment Variablen Direkte github- Free for open source! 20 / 26

scrutinizer scrutinizer (scrutinizer-ci.com) PHP inspections Eigene Configuration Statistik von Komplexität etc. over time Direkte github- Free for open source! 21 / 26

scrutinizer scrutinizer (scrutinizer-ci.com) PHP inspections Eigene Configuration Statistik von Komplexität etc. over time Direkte github- Free for open source! 21 / 26

scrutinizer scrutinizer (scrutinizer-ci.com) PHP inspections Eigene Configuration Statistik von Komplexität etc. over time Direkte github- Free for open source! 21 / 26

scrutinizer scrutinizer (scrutinizer-ci.com) PHP inspections Eigene Configuration Statistik von Komplexität etc. over time Direkte github- Free for open source! 21 / 26

scrutinizer scrutinizer (scrutinizer-ci.com) PHP inspections Eigene Configuration Statistik von Komplexität etc. over time Direkte github- Free for open source! 21 / 26

versioneye versioneye (versioneye.com) Analysiert Abhängigkeiten von Composer Packages Sendet Nachrichten wenn dependencies outdated sind 22 / 26

versioneye versioneye (versioneye.com) Analysiert Abhängigkeiten von Composer Packages Sendet Nachrichten wenn dependencies outdated sind 22 / 26

shields.io shields.io Badges für die unterschiedlichsten Zwecke 23 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

Ihr ;) jenkins.on.my.intranet jenkins-ci.org vormals hudson genannt, etliche Doku stimmt immer noch Self hosted build service Am ehesten mit travis zu vergleichen Web basierte GUI etliche plugins Der Dinosaurier 24 / 26

? 25 / 26

Ich bedanke mich......für die Aufmerksamkeit, bis gleich bei der Verabschiedung... 26 / 26