Artikel über Softwarearchitektur, Testautomation und PHP

Fundierte Perspektiven auf Architektur, Modernisierung, Qualität und professionelle Softwareentwicklung.

Wenn der Diff nichts kostet

Wenn der Diff nichts kostet

Sebastian Bergmann13 Min. LesezeitEngineering & Organisation

Symfony Language Tools nimmt keine Pull Requests mehr an, die meisten Laravel-Pakete keine Issues. Beide Entscheidungen beruhen auf derselben Annahme: Der Diff ist billig geworden. Was knapp bleibt, ist das Verständnis des Problems, und das transportiert ein fehlschlagender Test am besten.

Vertrauen ist nicht übertragbar

Vertrauen ist nicht übertragbar

Sebastian Bergmann7 Min. LesezeitEngineering & Organisation

Nach meinem Experiment mit KI-generiertem Code bin ich auf drei Beobachtungen gestoßen: von der Organisation über den Einzelnen bis zur nächsten Generation. Zusammen führen sie zu einer unbequemen Erkenntnis und zu der Fähigkeit, auf die es im KI-Zeitalter am meisten ankommen wird.

Wiederholung und Durchblick: Was ist neu in PHPUnit 13.3?

Wiederholung und Durchblick: Was ist neu in PHPUnit 13.3?

Sebastian Bergmann8 Min. LesezeitTesting & Qualität

Flaky Tests zuverlässig erkennen und kontrolliert tolerieren, Code Coverage aus Sicht deiner Klassen, sichtbar gemachte Branch und Path Coverage und ein Filter nach Testgröße: Ich zeige dir, was es Neues in PHPUnit 13.3 gibt.

Wie PHP Maschinencode erzeugt

Wie PHP Maschinencode erzeugt

Sebastian Bergmann20 Min. LesezeitPHP & Ökosystem

Der JIT ist auf keiner Standardinstallation eingeschaltet. Ihn einzuschalten ist eine Wette darauf, dass der kompilierte Code lange genug läuft, um die Kompilierung wieder hereinzuholen. An einer Testsuite mit 177 Tests verliert der Function-JIT diese Wette, und der Tracing-JIT gewinnt sie.

Wie PHP Bytecode optimiert

Wie PHP Bytecode optimiert

Sebastian Bergmann21 Min. LesezeitPHP & Ökosystem

OPcache heißt Cache, tut aber mehr, als Bytecode aufzuheben: Zwischen Compiler und Executor liegen fünfzehn Passes, die den Bytecode umbauen. Ich sehe ihnen dabei zu und messe nach, was davon in der Laufzeit ankommt.

Wie PHP Bytecode ausführt

Wie PHP Bytecode ausführt

Sebastian Bergmann26 Min. LesezeitPHP & Ökosystem

Welcher Compiler dein PHP-Binary gebaut hat, ist eine Performance-Entscheidung: Bis PHP 8.5 war ein mit Clang gebautes PHP je nach Benchmark bis zu 44 % langsamer als ein mit GCC gebautes. Der Unterschied liegt allein darin, wie der Executor von einer Instruktion zur nächsten kommt, und dafür hat die Zend Engine fünf Modelle.

Auch eine Sprache hat nichtfunktionale Anforderungen

Auch eine Sprache hat nichtfunktionale Anforderungen

Sebastian Bergmann13 Min. LesezeitPHP & Ökosystem

Ob eine Sprache modern ist, entscheidet niemand. Entschieden wird, ob man ein Jahrzehnt auf sie wetten kann: Wem gehört sie, wie kommen Upgrades, wie skaliert sie, und findet man in sechs Jahren noch jemanden dafür? Eine Bestandsaufnahme von PHP anhand der Kriterien, über die eine Architekturentscheidung tatsächlich fällt.

Vier von fünf

Vier von fünf

Sebastian Bergmann13 Min. LesezeitPHP & Ökosystem

Wie schneidet PHP im Jahr 2026 im Vergleich zu den Konsenskonzepten des modernen Sprachdesigns ab? Eine Bestandsaufnahme anhand der Kriterien Closures, Objekte, Pattern Matching und Generics sowie eine unkonventionelle Antwort auf die Frage der Erweiterbarkeit.

Dein composer.lock weiß, was ein Autohersteller nur vermutet

Dein composer.lock weiß, was ein Autohersteller nur vermutet

Sebastian Bergmann7 Min. LesezeitSecurity

Ein Autohersteller führt in seiner Open Source-Attribution ein Android-Botnet auf. Der Eintrag verrät, wie die Liste entstanden ist: durch Scannen statt durch Deklaration. Warum eine deklarierte Abhängigkeitsliste mehr wert ist als eine gescannte und wie das PHPUnit-PHAR seinen eigenen Inhalt offenlegt.

Wenn statische Analyse deinen Code ausführt

Wenn statische Analyse deinen Code ausführt

Sebastian Bergmann7 Min. LesezeitSecurity

