"Magic" methods and properties show up several places in Laravel, as well as third-party packages. They can make certain things easier and less verbose, but there is a trade off. In this episode, we discuss a few different contexts where we like and avoid magic accessors. We'd really appreciate it if you share the show with other Laravel devs. This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO...
May 28, 2024•12 min•Ep. 101
Admins can do everything in the app, right? Today we discuss a couple reasons why you may want to consider not letting an admin have access to every single feature in your app. 🎉️ Episode 100 is a huge milestone for us. Thank you for listening! This episode is sponsored by Mailtrap, an Email Delivery Platform that developers love. Try for Free at MAILTRAP.IO
May 14, 2024•11 min•Ep. 100
Have you ever turned on error tracking in a long-lived app and then got overwhelmed by all the errors happening? We talk through some strategies to not get overwhelmed and make a case that you really should be monitoring this in production. Would you like help with your legacy app? We have a ton of experience making legacy apps a joy to work within . (00:00) - Your app should be tracking errors (02:30) - Better than just parsing logs (05:15) - Don't get overwhelmed when you first turn it on (06:...
Apr 30, 2024•12 min•Ep. 99
We've talked about coding standards before, but this time we approach it from a slightly different angle. Does the way you're code is formatted affect your ability to understand it? Brains are interesting things. Is your code slower than you'd like? We specialize in Laravel performance optimization and we can help! Contact us to discuss.
Apr 16, 2024•12 min•Ep. 98
You launched a hobby project and then it starts to get some traction. What next? How do you get a more solid foundation under your app when it comes to database hosting? In this episode, we discuss the common phases we see a database go through during an app's life. And if you'd love some help moving your database or tackling performance issues , give us a call!
Apr 02, 2024•16 min•Ep. 97
Interfaces are a great tool for writing maintainable applications, but it is possible to go "too far" with abstraction. Or maybe, it's a bad use of time to write an abstraction up front before you really know you need it. We discuss some trade-offs and examples. (00:00) - Life before interfaces in PHP (02:30) - Going too far with interfaces (04:45) - A discussion with payment gateways (07:30) - Abstracting the database as another trap (09:15) - Laravel makes good use of interfaces (10:05) - Sill...
Mar 19, 2024•12 min•Ep. 96
When you're writing a test it can be so tempting to just "tweak" some app code to make it easier to write that test, but we discuss why that might not be a good idea. We also talk about some app changes while writing tests that are beneficial to the overall project. (00:00) - Sometimes changing code makes testing easier (01:30) - Different types of code changes (02:45) - An example with Laravel jobs (04:30) - A time when it's okay to change code while testing (08:50) - Avoid problems by writing ...
Mar 05, 2024•12 min•Ep. 95
Do your eyes glaze over when someone mentions singletons or factories? We'll try to not to be boring as we explain the benefits of design patterns. Sign up for our free Laravel newsletter and learn something new in 2 minutes or less.
Feb 20, 2024•12 min•Ep. 94
Ever feel like your Blade views are getting too logic-heavy? What logic belongs in the view, and what logic would be better somewhere else? We use a recent PR discussion to talk through these points. (00:00) - Trying to keep logic out of the Blade view (02:00) - Using the simplest form of logic (03:45) - Business logic doesn't belong in the view layer (04:15) - Condition moved into the controller (05:20) - Secondary benefit of testing Check out the Mastering Laravel YouTube channel...
Feb 06, 2024•10 min•Ep. 93
When new tools and packages come out, there is usually some buzz around the launch, and how it solves all the problems of the old tool. Should you switch? How do you know when it's worth it? What are the potential downsides of switching? We talk through a couple examples and share how we approach these decisions Want to see what our coding standard looks like? Toss a coin in the jar if you enjoyed this episode. We really appreciate it!...
Jan 23, 2024•20 min•Ep. 92
Seeders seem pretty straightforward. It's a way to generate data. But how should you use them in your app and what different purposes do they serve? We talk through our approach to seeders and how we use them in a few different contexts. (00:00) - Diving into how we use seeders in our applications (01:40) - Should a seeder create users? (04:30) - Using seeders in multiple contexts (09:50) - The one time we might use seeders with tests (11:50) - Silly bit Would you like some expert help on your L...
Jan 09, 2024•15 min•Ep. 91
Is there some particular tool or technology that just makes you mad? Maybe it's the way CSS behaves or how some browsers work. Don't just get mad, dig in and learn it thoroughly. We talk about how we've done that and how it helped. (00:00) - Once again, Aaron reads the docs (02:30) - Recognizing when you don't know something (03:30) - Approaches for learning Javascript and CSS (04:20) - What is the manual for Javascript/CSS? (07:13) - Joel learning CSS hands-on (09:55) - Learning through repetit...
Dec 26, 2023•15 min•Ep. 90
We see a lot of different projects, but it's pretty rare to find one that's well-documented and internally consistent. Why does that matter? And how can you make things more consistent without spending a lot of time on it? (00:00) - We like keeping things tidy in our projects (01:20) - Have a README, please (03:30) - Is there a business case for consistency across projects? (05:30) - An example with Docker build speeds in CI (06:50) - Consistency in naming business concepts (09:45) - Silly bit S...
Dec 12, 2023•13 min•Ep. 89
How do you like to upgrade your app when the next new major version of Laravel comes out? Aaron and Joel share two different approaches they've used, and what added benefits you get from doing a version upgrade. Need help getting tests on your Laravel app before upgrading?
Nov 28, 2023•16 min•Ep. 88
We're developers, we write code! But sometimes it's worth thinking if we really need to fire up our editor, or if a better solution exists. We talk through some "behind the scenes" podcast workflow, and how we decided we didn't need to write code this time. (00:00) - Considering better ways to track topics (01:00) - The developer brain kicks in (03:05) - Building it in Slack without any code (05:15) - Feeling empathy for the non-devs out there (06:45) - Deciding not to automate everything (09:15...
Nov 14, 2023•15 min•Ep. 87
Just about every application needs the concept of roles and permissions. Often, there's a desire to allow non-developers to manage roles and permissions in the application interface, but is that a good idea? (00:00) - Roles and permissions landscape (01:45) - A UI for managing permissions? (04:14) - Rolling out new permissions via migrations (06:45) - What about managing roles in a UI? (09:00) - Covering permissions in tests (10:30) - Maybe a read only UI? (10:55) - Silly bit Check out the valid...
Oct 31, 2023•13 min•Ep. 86
You might have a book that really shaped how you write code today. Some books make more sense if you read them later in your career. We discuss the changing value of books as a learning resource as you gain experience. 00:00 Using books as a resource 01:59 Changing perspectives as you gain experience 03:05 Recognizing real-world applications of what you read 05:45 Balancing enthusiasm with experience 07:20 You don't need to learn everything 09:35 Silly bit You could spend a few thousand dollars ...
Oct 17, 2023•12 min•Ep. 85
This is a surprisingly controversial topic. In this episode, we share why we write down migration methods, and it's probably not the reason you're thinking of. (00:00) - Is writing down migration methods just a weird habit? (02:30) - A deploy that goes horribly wrong immediately (03:45) - Rolling forward due to database engine limitations (05:00) - How long is too long to rollback? (06:30) - Another use case: switching branches (08:30) - A mental unit test for your logic (12:35) - Silly bit No c...
Oct 03, 2023•14 min•Ep. 84
It's frustrating to have a client, boss, or even co-worker attempt to micro-manage you. We share some tips on how to make the working relationship better. (00:00) - Uncomfortable projects and clients (02:45) - Ask them directly "what's up" (05:00) - Understand what they want from you (07:00) - Let's role play (10:30) - The extra work is worth it (11:42) - Silly bit Need help building your Laravel product? Hire two expert Laravel developers for less than you might think....
Sep 19, 2023•14 min•Ep. 83
Developers spend a large part of their day inside an editor. For a full-featured editor like PHPStorm, there may be some useful features you've never noticed. We discuss a few of those.
Sep 05, 2023•10 min•Ep. 82
PHPStan is a great tool, but if you're not careful it might push you to write code in a way you wouldn't normally write it. How can you balance a tool's strengths with your team's style of writing code? (00:00) - We really like PHPStan (01:30) - Can you go too far with a tool, though? (03:40) - Things to consider if you're newer to Laravel or PHP (05:30) - PHPStan has helped us find bugs (06:25) - Accessing route parameters in a type-safe way (09:22) - Know how the tool works, to make it work fo...
Aug 22, 2023•16 min•Ep. 81
It is so exciting to watch a conference talk announcing some new tool or feature. Now you're back at work and your fingers are itching to type `composer install` - What do you do? (00:00) - Post-conference excitement is a real thing (01:11) - The reality of how conferences are structured (03:50) - Talks share things you could do not things you should do (05:00) - How to apply new ideas in your daily work (06:08) - Specific challenges within a team (11:40) - Silly bit Want to see the musical conf...
Aug 08, 2023•13 min•Ep. 80
Programmers have opinions on things. Shocking, I know! How can we tell someone we think there's a better way to do something, without being counterproductive and causing needless confrontation? (00:00) - Programmers have opinions on a lot of topics (02:25) - Start by asking questions (03:45) - Get smart with leading questions (05:25) - Do you always have to call out something you think is wrong? (07:15) - Conflict doesn't mean confrontation Need help from some seasoned Laravel devs? Don't be shy...
Jul 25, 2023•9 min•Ep. 79
We get a bit nerdy here and dive deep on a few different ways to test record creation. (00:00) - We like testing (01:20) - One way to test creating a record (03:00) - Limitations of fetch the record with first() (05:30) - Considerations when using latest() in tests (07:00) - An approach for using auto-increment IDs (08:05) - Silly bit Read more of our thoughts at masteringlaravel.io...
Jul 11, 2023•10 min•Ep. 78
Do you maintain laser focus when you work, or are you a normal human being? How do you balance use of email and social media for legitimate work reasons without going down the rabbit hole of distraction? Stop your work and listen to this episode for answers. It's not a distraction, it's an investment. (00:00) - Feeling the pull of distraction when trying to focus on work (01:30) - Email - the biggest distraction (03:00) - The world won't end if you keep email closed (06:00) - Setting expectation...
Jun 27, 2023•16 min•Ep. 77
The discussion of final classes was a hot topic recently. We had planned on discussing this even before it came up on Twitter, but here is our unsolicited opinion. Is there some use case we missed? Aaron wants to hear about it. Show notes (00:00) - Final classes, the hot topic on Twitter (01:00) - Aaron's opinion has evolved over the years (03:15) - Packages vs applications (04:00) - What about making PHPStan happy? (06:45) - What about reducing support burden on package maintainers? (10:05) - W...
Jun 13, 2023•14 min•Ep. 76
We always write tests, and can't imagine working without them. But is there ever a time where it might make sense to delay writing some tests until later in the project? Let us tell you a story about a recent project where we made that decision. (00:00) - Our secret podcast agenda (01:00) - Project setup (02:30) - Tests are good, but they do add time (03:15) - Some ambiguity on "is this what the user needs/wants?" (06:00) - Discussing the decision to delay tests as a team (07:15) - Conclusion - ...
May 30, 2023•12 min•Ep. 75
Show notes: (00:00) - Relationships and trashed records (02:00) - One-to-one relationship (02:39) - Are soft-deletes bad then? (03:30) - Balancing end user and developer experience (05:00) - One-to-many relationships are even more problematic (08:00) - Does the specific domain matter? (10:15) - Agree on the rule as a team (10:50) - Silly bit Get a free ebook of Laravel security tips...
May 16, 2023•14 min•Ep. 74
Some interviewing techniques can be pretty disrespectful of the applicant's time or humanity. On today's episode we talk about some ways of approaching an interview to put the person at ease and help them to do their best. Show notes: 00:00 Our different work backgrounds 01:00 How to kick off a technical discussion in an interview 03:45 How to leverage their existing experience 04:50 Learn about their communication style 06:00 Figuring out how someone thinks about a problem 09:30 Don't code revi...
May 02, 2023•15 min•Ep. 73
Maybe you're a solo dev or working on a small team. What benefits are there in widening your circle of developers? We talk through our own personal experiences in this episode. Show notes: (00:00) - Topic intro: the benefits of working with someone else (02:46) - Code review can actually be nice (04:45) - The benefits of being "challenged" (06:20) - Picking up tips just seeing how someone else works (06:53) - Human skills are important too...
Apr 18, 2023•12 min•Ep. 72