Marco Pivetta (Ocramius)
My talks (via joind.in)
From Helpers to Middleware
Over the past decade, we've seen frameworks bloom, die, be replaced and re-born. We've seen good practices, anti-patterns and generally styles of coding come and go. What's the takeaway from the last decade of framework development? Where are we going? What should we explore next? We'll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.
Backwards Incompatible Tales
A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe. And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand. Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore? This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer. While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.
Aggressive PHP quality assurance in 2019
PHP has a reputation for being a very flexible, yet very messy programming language: keeping the chaos at bay requires a non-trivial amount of cognitive load and technical expertise. In this talk, we will explore how quality assurance for popular open source packages has evolved in the past few years, and how we can further improve our own projects. We will cover architectural practices, naming, code design, tooling and how to avoid common pitfalls that waste everyone's time. With this experience, we can all help the PHP ecosystem in further evolution.
Backwards Incompatible Tales
A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t,and cleared the path where it was unsafe. And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then,nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand. Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore? This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer. While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.
CQRS und Event Sourcing - concepts, architecture and implementation
CQRS and Event Sourcing are challenging if approached for the first time, and especially if done from scratch. This tutorial day will lead give you a basic understanding of what CQRS and ES are, including their complexities, advantages and pitfalls. We will help you modelling, designing and implementing an application relying on these architectural patterns, guiding you through: - Domain analysis - Involved architectural components - Data flow - Synchronous/Asynchronous dispatching - Implementing domain logic with aggregates - Projections - Scaling - Testing
DDD practices applied to Doctrine 2 Projects
In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective. We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively. We'll freshen up some DB design done "domain-first", looking at the possible performance issues how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic. At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.
Uncon: Haskell for PHP Deverlopers
Unconference: Unplanned, Unrehearsed & Unprepared.
Backwards Incompatible Tales
A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe. And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand. Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore? This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer. While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.
Backwards Incompatible Tales
A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe. And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand. Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore? This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer. While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards. Focus areas of this talk: - perceived stability from a consumer point of view - maintainability of code - when and why to introduce backwards incompatible (BC) breaks - what to do when an unexpected BC break is found
From Helpers to Middleware
Over the past decade, we’ve seen frameworks bloom, die, be replaced and re-born. We’ve seen good practices, anti-patterns and generally styles of coding come and go. What’s the takeaway from the last decade of framework development? Where are we going? What should we explore next? We’ll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.
CQRS and Event Sourcing: from concepts to working concept
CQRS and Event Sourcing are challenging if approached for the first time, and especially if done from scratch. This tutorial will give you an understanding of what CQRS and ES are, including their complexities, advantages and pitfalls. We will help you with modelling, designing and implementing an application relying on these architectural patterns, guiding you through: Domain analysis Involved architectural components Data flow Synchronous/Asynchronous dispatching Implementing domain logic with aggregates Projections Scaling Testing https://www.phpyorkshire.co.uk/people/marco-pivetta/
From Helpers to Middleware
Over the past decade, we've seen frameworks bloom, die, be replaced and re-born. We've seen good practices, anti-patterns and generally styles of coding come and go. What's the takeaway from the last decade of framework development? Where are we going? What should we explore next? We'll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.
Basic CQRS und Event Sourcing: Von Konzepten zur Anwendung
CQRS und Event Sourcing sind herausfordernd, wenn man sich zum ersten Mal mit ihnen beschäftigt - insbesondere, wenn man bei Null startet. Dieser Workshop bietet einen Überblick über die Grundlagen von CQRS und ES, sowie ihren Vorteilen und Fallstricken. Wir werden basierend auf CQRS und ES eine Anwendung modellieren und implementieren, und uns dabei mit Themen beschäftigen wie: - Analyse der Domain - Komponenten der Architektur - Data Flow - Synchronous/Asynchronous Dispatching - Aggregates und Domain Logik - Projections - Scaling - Testing
DDD Practices applied to Doctrine 2 Projects
In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective. We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively. We'll freshen up some DB design done "domain-first", looking at the possible performance issues, how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic. At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.
From Helpers to Middleware
Over the past decade, we've seen frameworks bloom, die, be replaced and re-born. We've seen good practices, anti-patterns and generally styles of coding come and go. What's the takeaway from the last decade of framework development? Where are we going? What should we explore next? We'll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.
Event Sourcing: The Good, The Bad and The Complicated
Event Sourcing can look like an attractive solution for any of your applications, but does it actually pay off? What if it is all just buzzwords and no gain? We’ll look at how we implemented event sourcing in our own app, code-reviews.io: - what made us fast - what made us super slow - what made us cry This talk will give you a good idea of what kind of challenges you will encounter when approaching event sourcing for the first time.
CQRS and Event Sourcing: from concepts to working concept
CQRS and Event Sourcing are challenging if approached for the first time, and especially if done from scratch. This tutorial day will lead give you a basic understanding of what CQRS and ES are, including their complexities, advantages and pitfalls. We will help you modelling, designing and implementing an application relying on these architectural patterns, guiding you through: - Domain analysis - Involved architectural components - Data flow - Synchronous / Asynchronous dispatching - Implementing domain logic with aggregates - Projections - Scaling - Testing Requirements for participants: Must be able to run a composer install against this repo from a laptop to be brought at the workshop. This means that PHP 7.1 and PDO and PDO-SQLite should be pre-installed. An editor for SQLite files is also needed. PHPStorm has a bundled version, otherwise, this should work.
Basic CQRS und Event Sourcing: Von Konzepten zur Anwendung
CQRS und Event Sourcing sind herausfordernd, wenn man sich zum ersten Mal mit ihnen beschäftigt - insbesondere, wenn man bei Null startet. Dieser Workshop bietet einen Überblick über die Grundlagen von CQRS und ES, sowie ihren Vorteilen und Fallstricken. Wir werden basierend auf CQRS und ES eine Anwendung modellieren und implementieren, und uns dabei mit Themen beschäftigen wie: Analyse der Domain Komponenten der Architektur Data Flow Synchronous/Asynchronous Dispatching Aggregates und Domain Logik Projections Scaling Testing