Eine Sicherheitslücke in PHPCSUtils zeigt: Ein statisches Analysewerkzeug führt Code aus, den es nur lesen sollte. Warum disable_functions gegen eval() machtlos ist und wie ein Schalter in der PHP-Engine aussehen könnte, der eval() abschaltet.

Unveränderte Tests sind der halbe Beweis

Unveränderte Tests sind der halbe Beweis

Sebastian Bergmann9 Min. LesezeitTesting & Qualität

Mein liebster Bugfix fügt nur einen neuen Regressionstest hinzu und fasst keinen bestehenden Test an. Ich habe diese Behauptung an der Geschichte von PHPUnit überprüft: Am meisten gelernt habe ich von den Gegenbeispielen.

Composer und Packagist im Supply Chain-Stresstest

Composer und Packagist im Supply Chain-Stresstest

Sebastian Bergmann27 Min. LesezeitSecurity

2025 und 2026 waren ein Stresstest für die Lieferketten aller Package-Ökosysteme. Eine Bilanz für Composer und Packagist: was PHP richtig macht, was es lernen kann — und wem unsere Infrastruktur gehört.

Geschichten über Systeme, die sich Menschen widersetzen

Geschichten über Systeme, die sich Menschen widersetzen

Sebastian Bergmann5 Min. LesezeitEngineering & Organisation

Fünf der besten Fernsehserien, die ich je gesehen habe, erzählen von der Kluft zwischen dem, was Menschen erreichen wollen, und dem, was Institutionen ihnen erlauben. Sie faszinieren mich, denn nach Jahrzehnten der Entwicklung von Open Source-Software kenne ich vieles davon aus meinem eigenen Berufsalltag.

Präzision und Klarheit: Was ist neu in PHPUnit 13.2?

Präzision und Klarheit: Was ist neu in PHPUnit 13.2?

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Genau die Tests auswählen, die du brauchst, mehr Kontrolle über ihre Reihenfolge, schnellere und klarere Ausgaben bei Fehlschlägen und ausdrucksstärkere Test Doubles: Ich zeige dir, was es Neues in PHPUnit 13.2 gibt.

Code Coverage-Daten zusammenführen

Code Coverage-Daten zusammenführen

Sebastian Bergmann5 Min. LesezeitTesting & Qualität

Das Zusammenführen von Code Coverage-Daten aus parallelen CI-Jobs war lange schwierig und fehleranfällig. Diese Probleme sind jetzt endlich gelöst.

Was dein Testlauf längst weiß

Was dein Testlauf längst weiß

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

PHPUnit weiß bei jedem Lauf, wie lange jeder Test dauerte, wie viel Speicher er belegte und warum er scheiterte. Das meiste davon verpufft. otr-report liest diese Daten aus der Open-Test-Reporting-Logdatei zurück und macht sie nutzbar.

Geschwindigkeit als Sicherheitsmerkmal

Geschwindigkeit als Sicherheitsmerkmal

Sebastian Bergmann10 Min. LesezeitSecurity

Wie schnell ist deine Testsuite, und welche Schwachstellen findet ein LLM-Agent deshalb nicht? Was lange ein Produktivitätsthema war, gehört heute in die Security-Diskussion.

Turbo-Charging Your PHPUnit Suite

Turbo-Charging Your PHPUnit Suite

Sebastian Bergmann6 Min. LesezeitTesting & Qualität

Langsame Tests bremsen den Arbeitsfluss, machen TDD zunichte und untergraben das Vertrauen, bis schließlich niemand mehr die Testsuite ausführt. Die Lösung umfasst vier Ebenen, und die größten Vorteile ergeben sich aus dem Testdesign, nicht aus der Infrastruktur oder der Parallelisierung.

Test-Driven Security

Test-Driven Security

Sebastian Bergmann9 Min. LesezeitSecurity

Für jede Schwachstelle, die wir in Produktion finden, gibt es einen Test, der sie verhindert hätte, wenn er existiert hätte. Test-Driven Security behandelt die CWE-Liste als Checkliste und PHPUnit als das Werkzeug, das wir ohnehin schon in unserem Workflow haben.

Debugging als Designziel

Debugging als Designziel

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Warum fühlen sich manche Bugs wie eine kurze Detektivgeschichte an, während andere sich wie ein nie endender Krimi anfühlen? Ich zeige dir, welche Entscheidungen deine Software debugbar machen.

Code, den ich nicht habe, macht keine Probleme

Code, den ich nicht habe, macht keine Probleme

Sebastian Bergmann5 Min. LesezeitArchitektur & Design

Nicht jedes Problem braucht neuen Code. Und jede Zeile, die wir nicht schreiben, ist eine Zeile, die keine Probleme macht.

Angriffsfläche beginnt im Repository

Angriffsfläche beginnt im Repository

Sebastian Bergmann6 Min. LesezeitSecurity

Wir schützen, was existiert. Aber fragen wir oft genug, ob es überhaupt existieren sollte? Wie das Entfernen ungenutzter Branches vor Poisoned Pipeline Execution schützen kann.

GitHub Actions Workflows härten

GitHub Actions Workflows härten

Sebastian Bergmann8 Min. LesezeitSecurity

