Termine und Veranstaltungen
Januar 2025
Web Security 360: XSS & die Content Security Policy
Internet-Anwendungen werden rund um die Uhr angegriffen. Sicherheit sollte daher nicht nur eine Nebenrolle spielen. Cross-Site-Scripting lässt sich effektiv verhindern - nicht zuletzt durch Einsatz der Content Security Policy
Details AnmeldungClean Code-Prinzipien: Integration Operation Segregation Principle
Wir erläutern jeden Monat ein Clean Code-Prinzip und zeigen, wann und wie man es richtig anwendet. Eine klare Trennung von Aufgaben und Verantwortlichkeiten verbessert den Softwareentwurf. Heute geht es um die viel zu wenig beachtete Aufteilung des Codes in Integrationen und Operationen.
Details AnmeldungDevOps: Hardening Nginx & PHP-FPM
Damit die erstellte Software ihr volles Potenzial entfalten kann, bedarf es einer geeigneten Betriebsumgebung. Denn nur wenn alle Komponenten gut aufeinander abgestimmt sind und man die Kontrolle über alle Systeme hat, steht dem Erfolg nichts mehr im Wege. NGINX und PHP-FPM haben sich als Laufzeitumgebung für PHP-Anwendungen im Alltag etabliert. In dieser Session werfen wir daher einen Blick auf optimierte und gehärtete Einstellungen, die einen sicheren Betrieb des Gesamtsystems gewährleisten.
Design Patterns: State
Jeden Monat lernen wir in 45 Minuten durch Live-Coding ein Entwurfsmuster kennen und richtig einzusetzen. Heute lernen wir, zustandsabhängig unterschiedliches Verhalten eines Objekts abzubilden.
Details AnmeldungOOP Deep Dive
Elevate your programming skills by mastering Object-Oriented Development in our one-day intensive class. We will cover essential principles and best practices that will empower you to build robust, scalable software solutions.
Details AnmeldungTest Automation with PHPUnit
Automated tests save costs and safeguard future changes and enhancements to the software.
Details AnmeldungEinführung in die kontinuierliche Integration
Durch die Automatisierung aller Build-Prozesse behalten Sie den Überblick und gewinnen Zeit für die Weiterentwicklung Ihrer Software.
Modern PHP: Type Safety
A closer look into new and rarely used PHP features. Since PHP 8, PHP can optionally be used as a type-safe language. Let's explore the advantages.
Live Coding: Chess
No textbook and no training can replace programming practice. Join us in our live coding sessions, where we teach you how to code like a pro. Moving a piece on a chess board can't be difficult to implement. Or can it?
Tester's Corner: Riskante Tests erkennen und behandeln
Jeden Monat behandeln wir kurz und prägnant ein Thema rund um das automatisierte Testen von Software.
Details AnmeldungFebruar 2025
Web Security 360: Injektion Angriff
Internet-Anwendungen werden rund um die Uhr angegriffen. Sicherheit sollte daher nicht nur eine Nebenrolle spielen. Egal ob beim Zugriff auf die Datenbank oder Verwendung von externen Schnittstellen: Kommt Ihre Anwendung mit manipulierten Ein- und Ausgaben klar?
Details AnmeldungClean Code-Prinzipien: Favour Composition over Inheritance
Wir erläutern jeden Monat ein Clean Code-Prinzip und zeigen, wann und wie man es richtig anwendet. Vererbung ist ein umstrittenes OOP-Prinzip, da eine Vererbungsbeziehung die stärkste Kopplung ist, die es in der Objektorientierung gibt. Heute lernen wir, wie wir Vererbung vermeiden und stattdessen auf Komposition setzen können.
Details AnmeldungModelling: Event Storming
Collaborative modeling might be the next big thing in software development. Let's explore popular modeling methods, one by one. Event Storming is well-suited for collaborative exploration of complex business domains. It's also a great process modelling tool.
Live Demo: PHPUnit 12
No textbook, blog post, or tutorial can replace real practice. Join Sebastian Bergmann to celebrate the release of PHPUnit 12, learn the motivation behind the changes in this new major version, and experience new features in live coding.
Details AnmeldungAdvanced PHPUnit
Successful test automation in everyday project work with solutions even for particularly tricky problems.
Details AnmeldungDevOps: Logging Strategie
Damit die erstellte Software ihr volles Potenzial entfalten kann, bedarf es einer geeigneten Betriebsumgebung. Denn nur wenn alle Komponenten gut aufeinander abgestimmt sind und man die Kontrolle über alle Systeme hat, steht dem Erfolg nichts mehr im Wege. Klassische Logging-Ansätze erzeugen fast immer eine unstrukturierte Datenflut mit unangemessenem Detaillierungsgrad. In dieser Session werden wir die Logging-Strategie überdenken und mit Hilfe von JournalD überschaubar und durchsuchbar machen.
Design Patterns: Chain of Responsibility
Jeden Monat lernen wir in 45 Minuten durch Live-Coding ein Entwurfsmuster kennen und richtig einzusetzen. Heute üben wir lose Kopplung durch Verkettung von Objekten.
Details AnmeldungTester's Corner: PHPUnit anpassen und erweitern
Jeden Monat behandeln wir kurz und prägnant ein Thema rund um das automatisierte Testen von Software.
Details AnmeldungRichtig OOP
Ein solides Verständnis für Objektorientierte Programmierung ist eine der wichtigsten Voraussetzungen für den professionellen PHP-Einsatz.
Gitlab CI für Fortgeschrittene
Pipelines im Projektalltag optimieren - mit Lösungen auch für knifflige Probleme.
Modern PHP: Enums
A closer look into new and rarely used PHP features. Since PHP 8.1, we have enumerations, but they are not yet widely used. Let's change that.
März 2025
Web Security 360: Sicherheitsrelevante Header
Internet-Anwendungen werden rund um die Uhr angegriffen. Sicherheit sollte daher nicht nur eine Nebenrolle spielen. Für optimale Sicherheit erwarten Browser heute eine Vielzahl an zusätzlichen Headern. Arne Blankerts zeigt, welche man kennen sollte.
Details AnmeldungTypsicheres PHP
Durch automatische Typprüfungen lassen sich viele Fehler finden, bevor ein Programm überhaupt ausgeführt wird.
Details AnmeldungDevOps: Rate Limiting APIs
Damit die erstellte Software ihr volles Potenzial entfalten kann, bedarf es einer geeigneten Betriebsumgebung. Denn nur wenn alle Komponenten gut aufeinander abgestimmt sind und man die Kontrolle über alle Systeme hat, steht dem Erfolg nichts mehr im Wege. In einer API-gesteuerten Welt ist ständige Verfügbarkeit von entscheidender Bedeutung. Anstatt bei hoher Auslastung weitere Server hinzuzufügen, ist es kosteneffizienter, den API-Zugriff angemessen zu beschränken.
Clean Code-Prinzipien: Single Level of Abstraction
Wir erläutern jeden Monat ein Clean Code-Prinzip und zeigen, wann und wie man es richtig anwendet. Das Konzept der einheitlichen Abstraktionsebene für Klassen und Methoden ist ein wichtiges Prinzip in der Softwareentwicklung, das zu besserem Code-Design und erhöhter Wartbarkeit führt.
Details AnmeldungDesign Patterns: Proxy
Jeden Monat lernen wir in 45 Minuten durch Live-Coding ein Entwurfsmuster kennen und richtig einzusetzen. Heute trennen wir unterschiedliche Belange.
Details AnmeldungSOLID Deep Dive
Want to learn how to create robust, maintainable, and scalable applications? Take your coding to the next level by joining our one-day class on SOLID principles.
Tester's Corner: Testsuites strukturieren
Jeden Monat behandeln wir kurz und prägnant ein Thema rund um das automatisierte Testen von Software.
Details AnmeldungRichtiges Deployment
Neue Softwareversionen schnell, stabil und reproduzierbar in Betrieb nehmen.
Details AnmeldungModern PHP: Namespaces
A closer look into new and rarely used PHP features. Namespaces is not a new feature in PHP, but it's misused so often we felt a session in what namespaces are and how to use them properly would be in order.
April 2025 - Juni 2025
- Fortgeschrittene OOP
- Web Security 360: Angriff auf die Session
- Clean Code-Prinzipien: Interface Segregation Principle
- Live Coding: Event Sourcing
- DevOps: Daemons with PHP & Systemd
- Design Patterns: Value Object
- Modelling: User Story Mapping
- Live-Vorführung: Infection
- Containerisierte Anwendungen betreiben
- Dependency Management
- Tester's Corner: Kollaborierende Objekte testen
- Clean Code-Prinzipien: Dependency Inversion Principle
- Web Security 360: Transport Security
- Testautomation mit PHPUnit
- DevOps: Sichere Container
- Modern PHP: Visibility Revisited
- Komplexität vermeiden
- Design Patterns: Adapter
- Event Sourcing Deep Dive
- Tester's Corner: Code testen, der mit der Datenbank spricht
- Clean Code-Prinzipien: Information Hiding Principle
- PHPUnit für Fortgeschrittene
- Web Security 360: Authentifizierung
- Tester's Corner: Testen von Zufall und Zeit
- DevOps: Podman statt Docker
- Design Patterns: Facade
- Modelling: Domain Storytelling
Juli 2025 - September 2025
- Web Security 360: Autorisierung
- Type-Safe PHP
- Clean Code-Prinzipien: Open Closed Principle
- Live Coding: Battleship
- Live-Vorführung: PHP-Parser
- DevOps: Software Bill of Materials (SBOM)
- Modern PHP: Exceptions
- Tester's Corner: Testen von Legacy Code
- Event Sourcing
- Design Patterns: Factory
- Clean Code-Prinzipien: Tell, don’t ask
- Web Security 360: Cross-Origin Resource Sharing (CORS)
- Design Patterns: Mediator
- Tester's Corner: Domänenspezifische Zusicherungen
- Testgetriebene Entwicklung
- Web Security 360: API Security
- Git für Fortgeschrittene
- DevOps: Content Security Policy einführen
- Clean Code-Prinzipien: Law of Demeter
- Live Coding: Chess, Revisited
- Design Patterns: Specification
- Architecture Deep Dive
- Eventgetriebene Entwicklung
- Modern PHP: Attributes
- Modelling: Example Mapping
- Tester's Corner: Was testbaren Code ausmacht
Oktober 2025 - Dezember 2025
- Clean Code-Prinzipien: Don't Repeat Yourself
- Web Security 360: DSGVO & Co
- Design Patterns: Strategy
- DDDeep Dive
- Vom Software-Entwickler zum Software-Architekten
- DevOps: Mail Sending Capture
- Modern PHP: Autoload
- Tester's Corner: Code Coverage richtig einsetzen
- Live Coding: Coding Nightmares
- Web Security 360: Auf dem Weg in Produktion
- Tester's Corner: Die Form und Größe von Tests
- Software-Modernisierung
- DevOps: CaddyServer: First Contact
- Clean Code-Prinzipien: Keep it simple, stupid
- Design Patterns: Lazy Initialization
- What is new in PHP?
- Modern PHP: Async PHP
- Domain-Driven Design
- Web Security 360: Nach dem Launch
- Clean Code-Prinzipien: You Ain't Gonna Need It
- Live Coding: Design Patterns
- Dependency Management
- Modern PHP: HTML5 & XML with PHP 8.4
- Design Patterns: Singleton
- Modern PHP: The Just-in-time Compiler (JIT)
- Tester's Corner: Übelriechende Tests