class: center, middle .ctologo[![Contao Konferenz](remark/assets/img/contao-konferenz.svg)] # Qualitätssicherung in Contao-PHP-Projekten --- # Vorstellung .left[ __Name:__ Patrick Froch __Firma:__ e@sy Solutions IT __Berufung:__ Programmierer __Contao:__ seit 2.6.x __Selbstständig:__ über 10 Jahre ] --- class: center, middle # Was ist Softwarequalität? --- # Was ist Softwarequalität? --- count: false # Was ist Softwarequalität? > Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Quelle: [Wikipedia - Softwarequalität](https://de.wikipedia.org/wiki/Softwarequalit%C3%A4t) --- count: false # Was ist Softwarequalität? > Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Quelle: [Wikipedia - Softwarequalität](https://de.wikipedia.org/wiki/Softwarequalit%C3%A4t) > Guter Code ist für mich, wenn ich meinen Code nach Jahren anschaue und merke, dass ich den Code heute besser schreiben würde, aber mit dem Code dennoch zufrieden sein kann. Schlechter Code ist, wenn ich nach der ersten Analyse erst einmal spazieren gehen möchte. Quelle: [Oliver Reif - trilobit](https://www.trilobit.de/) --- count: false # Was ist Softwarequalität? > Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Quelle: [Wikipedia - Softwarequalität](https://de.wikipedia.org/wiki/Softwarequalit%C3%A4t) > Guter Code ist für mich, wenn ich meinen Code nach Jahren anschaue und merke, dass ich den Code heute besser schreiben würde, aber mit dem Code dennoch zufrieden sein kann. Schlechter Code ist, wenn ich nach der ersten Analyse erst einmal spazieren gehen möchte. Quelle: [Oliver Reif - trilobit](https://www.trilobit.de/) > - die Software tut, was sie soll (Korrektheit) > - auch nach Jahren noch gut lesbar und erweiterbar (Evolvierbarkeit) > - Standards (nicht nur Code-Style) werden eingehalten und sie bricht nicht mit der nächsten Contao Minor-Version Quelle: [Oliver Reif - trilobit](https://www.trilobit.de/) --- count: false # Was ist Softwarequalität? --- count: false # Was ist Softwarequalität? > Manche Aufgabe ist nur ein kleiner Part, da ist es nicht notwendig, komplexe Strukturen aufzusetzen, die im Gesamtprojekt evt. Standard sind. Andere Hauptaufgaben beduerfen jedoch deutlich Mehraufwand, damit sie allgemeingueltig oder projektweit genutzt werden koennen. > > Softwarequalitaet ist nicht greifbar, ist abhaengig von dem Bauwerk, was errichtet wird. Quelle: [Stefan Lindecke - odas](https://www.odas.biz/) --- count: false # Was ist Softwarequalität? > Manche Aufgabe ist nur ein kleiner Part, da ist es nicht notwendig, komplexe Strukturen aufzusetzen, die im Gesamtprojekt evt. Standard sind. Andere Hauptaufgaben beduerfen jedoch deutlich Mehraufwand, damit sie allgemeingueltig oder projektweit genutzt werden koennen. > > Softwarequalitaet ist nicht greifbar, ist abhaengig von dem Bauwerk, was errichtet wird. Quelle: [Stefan Lindecke - odas](https://www.odas.biz/) > Ich glaube nicht dass es dafür eine universelle Aussage gibts, aber das könnte dich interessieren: > > https;//matthiasnoback.nl/2019/09/is-not-writing-tests-unprofessional/ Quelle: [Andreas Schempp - terminal42](https://www.terminal42.ch/) --- # Was ist Softwarequalität? --- # Was ist Softwarequalität? > Für mich weist gute Software einen hohen Grad an Testbarkeit („testability“) und Wartbarkeit („maintainability“) auf. Dazu gibt es ja bekanntlich verschiedene Messwerte wie Coverage, Cyclomatic Complexity etc. Denen sollte man aber aus Erfahrung nicht zu viel Vertrauen schenken, weil alle „gefälscht“ werden können. Z.B. hilft es nicht, eine hohe Test-Coverage zu haben, wenn die Tests an sich schlecht sind. > > Andere Aspekte sind nicht direkt messbar aber genauso wichtig, wie bspw. ob eine Klasse nur eine einzige Sache macht (Singe responsibility principle). > > ... Quelle: [Yanick Witschi - terminal42](https://www.terminal42.ch/) --- # Was ist Softwarequalität? ## Clean Code Developer --- count: false # Was ist Softwarequalität? ## Clean Code Developer > - Don´t Repeat Yourself --- count: false # Was ist Softwarequalität? ## Clean Code Developer > - Don´t Repeat Yourself > > - Single Responsibility Principle --- count: false # Was ist Softwarequalität? ## Clean Code Developer > - Don´t Repeat Yourself > > - Single Responsibility Principle > > - Keep it simple, stupid --- class: center, middle # Vorstellung des Beispielprojekts
Beispielausgabe:
.ctologo[![Contao Konferenz](remark/assets/img/pwgenintegration.png)] --- class: center, middle --- class: center, middle # Fragen ??? --- class: center, middle # Vielen Dank ## für Eure Aufmerksamkeit