Ein Rundgang durch die GitHub Actions-Schwachstellen in den Workflows von PHPUnit: wie jede einzelne hätte ausgenutzt werden können und was geändert wurde, um sie zu schließen.

ComoCamp 2026

ComoCamp 2026

Sebastian Bergmann4 Min. LesezeitEngineering & Organisation

Drei Tage Wien, drei Tage ComoCamp: Mein Erlebnisbericht über inspirierende Workshops, spannende Open Space Sessions und die einzigartig offene, gemeinschaftliche Atmosphäre.

Closures, Klarheit und Kontrolle: Was ist neu in PHPUnit 13.1?

Closures, Klarheit und Kontrolle: Was ist neu in PHPUnit 13.1?

Sebastian Bergmann5 Min. LesezeitTesting & Qualität

Closures als Data Provider, umfassenderes Open Test Reporting, benutzerdefinierte Issue Trigger Resolver und wichtige Änderungen bei Code Coverage: Ich zeige dir, was es Neues gibt.

Technische Schulden sind keine Bosheit

Technische Schulden sind keine Bosheit

Sebastian Bergmann3 Min. LesezeitEngineering & Organisation

Technische Schulden sind keine Bosheit, sie sind Kontext. Ein Argument dafür, warum Empathie eine technische Fähigkeit ist, die wichtiger ist, als du denkst.

Debugging von Performance in PHP

Debugging von Performance in PHP

Sebastian Bergmann6 Min. LesezeitTesting & Qualität

„Es fühlt sich langsam an“ ist keine Diagnose. Ich erkläre die drei Disziplinen, die vage Beschwerden in verwertbare Daten verwandeln: Tracing, Profiling und Benchmarking.

Der Türsteher im Dependency-Resolver

Der Türsteher im Dependency-Resolver

Sebastian Bergmann18 Min. LesezeitSecurity

Composer 2.9 verlagert die Durchsetzung von Security-Advisories aus einem optionalen Drittanbieter-Paket in den Resolver selbst. Dieser Artikel zeigt, wie der Mechanismus funktioniert, wie er sich zu den älteren Paketen verhält, die er ersetzt, und an welchen Stellen das neue Verhalten dich auf eine Weise treffen kann, wie es das alte, passive Audit nie getan hat.

Alles, was wir haben

Alles, was wir haben

Sebastian Bergmann6 Min. LesezeitTesting & Qualität

In einer Welt mit unendlich vielen Möglichkeiten, wie Code falsch sein kann, reicht ein Ansatz allein nicht aus, um unsere Software wirklich robust zu machen.

Sicherheit durch Chaos

Sicherheit durch Chaos

Sebastian Bergmann9 Min. LesezeitSecurity

Dieser praxisnahe Deep Dive in die Philosophie hinter "Security through chaos" zeigt, dass Sicherheit nicht aus perfekter Voraussicht entsteht, sondern aus dem Überleben von Chaos.

Mehr als Best Practices

Mehr als Best Practices

Sebastian Bergmann17 Min. LesezeitEngineering & Organisation

Testen, Code Reviews und Dokumentation sind wichtige Voraussetzungen, um die Autonomie der KI einzuschränken und gleichzeitig die Handlungsfähigkeit des Menschen in der Softwareentwicklung zu schützen.

Effektive Code Reviews

Effektive Code Reviews

Sebastian Bergmann8 Min. LesezeitEngineering & Organisation

Pair, Pull oder Post-Push? Finde die für dein Team passende Code Review-Strategie.

Schneller als Verstehen

Schneller als Verstehen

Sebastian Bergmann5 Min. LesezeitEngineering & Organisation

Ein Coding Agent hat in 15 Minuten eine komplizierte Softwaremetrik umgesetzt. Ich habe jetzt Stunden damit verbracht, zu checken, ob die Umsetzung richtig ist. Ist das wirklich ein Produktivitätsgewinn?

Vom Anti-Pattern zur Klarheit

Vom Anti-Pattern zur Klarheit

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Der any() Matcher ist deprecated. Aber die Migration ist einfacher, als du denkst – und führt zu besseren Tests.

Besser als withConsecutive()

Besser als withConsecutive()

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Ich zeige dir, wie die Parameter Set Matcher von PHPUnit 13 endlich das Problem lösen, das das Upgrade auf PHPUnit 10 zu einer solchen Herausforderung gemacht hat.

Replay Testing

Replay Testing

Sebastian Bergmann6 Min. LesezeitTesting & Qualität

Replay Testing nutzt die Erinnerung deines Event Sourcing-Systems, um neue Versionen mit echter Historie zu prüfen und zeigt, welche Orakel wirklich Vertrauen in deine Änderungen schaffen.

Von Events zu Erkenntnissen

Von Events zu Erkenntnissen

Sebastian Bergmann5 Min. LesezeitTesting & Qualität

Event Storming, DDD, CQRS und Event Sourcing greifen ineinander: Die Tests prüfen nicht nur die Events, sondern werden auch zur lebenden Dokumentation und zur Brücke zwischen Fachlichkeit und Code.

