Preemptive Pluralization is (Probably) Not Evil
Before you write any code — ask if you could ever possibly want multiple kinds of the thing you are coding. If yes, just do it. Now, not later.
Read more [www.swyx.io]
All my posts about architecture.
Before you write any code — ask if you could ever possibly want multiple kinds of the thing you are coding. If yes, just do it. Now, not later.
Read more [www.swyx.io]
– tighten.com - submitted by Jamison Valenta
Have you ever heard of a “kill switch”—a device meant to disable machinery if its owner is incapacitated? Turns out you can also build kill switches into your code. Tony shares four kill switch examples for Laravel applications.
Read more [tighten.com]
Join 9,500+ smart developers
Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.
No spam. Unsubscribe anytime. You can also follow me on X.
"As a Laravel developer, this is the one newsletter I most look forward to. Freek has a talent for distilling packages or techniques down to something immediately useful - one tip can save you hours and even weeks. It's concise and practical and highly relevant."
– www.eloquentarchitecture.com - submitted by John Freeman
The LoB principle dictates that the behavior of a unit of code should be as obvious as possible by looking only at that unit of code. But I think something is missing from this discussion.
Read more [www.eloquentarchitecture.com]
– medium.com - submitted by Mazen Touati
We will crack the controversy of the repository pattern in Laravel. The good and the bad, and what alternatives we can use to build a maintainable codebase.
Read more [medium.com]
In a standard Laravel application, you can schedule Artisan commands in your console kernel. While that works for most projects, we took a different route in Mailcoach. Instead of scheduling commands, we're scheduling jobs.
Read more [mailcoach.app]
As a system evolves, abstractions should arise from current needs, not future possibilities.
Read more [sebastiandedeyne.com]
– arunas.dev - submitted by Arunas
You'll learn the difference between "tactical" and "strategic" programming, and why choosing the right approach is important in the long run.
Read more [arunas.dev]
– arunas.dev - submitted by Arunas
Before we learn strategies for better software design, we must understand our enemy - complexity. Let’s define complexity, how to spot it, and what causes it.
Read more [arunas.dev]
Dave Calnan has been using Remix in production for about 6 months now and has decided to add a Laravel backend to the stack. Here's what he's learned from the process.
Read more [davecalnan.blog]
Laravel gives you the flexibility to choose the structure of controllers yourself, which is both a blessing and a curse. You won't find any recommendations in the official Laravel docs, so let's try to discuss various options, based on one specific example.
Read more [laravel-news.com]
– www.juststeveking.uk - submitted by Steve McDougall
In Laravel 5.1 the Command Bus was replaced with Dispatchable Jobs, we can still use them but let us also look at how to add a Command Bus.
Read more [www.juststeveking.uk]
– www.juststeveking.uk - submitted by Steve McDougall
In a typical Laravel application we are very used to doing things in a certain way, by the book as they say. However there comes a point in the applications lifetime that it is going to be easier to start looking to split this code into Domains so that we can logically group our code.
Read more [www.juststeveking.uk]
– doeken.org - submitted by Doeke Norg
The Middleware Pattern allows you to easily change the input and output of an action; one layer at a time.
Read more [doeken.org]
Shawn McCool shares some interesting thoughts on how things should be named.
Read more [shawnmc.cool]
The use of a message envelope has many benefits for the design of your application. It allows you to carry system information, nicely separated from domain information, in a generic way.
Read more [blog.frankdejonge.nl]
Event-driven systems come in all sorts of shapes and sizes. The obvious commonality is; they all use events to communicate information. These events come in many shapes and sizes, and determining what goes into an event has an immense impact on the design of your system.
Read more [blog.frankdejonge.nl]
Validation takes on many shapes and forms. In this post, Frank walks you through all the possibilities.
Read more [blog.frankdejonge.nl]
Matthias Noback shares some considerations on when you could rely on PSR abstractions
Read more [matthiasnoback.nl]
Here's the recording of an excellent talk by Matthias Noback given at Socrates.
I'm thrilled to announce that our premium course Event Sourcing in Laravel has just launched.
If you ever wanted to get started with event sourcing, this is the course for you. It contains a beautifully designed ebook, two hours worth of videos, and a demo Laravel app containing an event-sourced shopping cart.
Event sourcing isn't an all or nothing approach. Even if your project doesn't need the full power of event sourcing, you can still benefit from knowing and implementing best practices from the event sourcing world.
We're offering a 20% launch discount for the next two weeks to celebrate this release.
In this stream, you can see my colleague Brent and I launch the course, and answer questions from the audience.