Wie sich mein Verständnis von Software wandelte

Wie sich mein Verständnis von Software wandelte

Sebastian Bergmann4 Min. LesezeitArchitektur & Design

Eine klassische Datenbank speichert nur das "Jetzt" und vergisst die Geschichte. In diesem Artikel beschreibe ich meinen Weg zu DDD und Event Sourcing und erkläre, warum wir lernen müssen, die Zeit selbst zu modellieren.

Data Provider oder Properties?

Data Provider oder Properties?

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Ein Test, hunderte Eingaben und eine automatische Randfallsuche. Doch das eigenschaftsbasierte Testen hat eine versteckte Falle, die viele übersehen.

Kleinere Eingabe, größere Erkenntnis

Kleinere Eingabe, größere Erkenntnis

Sebastian Bergmann5 Min. LesezeitTesting & Qualität

Shrinking ist der heimliche Held des eigenschaftsbasierten Testens. Ich zeige dir, wie es hilft, unvermeidliche Fehler verständlich zu machen.

Property-Based Testing

Property-Based Testing

Sebastian Bergmann8 Min. LesezeitTesting & Qualität

Wir testen nur das, woran wir denken. Genau das kann jedoch zum Problem werden.

Open Source, offene Feeds: Mastodon und PeerTube als Online-Spaces der PHP-Community

Open Source, offene Feeds: Mastodon und PeerTube als Online-Spaces der PHP-Community

Sebastian Bergmann7 Min. LesezeitEngineering & Organisation

Die PHP-Community baut mit phpc.social und phpc.tv ihre eigenen, spendenfinanzierten Online-Spaces im Fediverse – frei von Algorithmen und faschistischen Tech-Bros.

Typsichere Collections

Typsichere Collections

Sebastian Bergmann10 Min. LesezeitPHP & Ökosystem

Braucht PHP wirklich Generics? Eine kontroverse These mit praktischer Lösung.

Wie PHP und sein Ökosystem sich gegenseitig testen

Wie PHP und sein Ökosystem sich gegenseitig testen

Sebastian Bergmann7 Min. LesezeitPHP & Ökosystem

PHP testet Laravel, Symfony, PHPUnit und mehr jede Nacht. PHPUnit testet PHP. Das ist Open Source-Zusammenarbeit in Aktion.

Die Stub-/Mock-Intervention

Die Stub-/Mock-Intervention

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Sich selbst sabotierende Mock Objects? Mit PHPUnit 12.5 gehört das der Vergangenheit an, denn der Test Runner schaut dir jetzt über die Schulter und stellt die richtige Frage: Brauchst du wirklich ein Mock Object, oder reicht ein Test Stub?

Eine festliche Auszeit

Eine festliche Auszeit

Sebastian Bergmann2 Min. LesezeitEngineering & Organisation

Ich mache eine Pause von meinen wöchentlichen Artikeln und lade dich zu einem kostenlosen Online-Event ein, bei dem ich dir die neuesten Verbesserungen von PHPUnit vorstelle.

Ein Flugschreiber für deinen Code

Ein Flugschreiber für deinen Code

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Dein PHP-Projekt hat keine Tests und ein Upgrade steht an? Das klassische Dilemma: Um Tests einzuführen, musst du Code ändern – um Code zu ändern, brauchst du Tests. Wie du diesen Kreislauf durchbrichst? Mit Characterization Tests.

Die Wahrheit erkennen: Test Oracles

Die Wahrheit erkennen: Test Oracles

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Deine Tests sind erfolgreich. Aber sind sie das wirklich? Ohne ein passendes Test Oracle wirst du das nie erfahren.

Testen mit DTOs und Wertobjekten

Testen mit DTOs und Wertobjekten

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Kenne die Unterschiede zwischen Datentransferobjekten und Wertobjekten und verstehe, warum Unveränderlichkeit beim Testen hilft.

Testen mit (und ohne) Abhängigkeiten

Testen mit (und ohne) Abhängigkeiten

Sebastian Bergmann9 Min. LesezeitTesting & Qualität

Warum die Unterscheidung zwischen Test Stubs und Mock Objects in PHPUnit die Qualität und Lesbarkeit von Tests deutlich verbessert.

Path Coverage oder Mutation Testing?

Path Coverage oder Mutation Testing?

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Wie gründlich decken deine Tests den Code ab und wie zuverlässig entdecken sie echte Fehler? Ich zeige dir, wie du das herausfindest.

Open Source Blackout

Open Source Blackout

Sebastian Bergmann6 Min. LesezeitEngineering & Organisation

Bist du bereit für eine Welt, in der deine Projekte ins Stocken geraten, Deployments nicht möglich sind und Tech-Giganten sich nicht mehr auf kostenlose, von der Community betriebene Infrastruktur verlassen können?

Mehr Kontrolle, weniger Probleme: Was gibt's Neues in PHPUnit 12.4?

Mehr Kontrolle, weniger Probleme: Was gibt's Neues in PHPUnit 12.4?

Sebastian Bergmann2 Min. LesezeitTesting & Qualität

Finde heraus, wie PHPUnit 12.4 dir dabei hilft, mit weniger Aufwand und mehr Einblicken ans Ziel zu kommen.

Moderne PHP-Entwicklung

Moderne PHP-Entwicklung

Sebastian Bergmann4 Min. LesezeitPHP & Ökosystem

Moderne PHP-Entwicklung vereint bewährte Prinzipien mit aktuellen Werkzeugen. Sie bringt Dokumentation, Qualität, Automatisierung und KI zusammen.

Ein Blick ins Jahr 2035

Ein Blick ins Jahr 2035

Sebastian Bergmann4 Min. LesezeitEngineering & Organisation

Ich bespreche zentrale Zukunftsfragen zu den Themen Ethik, digitale Souveränität, Open Source und Webstandards.

PHPUnit-Features, die selbst Profis überraschen

PHPUnit-Features, die selbst Profis überraschen

Sebastian Bergmann2 Min. LesezeitTesting & Qualität

Entdecke die versteckten Fähigkeiten von PHPUnit und lerne, wie du mit cleveren Features das Maximum aus deinen Tests herausholst.

Von AmigaBASIC bis KI

Von AmigaBASIC bis KI

Sebastian Bergmann17 Min. LesezeitEngineering & Organisation

Ein persönlicher Streifzug von meinen ersten BASIC-Zeilen auf dem Amiga bis zu der Frage, wie KI die nächste Generation Entwicklerinnen und Entwickler prägt.

Innovation durch Zusammenarbeit: Die Highlights von PHPUnit 12.3

Innovation durch Zusammenarbeit: Die Highlights von PHPUnit 12.3

Sebastian Bergmann3 Min. LesezeitTesting & Qualität

Erfahre, wie die Zusammenarbeit mit echten Entwickler:innen die neuesten Verbesserungen in PHPUnit 12.3 beeinflusst hat.

Psalm oder PHPStan?

Psalm oder PHPStan?

Sebastian Bergmann8 Min. LesezeitTesting & Qualität

Psalm oder PHPStan: welches Werkzeug ist die bessere Wahl für die Codeanalyse? Oder lohnt sich die Kombination beider Tools für maximale Code-Qualität?

30 Jahre PHP, 25 Jahre PHPUnit

30 Jahre PHP, 25 Jahre PHPUnit

Sebastian Bergmann6 Min. LesezeitTesting & Qualität

30 Jahre PHP und Open-Source-Innovationen im Rückblick – begleitet von 25 Jahren PHPUnit.

ComoCamp 2025

ComoCamp 2025

Sebastian Bergmann2 Min. LesezeitEngineering & Organisation

Ich bin begeistert von inspirierenden Workshops, spannenden Open Space Sessions und der einzigartig offenen, gemeinschaftlichen Atmosphäre des ComoCamps.

SoCraTes 2024

SoCraTes 2024

Sebastian Bergmann5 Min. LesezeitEngineering & Organisation

Die SoCraTes hat mich durch inspirierende Gespräche, spannende Sessions zu den Themen PHP, Software-Testing, Security und Open-Source-Funding sowie die besondere, gemeinschaftliche Atmosphäre nachhaltig bereichert und motiviert.

PHP_CodeSniffer oder PHP-CS-Fixer?

PHP_CodeSniffer oder PHP-CS-Fixer?

Sebastian Bergmann3 Min. LesezeitTesting & Qualität

Sollte PHP_CodeSniffer oder PHP-CS-Fixer verwendet werden, um Code "in Form" zu bringen? Sollten gar beide Werkzeuge zusammen verwendet werden?

PCOV oder Xdebug?

PCOV oder Xdebug?

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Sollte PCOV oder Xdebug verwendet werden, um Code Coverage-Daten zu sammeln? Sebastian Bergmann gibt eine persönliche Antwort.

PHPUnit Code Sprint: März 2024

PHPUnit Code Sprint: März 2024

Sebastian Bergmann2 Min. LesezeitTesting & Qualität

Erfahrungen und Erkenntnisse aus dem jüngsten Code-Sprint des PHPUnit-Projekts.

O Brother, where art thou?

O Brother, where art thou?

Stefan Priebsch3 Min. LesezeitPHP & Ökosystem

Warum bringen einzelne Veränderungen nicht den gewünschten Erfolg?

Domain-Driven Design mit PHP

Domain-Driven Design mit PHP

Stefan Priebsch18 Min. LesezeitArchitektur & Design

Mehr Fachlichkeit statt Technologie-Details: Diese Entwurfsmuster aus dem Domain-Driven Design sollten Sie kennen und anwenden können.

PHP 7: Security-Support endet. Was nun?

PHP 7: Security-Support endet. Was nun?

Sebastian Bergmann3 Min. LesezeitSecurity

Der Security-Support für PHP 7 ist beendet. Was bedeutet das für Sie?

Wie ich Testinventar verwalte

Wie ich Testinventar verwalte

Sebastian Bergmann5 Min. LesezeitTesting & Qualität

Eine Best Practice im Wandel der Zeit: eine Reflektion über alte und neue Wege, um die Testumgebung für einen Unit-Test zu erzeugen.

Wie heißen Deine Konstruktoren?

Wie heißen Deine Konstruktoren?

Stefan Priebsch14 Min. LesezeitPHP & Ökosystem

PHP unterstützt kein Überladen von Konstruktoren. Named Constructors schaffen Abhilfe. Doch wie benennen wir diese am besten?

A Friday for Green IT

A Friday for Green IT

Stefan Priebsch10 Min. LesezeitEngineering & Organisation

Was trägt die IT-Branche zum Klimawandel bei? Eine Panel-Diskussion auf unserer Konferenz lieferte zu dieser Frage interessante Erkenntnisse.

Gemeinsam

Gemeinsam

Stefan Priebsch2 Min. LesezeitPHP & Ökosystem

Es war schon immer da, aber wir haben es nicht gesehen. Vielleicht wollten wir es auch nicht sehen.

Bereit oder nicht: es geht los

Bereit oder nicht: es geht los

Sebastian Bergmann7 Min. LesezeitPHP & Ökosystem

Ist Ihre Software bereit für PHP 8.1? Jetzt ist es an der Zeit, das herauszufinden.

Ketchup oder Mayo?

Ketchup oder Mayo?

Stefan Priebsch9 Min. LesezeitPHP & Ökosystem

In einer Pommesbude gibt es ein paar Speisen und dazu Getränke. Da kann Gründen ja nicht besonders schwierig sein.

Software-Entwicklung und Profisport

Software-Entwicklung und Profisport

Stefan Priebsch2 Min. LesezeitEngineering & Organisation

Der Vergleich zwischen Software-Entwicklung und Profisport kann erschrecken. Es geht hier allerdings nicht um Bewegungsmangel bei Entwicklern.

Mocke nicht, was Dir nicht gehört

Mocke nicht, was Dir nicht gehört

Stefan Priebsch, Sebastian Bergmann8 Min. LesezeitTesting & Qualität

Abstraktion ist ein zentrales Themen beim Programmieren. Gibt jedoch ein Drittanbieter eine Abstraktion vor, kann es beim Testen Probleme geben.

Migration auf PHPUnit 9

Migration auf PHPUnit 9

Sebastian Bergmann15 Min. LesezeitTesting & Qualität

Im Spannungsfeld zwischen Rückwärtskompatibilität und Fortschritt darf eine gute Developer Experience nicht zu kurz kommen.

Mit Cache wird alles schneller. Oder?

Mit Cache wird alles schneller. Oder?

Sebastian Bergmann13 Min. LesezeitTesting & Qualität

Ein unerwartetes PHPUnit-Problem und die Erkenntnisse, die sich daraus ableiten lassen.

Wir haben gar kein Framework im Einsatz

Wir haben gar kein Framework im Einsatz

Stefan Priebsch10 Min. LesezeitPHP & Ökosystem

Ist ein eigenes Framework besser als eine Standardlösung? Oder kann man auf ein Framework ganz verzichten?

Entwickler gesucht, Maintainer gefunden

Entwickler gesucht, Maintainer gefunden

Stefan Priebsch9 Min. LesezeitEngineering & Organisation

Es ist sehr schwierig, gute Entwickler zu finden. Schon mal versucht, stattdessen einen Maintainer zu suchen?

Scheiternde IT-Projekte

Scheiternde IT-Projekte

Sebastian Bergmann7 Min. LesezeitEngineering & Organisation

Was wir aus gescheiterten IT-Projekten lernen können – und wie daraus bessere Entscheidungen entstehen.

Wer hat an der Uhr gedreht?

Wer hat an der Uhr gedreht?

Sebastian Bergmann3 Min. LesezeitTesting & Qualität

Warum PHPUnit nicht mehr auf die Systemzeit schaut – und was das für verlässliche Tests bedeutet.

Adieu, IT-Konferenz

Adieu, IT-Konferenz

Sebastian Bergmann, Stefan Priebsch3 Min. LesezeitEngineering & Organisation

Das Coronavirus verändert unser Leben. Welche Auswirkungen hat die Pandemie auf die Zukunft von IT-Konferenzen?

Besseres Design dank CQRS

Besseres Design dank CQRS

Stefan Priebsch17 Min. LesezeitArchitektur & Design

Getter lesen und Setter schreiben. Was passiert, wenn man diese Idee auf die Architektur einer Anwendung anwendet?

Automation und Edge Cases

Automation und Edge Cases

Stefan Priebsch7 Min. LesezeitPHP & Ökosystem

Die Corona-Pandemie zwingt uns zu neuen Auslegungen des Begriffs "Edge Case". Das führt zu interessanten IT-Problemen.

PHPUnit: Ein Sicherheitsrisiko?

PHPUnit: Ein Sicherheitsrisiko?

Sebastian Bergmann7 Min. LesezeitSecurity

Warum PHPUnit auf einem Webserver nichts zu suchen hat und welches Sicherheitsrisiko dadurch entsteht.

Hilfe! Meine Tests funktionieren nicht mehr

Hilfe! Meine Tests funktionieren nicht mehr

Sebastian Bergmann16 Min. LesezeitTesting & Qualität

Tests auf Knopfdruck ausführen ist eine tolle Sache. Das Testwerkzeug auf Knopfdruck aktualisieren klingt ebenfalls vielversprechend - oder vielleicht doch nicht?

Schatten der Vergangenheit

Schatten der Vergangenheit

Sebastian Bergmann, Stefan Priebsch10 Min. LesezeitSecurity

Installationprogramme sind lohnende Angriffsziele, auch wenn sie keiner mehr benutzt. Hintergründe zum Einbruch in die PEAR-Infrastruktur des PHP-Projekts.

Wer zahlt für PHP?

Wer zahlt für PHP?

Sebastian Bergmann, Stefan Priebsch4 Min. LesezeitEngineering & Organisation

Da es keine Unterstützung durch ein Unternehmen oder eine gemeinnützige Organisation gibt, wer bezahlt die Entwicklung und Wartung von PHP - und wie?

Schnellere Code Coverage

Schnellere Code Coverage

Sebastian Bergmann7 Min. LesezeitTesting & Qualität

Wie gezielte Optimierungen die Code-Coverage-Analyse von PHPUnit deutlich beschleunigt haben.

Die Zukunft von Zend

Die Zukunft von Zend

Stefan Priebsch5 Min. LesezeitPHP & Ökosystem

Einige Schlüsselpersonen haben angekündigt, dass sie Rogue Wave verlassen werden. Gefährdet das die Zukunft von PHP?

Microservices in der Mittagspause

Microservices in der Mittagspause

Stefan Priebsch4 Min. LesezeitArchitektur & Design

Die richtige Dekomposition ist ein entscheidender Erfolgsfaktor für Microservice-Architekturen. Hier ist der Grund dafür.

Konferenzen: zum Spaß oder für Geld?

Konferenzen: zum Spaß oder für Geld?

Sebastian Bergmann, Stefan Priebsch4 Min. LesezeitEngineering & Organisation

Wie viel Geld Konferenzsprecher in der PHP-Community tatsächlich verdienen.

Warum Entwickler Code schreiben

Warum Entwickler Code schreiben

Stefan Priebsch3 Min. LesezeitEngineering & Organisation

Wenn sie nicht gerade in Meetings sind, schreiben Entwickler oft Programmcode. Warum ist dieser eigentlich immer so schwer zu verstehen?

Testen hält mich von der Arbeit ab

Testen hält mich von der Arbeit ab

Sebastian Bergmann, Stefan Priebsch4 Min. LesezeitTesting & Qualität

Das Schreiben von Unit Tests braucht Zeit. Lohnt sich dieser Aufwand wirklich?

Der Todesstern

Der Todesstern

Sebastian Bergmann3 Min. LesezeitPHP & Ökosystem

Warum zu offene Versionsbeschränkungen Builds gefährden und wie sich das vermeiden lässt.

PHP 5: Aktiver Support endet. Was nun?

PHP 5: Aktiver Support endet. Was nun?

Sebastian Bergmann4 Min. LesezeitPHP & Ökosystem

Der aktive Support für PHP 5 ist beendet. Was bedeutet das für Sie?

PHPUnit: Best Practices hinterfragen

PHPUnit: Best Practices hinterfragen

Sebastian Bergmann8 Min. LesezeitTesting & Qualität

Best Practices sind nicht in Stein gemeißelt und müssen von Zeit zu Zeit hinterfragt und gegebenenfalls angepasst werden.

Wie man Daten validiert

Wie man Daten validiert

Stefan Priebsch14 Min. LesezeitPHP & Ökosystem

Die Validierung von Daten scheint eine der wichtigsten Aufgaben einer Anwendung zu sein. Schließlich kann man Daten aus externen Quellen nicht vertrauen.

Über Hackathons

Über Hackathons

Stefan Priebsch6 Min. LesezeitEngineering & Organisation

Hackathons machen Spaß können sehr lehrreich sein. Aber vermitteln sie den Teilnehmern auch die richtigen Werte?

Versteckte Abhängigkeiten

Versteckte Abhängigkeiten

Stefan Priebsch11 Min. LesezeitArchitektur & Design

Das Herumreichen eines Service-Locators ist eine schlechte Idee, weil es Abhängigkeiten verschleiert. Aber wie können wir es vermeiden?

Wird das WWW das next big thing?

Wird das WWW das next big thing?

Stefan Priebsch3 Min. LesezeitPHP & Ökosystem

Von Enterprise-Software zu Skriptsprachen: Stefan Priebsch erinnert sich, warum und wie er vor über 15 Jahren das erste Mal mit PHP in Kontakt kam.

Den Wandel vorantreiben

Den Wandel vorantreiben

Stefan Priebsch3 Min. LesezeitEngineering & Organisation

Sie sind nicht ganz zufrieden damit, wie es in Ihrem Team oder Ihrer Organisation läuft? Es gibt einen einfachen Weg, um Veränderungen anzustoßen.

PHP 7 bricht Abwärtskompatibilität

PHP 7 bricht Abwärtskompatibilität

Stefan Priebsch4 Min. LesezeitPHP & Ökosystem

Wie im Rahmen eines neuen Major-Releases wie PHP 7 zu erwarten ist, gibt es Brüche in der Abwärtskompatibilität. Wie ist damit umzugehen?

Bessere Tests für Joomla

Bessere Tests für Joomla

Sebastian Bergmann1 Min. LesezeitTesting & Qualität

In einem Code Sprint zur Verbesserung der Joomla-Testumgebung wurden Fehler in PHPUnit und PHP selbst gefunden und beseitigt.

SoCraTes 2014

SoCraTes 2014

Sebastian Bergmann4 Min. LesezeitEngineering & Organisation

Meine erste SoCraTes: ein World Café am Donnerstag, zwei Tage Open Space zu TDD, Legacy Code und Apprenticeship, und ein Brettspiel, dessen Spielziel dem eines Softwareprojekts verdächtig ähnlich sieht.

Bessere PHPUnit-Unterstützung in TYPO3

Bessere PHPUnit-Unterstützung in TYPO3

Sebastian Bergmann1 Min. LesezeitTesting & Qualität

Wie ein Code-Sprint die PHPUnit-Unterstützung in TYPO3 gezielt verbessert hat.

Desintegrationstests

Desintegrationstests

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Was der Mars Climate Orbiter über Testebenen und die Grenzen isolierter Tests lehrt.

Lohnt sich kontinuierliche Integration?

Lohnt sich kontinuierliche Integration?

Sebastian Bergmann5 Min. LesezeitEngineering & Organisation

Ab welcher Projektgröße lohnt sich kontinuierliche Integration in PHP-Projekten?

Man ist, was man isst

Man ist, was man isst

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Was Entwicklungsteams von einer professionellen Küchenbrigade über Qualität und Zusammenarbeit lernen können.

Neugier und Perfektionismus

Neugier und Perfektionismus

Stefan Priebsch4 Min. LesezeitPHP & Ökosystem

Ein Vater von dreijährigen Zwillingen sieht erstaunliche Parallelen zwischen heranwachsenden Kindern und Software-Entwicklung.

Integrationstests - das fehlende Bindeglied

Integrationstests - das fehlende Bindeglied

Sebastian Bergmann, Stefan Priebsch3 Min. LesezeitTesting & Qualität

Systemtests geben wenig Hinweise auf Fehlerursachen. Unit-Tests dagegen machen keine Aussage über das Verhalten einer Anwendung. Integrationstests schließen diese Lücke.

Großstadtlegenden und Fehlerbehandlung

Großstadtlegenden und Fehlerbehandlung

Stefan Priebsch5 Min. LesezeitPHP & Ökosystem

Wir alle kennen Geschichten, die mit "Ich habe von jemandem gehört" beginnen. Sind sie wahr, oder nur eine Großstadtlegende?

Blindes Vertrauen

Blindes Vertrauen

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Ein Kurztrip zum Bahnhof wird zu einer Odyssee. Was sich daraus über Testautomation, technische Schulden und Qualitätsziele lernen lässt.

Experimentelle Bahnübergänge

Experimentelle Bahnübergänge

Stefan Priebsch5 Min. LesezeitPHP & Ökosystem

Was ein beschrankter Bahnübergang über kontrollierte Experimente, Verkehrsfluss und experimentgetriebene Softwareentwicklung lehrt.

Software Development Fluxx

Software Development Fluxx

Sebastian Bergmann3 Min. LesezeitTesting & Qualität

Was das Kartenspiel Star Fluxx über Agilität, objektorientiertes Design und Qualitätssicherung verrät.

Daten, Persistenz und meine Bratpfanne

Daten, Persistenz und meine Bratpfanne

Stefan Priebsch4 Min. LesezeitPHP & Ökosystem

Was eine Bratpfanne über relationale und nicht-relationale Datenhaltung erklären kann.

Wenn es heiß wird

Wenn es heiß wird

Sebastian Bergmann3 Min. LesezeitTesting & Qualität

Wenn die Klimaanlage nicht funktioniert, kann es an Bord eines ICE im Sommer so richtig heiß werden. Ein Plädoyer für Qualitätsziele.

Spaces oder Tabs?

Spaces oder Tabs?

Stefan Priebsch2 Min. LesezeitEngineering & Organisation

Entwickler fragt man besser nicht, welches Betriebssystem das Beste ist. Oder ob man mit Tabulatoren oder Leerzeichen einrücken soll.

Sechzig Prozent Qualität

Sechzig Prozent Qualität

Sebastian Bergmann4 Min. LesezeitTesting & Qualität

Was Hotelbewertungen über messbare und gemeinsam verstandene Qualitätsziele lehren.

Das große Ganze sehen

Das große Ganze sehen

Stefan Priebsch4 Min. LesezeitPHP & Ökosystem

Die Menschheit baut schon seit über 5000 Jahren Gebäude. Software-Entwicklung dagegen ist eine noch sehr junge Disziplin.